hi all, I want to toss an idea about the depth switching on the fly. The dynamic depth changing is one of the few basic things that are impossible in xf86. In fact DGA2 has such ability, but it's limited for it's own use only. The new randr extension in it's full variant can do it but as of now it's not implemented and it seems quite unliky to be implemented ever because from it's design follows that it's implementation would be extremely hard thing to do, and naturally noone feels motivated enough to take up the task.
But such functionality is really important if we want xf86 to be considered an viable gaming platform. For example it would be a great benefit for the Wine in it's efforts in emulating windows for games. Some argue that the need of depth switching has been somewhat outweighted by the fact that these days the memory is cheap and noone cares if the framebuffer takes twice as much memory. Of course the memory usage itself does not matter, but what really matters is the speed. For example quake3 does almost twice as many frames per second if run in 16-bit mode than in 32-bit mode. And this cannot be outweighted whatever the memory price is. Even in nowdays many games prefer low-depth modes (sometimes even 8-bit) because of the lower bandwidth requirement, which is critical. Now my idea. Since the main potential users of such functionality are the games, and they are mainly full-screen apps it would be relatively easy but still very usefull if we have something in between the DGA2 and randr - some kind of fullscreen (i.e. only single window visible - no need for software depth emulation for the rest of the windows, etc.) but using real x window so that one can use the standard X11 apis available for the normal windows (for example use GLX/OpenGL with it) For example the api function could be something like: Window X<extension-name>CreateFullscreenWindow( Display *dpy, X<extension-name>ModeDescriptor *vidmode, int depth, Visual *visual, unsigned long valuemask, XSetWindowAttributes *attribs ); The function creates a special fullscreen window. When such window get mapped (XMapWindow) it automatically switches the video mode to vidmode and changes the framebuffer depth to the window's depth (which may differ from the root window's depth). Such windows always occupy the entire screen and may not be obscured by other windows (and probably have their override_redirect attribute always set). When the window is unmapped it switches back the video mode and the frame buffer depth to their normal states. The video mode description could probably be something like in the XF86VidMode extension. Lucho __________________________________ Do you Yahoo!? Yahoo! Small Business $15K Web Design Giveaway http://promotions.yahoo.com/design_giveaway/ _______________________________________________ Devel mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/devel