Skip to content

texture: Enable texture diff against arbitrarily distant ancestors

Replaces single hop gdk_texture_diff with an implementation that will traverse the full history of (still referenced) previous textures.

For background, I have been working on an RDP client that renders a single animated DMA buffer across multiple fullscreen windows. Damage tracking is done by creating a new GdkTexture for each frame. There are a few situations where GTK will miss a frame (monitors having different refresh rates being the most reproducible), causing the entire screen to be invalidated and often resulting in a cascade of frame misses and full invalidations until the server detects the drop in frame rate and slows things down. This patch allows missed frames to be recovered from gracefully.

Edited by Ben Mather

Merge request reports