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