using OpenGL to implement a window manager

Jon Smirl jonsmirl at yahoo.com
Sat Apr 24 14:05:19 EST 2004


--- Keith Packard <keithp at keithp.com> wrote:
>  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.

Everything doesn't have to be redrawn when the transform changes, the server
still has the bitmap for the app. For example if you want to do one of those
flutter the window down to the task bar on minimize effects just transform the
existing bitmap. Those effects are fast enough no one will notice artifacts.
There is no rule that says we have to tell the app the transformation is
changing; you only have to tell the app the transform before you want it to
paint. On the other hand if I want to arrange my windows like doors in a
receding hallway, artifacts are going to be obvious. Of couse really fast
hardware may be able to generate true repaints for each step of the flutter
effect.

Client transform will also help JPEG images. JPEG decoders can use internal
image knowledge to scale better than bitmap interpolaters if the JPEG decoder
knows the final output size. This is true for straight scaling. I don't know of
any existing JPEG implementations that can draw to distored rectangles but I
suspect it wouldn't be too hard to modify the code.

Global transformation changes are always going to cause a global repaint. We're
just picking whether it is generated from the window buffers or from the apps themselves.

=====
Jon Smirl
jonsmirl at yahoo.com


	
		
__________________________________
Do you Yahoo!?
Yahoo! Photos: High-quality 4x6 digital prints for 25¢
http://photos.yahoo.com/ph/print_splash



More information about the xserver mailing list