Talk:Windowing system
From Wikipedia, the free encyclopedia
"A windowing system enables the computer user to work with several programs at the same time."
- It is possible to run several programs at the same time without any windowing system, so what this sentence exactly means? 16@r 16:12, 12 October 2006 (UTC)
[edit] How does it work?
How is the graphics hardware abstracted and virtualized by the windowing system? It seems to me like a mystery, especially in cases when one window content is drawn with OpenGL and others in standard 2D mode at the same time. And how is the access to the video memory managed? Some clients may access it directly, and the others? ... shared memory and the windowing system copies their content to video memory?
I'd be happy if somebody could elaborate or point me to some helpful documentation or literature on that matter.
- The windowing system provides a single API for programs to use, which provides drawing primitives (drawing lines, rectangles, etc.), font support, color management, clipping and those sorts of things. For each graphics card, a specialized driver implements those functions in terms of what the graphics card supports and how it supports it. This way, programs don't have to worry about the details of the graphics cards. As for your other questions, in more traditional windowing systems, programs will ask the windowing system to perform some graphics operation and the windowing system alone has access to video memory. There's generally no copying from program to video memory directly. But now there are ways to allow clients to access portions of the graphics memory directly, using kernel-mode shims that act as gatekeepers to hardware resources. On X, it is kind of a mess, and I don't know much of the details of Windows or OS X. Any windowing system, however, that has buffered windows usually has the programs paint their contents onto bitmaps/pixmaps in RAM or video memory and then the windowing system composes those pixmaps together and puts the result in video memory, or uses OpenGL/DirectX to map the windows to 3d surfaces and goes from there. 69.134.122.21 (talk) 02:58, 7 May 2008 (UTC)