[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