[client] egl: implement partial copies for framebuffer textures

This uses the same line sweep algorithm originally created to copy DXGI
textures to IVSHMEM to implement the copy from IVSHMEM to memory-mapped
pixel buffer objects.
This commit is contained in:
Quantum
2021-08-07 02:10:30 -04:00
committed by Geoffrey McRae
parent 0462cee9db
commit ac3677d9ae
7 changed files with 106 additions and 21 deletions

View File

@@ -256,7 +256,8 @@ bool egl_desktop_setup(EGL_Desktop * desktop, const LG_RendererFormat format)
return true;
}
bool egl_desktop_update(EGL_Desktop * desktop, const FrameBuffer * frame, int dmaFd)
bool egl_desktop_update(EGL_Desktop * desktop, const FrameBuffer * frame, int dmaFd,
const FrameDamageRect * damageRects, int damageRectsCount)
{
if (dmaFd >= 0)
{
@@ -265,7 +266,7 @@ bool egl_desktop_update(EGL_Desktop * desktop, const FrameBuffer * frame, int dm
}
else
{
if (!egl_texture_update_from_frame(desktop->texture, frame))
if (!egl_texture_update_from_frame(desktop->texture, frame, damageRects, damageRectsCount))
return false;
}