delayed graphic updates under Windows

Theo Veenker <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
Hi all,

I've question about repeatedly updating window contents on Windows with DWM running.

My application tries to update windows synchronized with vblank. It works beautifully 
under Linux and it sort-of worked OK with XP. Under recent version of Windows we have to 
live with the DWM controlling when window updates make it to the screen.

Now the problem is when I try to update a window on every frame (which happens with 
animated content) and I use cairo_clip() to restrict the area to be updated then Windows 
somehow decides it's not worth redrawing every frame and skips frames (i.e. does not 
update on every frame). When I comment out the cairo_clip() it does not exhibit this 
behaviour, so does not skip (that much).

I tend to use clipping where I can to speed up drawing where I can, but under Windows in 
this case I have to paint my entire backbuffer to the window for each frame to have it 
displayed. I don't think there's anything wrong with cairo in this respect. It's just that 
I don't know how to force the DWM to update. I tried GdiFlush() and GdmFlush() with no 
effect. Calling GDI GetPixel() on the target window forces a flush, but that approach is 
much slower than repainting the entire window.

I hope someone on the list knows how to overcome this problem.

Theo


-- 
Theo Veenker  |  Beexy - Behavioral Experiment Software
+31(0)524-541531  |  +31(0)6-42525777 mobile
[email protected]  |  www.beexy.nl
-- 
cairo mailing list
[email protected]
https://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.