[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

@@ -92,7 +92,12 @@ typedef struct EGL_TexUpdate
const uint8_t * buffer;
/* EGL_TEXTURE_FRAMEBUFFER */
const FrameBuffer * frame;
struct
{
const FrameBuffer * frame;
const FrameDamageRect * rects;
int rectCount;
};
/* EGL_TEXTURE_DMABUF */
int dmaFD;
@@ -132,7 +137,8 @@ bool egl_texture_setup(EGL_Texture * texture, enum EGL_PixelFormat pixFmt,
bool egl_texture_update (EGL_Texture * texture, const uint8_t * buffer);
bool egl_texture_update_from_frame(EGL_Texture * texture,
const FrameBuffer * frame);
const FrameBuffer * frame, const FrameDamageRect * damageRects,
int damageRectsCount);
bool egl_texture_update_from_dma(EGL_Texture * texture,
const FrameBuffer * frame, const int dmaFd);