using OpenGL to implement a window manager
Keith Packard
keithp at keithp.com
Sat Apr 24 10:33:27 EST 2004
Around 16 o'clock on Apr 23, Jon Smirl wrote:
> Suppose xserver is applying a trapezoidal transform to an application
> window before displaying it. Now I want to set this trapezoidal transform
> in OpenGL before letting the app draw the window. The app should be totally
> unaware I set this transform and instead think it is drawing into a flat
> rectangular buffer.
I think there are four choices:
1) Application draws to a rectangular pixel buffer which is then
transformed to the screen
+) "correct" pixelization semantics for all operations,
this is how X rendering must be done.
+) No repaint needed when changing the transformation.
-) ugly results
2) Graphics system applies transformation matrix to post-tesselation
objects
+) No change to X/GLX protocol needed
Simple polygons look sharp
-) pixelization dependent tesselation will still
show artifacts (splines may look chunky at high
magnification)
-) still no solution for glyphs; they're images in the
current protocols
-) Changing the transformation requires repainting every
window. I thought we wanted to avoid this.
3) Graphics system applies transformation matrix to high-level
objects
+) Everything looks sharp
+) With display lists, redisplay at new transform would not
involve the client
-) Everything has to be rewritten.
-) Tesselation policy is now fixed in the server
-) Font support is now dependent on server capabilities,
and more-or-less requires display list support
-) Display lists in the X server is a "bad idea".
4) Graphics system hands transformation matrix to application
+) Everything looks sharp
-) Everything has to be redrawn each time the transform
changes
-) Global transformation changes will cause global repaint.
I thought we wanted to avoid this.
-keith
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
Url : http://freedesktop.org/pipermail/xserver/attachments/20040423/9f833fa6/attachment-0001.pgp
More information about the xserver
mailing list