[compiz] Get window textures even when they're transformed.

David Reveman davidr at novell.com
Fri Jan 26 15:27:04 PST 2007


On Fri, 2007-01-26 at 09:14 +0100, Stjepan Glavina wrote:
> If I wobble a window and quickly initiate switcher or cube, this can
> cause weird artifacts.
> 
> I had a look at Beryl's switcher.c
> In switchPaintThumb they use this:
> 
> static void
> switchPaintThumb(...)
> {
> 	DrawWindowGeometryProc oldDrawWindowGeometry;
> 	AddWindowGeometryProc oldAddWindowGeometry;
> 	WindowPaintAttrib sAttrib = *attrib;
> 	int wx, wy;
> 	float width, height;
> 	CompIcon *icon = NULL;
> 
> 	/* Wrap drawWindowGeometry to make sure the general
> 	   drawWindowGeometry function is used */
> 
> 	oldDrawWindowGeometry = w->screen->drawWindowGeometry;
> 	w->screen->drawWindowGeometry = getBaseDrawWindowGeometry();
> 	oldAddWindowGeometry = w->screen->addWindowGeometry;
> 	w->screen->addWindowGeometry = getBaseAddWindowGeometry();
> 	
> 	...... calulating and painting .......
> 
> 	w->screen->drawWindowGeometry = oldDrawWindowGeometry;
> 	w->screen->addWindowGeometry = oldAddWindowGeometry;
> }
> 
> Why Compiz's switcher.c doesn't use this?
> 

Yes, I guess that's a bug. However, saving addWindowGeometry function
pointers like that is just a temporary solution that will go away soon.
I've pushed out some changes that makes it work OK for now..

- David



More information about the compiz mailing list