Rein Klazes wijn@wanadoo.nl writes:
Hmm, this is about pixels that are copied from the outside of the visible region to the inside (that area will be invalidated and repainted if called through ScrollWindowEx, but with noticeable flickering and there might be direct uses of ScrollDC with worse effects). Since the visible region did not work, I did not try adding an extra clip region. Indeed, adding: "SelectClipRgn( hdc, visrgn);" does not help at all. Can the real bug perhaps be in BitBlt?
I doubt that, I don't see how copying the single rectangle of the bounding box of the region would be different from copying every individual rectangle.
That is what the XFlush() is for, and it seems to work quite nicely (after BitBlitting regions of over 50 separate rectangles). Without it, it is a mess indeed.
The XFlush is just hiding the bug, try it on a low latency link and you'll see. You'd need an XSync but that would just cause an extra round trip for no good reason.