xcb surfaces and expose events

Steven J Abner pheonix.sja at att.net
Mon Jun 23 16:14:24 UTC 2025


On Sun, Jun 22 2025 at 12:40:19 PM +0000, Theo Veenker 
<theo.veenker at beexy.nl> wrote:
> Under X you can use the drm library to wait for vblanks

Sorry to bother, but I appear to be real thick :(
I butchered your code and examined vlbtest to try to walk through and 
understand what I appear to severely don't. With a window manager, the 
verticalBlankHandler() mostly returns I am behind current time by 
approx. -60342. On bare X my results are much more varied by approx. 
14517 average ahead. I am not sure if I'm to create another poll loop 
inside the handler, where one is used to get into handler initially.

Could you please glance at as simple a demo I could create for 
isolation of resizing.
The code is set to run with/without a manager. A define flag will allow 
print out to file. To terminate, if you should try, press any key. 
Resizing occurs by click/drag of little square 'button'. I used 
'pragmas' to mark sections according to functionality.

This simple demo causes severe flashing. It seems the more complex the 
drawings, the less severe my initial code flashes, except when using 
WMs which can then begin to flash.

Sample output with WM:
head 0: -62312 10220 0
head 0: -62008 10221 0
head 0: -61690 10222 0
head 0: -61328 10223 0
head 0: -60996 10224 0
head 0: -60666 10225 0
Sample output bare Xorg, (Linux):
head 0: 12511 1577 0
head 0: 12847 1578 0
head 0: 13179 1579 0
head 0: 14517 1580 0
head 0: 14874 1581 0
head 0: 16318 1582 0
head 0: 16516 1583 0

Again, thank you for previous assist. And if too much bother, no 
worries! I may yet figure out :)
Steve

-------------- next part --------------
A non-text attachment was scrubbed...
Name: xxresize.c
Type: text/x-csrc
Size: 34132 bytes
Desc: not available
URL: <https://lists.cairographics.org/archives/cairo/attachments/20250623/533c3597/attachment-0001.c>


More information about the cairo mailing list