|
From: | Riccardo Canalicchio |
Subject: | Re: flicker graphics on window resize |
Date: | Sat, 21 Dec 2013 16:23:01 +0100 |
from my debugging here the call stack of a resize:...NSWindow _processResizeEventCairoContext GSSetDeviceXGCairoModernSurface initWithDeviceXGetWindowAttributes <-- HERE IS WHERE THE WINDOW BECOME WHITE (OR BLACK) XGCairoModernSurface.m:48CairoContext handleExposeRectXGCairoModernSurface handleExposeRect...and on the next XFlush the window get displayedthis mean that XGetWindowAttributes cause an error?On 20 December 2013 17:20, Fred Kiefer <fredkiefer@gmx.de> wrote:
On 20.12.2013 11:03, Riccardo Canalicchio wrote:The first two are true according to my understanding. For the third I am
> tell me If I'm right:
> - when using a buffered window there should be two cairo surfaces (back and
> front)
> - a window resize, trigger the re initialisation of all the two surfaces
> - actually the fresh new surfaces get drawn immediatly (in my case they are
> white)
not really sure. We should add some log statements in the class
CairoContext and monitor in which order the following methods get called
during resize and whether the correct surface object gets used:
+ (void) handleExposeRect: (NSRect)rect forDriver: (void *)driver
- (void) GSSetDevice: (void *)device : (int)x : (int)y
Hope this helps,
Fred
[Prev in Thread] | Current Thread | [Next in Thread] |