From kwin Fri Jun 04 12:39:54 2010 From: Lubos Lunak Date: Fri, 04 Jun 2010 12:39:54 +0000 To: kwin Subject: Re: Using UnredirectFullscreen=false by default in distributions Message-Id: <201006041439.54935.l.lunak () suse ! cz> X-MARC-Message: https://marc.info/?l=kwin&m=127565525116125 On Tuesday 01 of June 2010, Thomas Lübking wrote: > The solution is however to prevent the flicker. > => HACKISH (?) FIX: > I think storing the root (pixmap), dumping the fullscreen window into the > root, re-redirecting and restoring the original root (pixmap) would do the > job - never tested though and this also might be HW/driver related (Does > everybody else see the root pixmap on re-redirection?!) Are you talking about the case when activating compositing for the window again? If yes, that is not the problem here, here the main problem comes when turning compositing off for a window and the flicker and delay come from the fact that the window has to redraw itself and that happens visibly. Is that different for you? For the case I'm talking about it shouldn't be necessary to read the root window contents, as that'd be also quite slow (reading from VRAM presumably). It should be possible to just store the intended overlay window contents into another pixmap in Scene*::flushBuffer() and later blit it to the root window after the overlay window is hidden. The case with activating compositing should be a minor problem, since the overlay window is shown only right before its contents will be painted (see the showOverlay() call in Scene*::paint()). I don't see how to get that better, possibly except for again making flushBuffer() render somewhere else, set the pixmap as the overlay window's background pixmap and only then show it. -- Lubos Lunak openSUSE Boosters team, KDE developer l.lunak@suse.cz , l.lunak@kde.org _______________________________________________ kwin mailing list kwin@kde.org https://mail.kde.org/mailman/listinfo/kwin