Rémi Bernon (@rbernon) commented about dlls/winewayland.drv/wayland_surface.c:
- /* Add surface damage, i.e., which parts of the surface have changed since
* the last surface commit. Note that this is different from the buffer* damage region. */- surface_damage = get_region_data(surface_damage_region);
- if (surface_damage)
- {
RECT *rgn_rect = (RECT *)surface_damage->Buffer;RECT *rgn_rect_end = rgn_rect + surface_damage->rdh.nCount;for (;rgn_rect < rgn_rect_end; rgn_rect++){wl_surface_damage_buffer(surface->wl_surface,rgn_rect->left, rgn_rect->top,rgn_rect->right - rgn_rect->left,rgn_rect->bottom - rgn_rect->top);
If you tell the compositor about the damaged regions, do you still actually need to copy the data outside of it from the previous buffer?