Hi All,

I'm looking at creating an alternate filesystem for /dev/draw, /dev/mouse and /dev/kbd that hooks up to a web server providing HTML interfaces (e.g. canvas) for Plan 9 UI. I've been reading over the manual pages, which are quite detailed, which is great, but there are some points of confusion for me.

In particular, /dev/draw's interface and documentation keep referring to the concept of a "window" indirectly. It seems that in some cases the server providing /dev/draw needs to track windows and refresh them. But, what defines a window in this protocol? Is every image a window or only some of them?

Also, I'm trying to understand how off-screen images, such as fonts are loaded. It seems that every image must be associated with a screen and be given a position within the screen. So, how do you prevent the image from being visible to the user?

Hopefully, if I can understand some of the high-level concepts here then the manual page will be all that I need. Does anyone have experience with this area or could point me to information that might help clarify it?

My next step will probably be to figure out how libmemdraw does all of this on top of a frame buffer.

Thanks,
Chris