[idd] driver: implement dirty rect tracking

This commit is contained in:
Geoffrey McRae
2026-06-03 04:17:23 +10:00
committed by Geoffrey McRae
parent bd88a64a98
commit 929428c273
8 changed files with 140 additions and 34 deletions

View File

@@ -55,6 +55,9 @@ private:
BYTE* m_shapeBuffer;
DWORD m_lastShapeId = 0;
RECT m_dirtyRects[LG_MAX_DIRTY_RECTS] = {};
unsigned m_nbDirtyRects = 0;
static DWORD CALLBACK _SwapChainThread(LPVOID arg);
void SwapChainThread();
void SwapChainThreadCore();
@@ -65,7 +68,7 @@ private:
static void CompletionFunction(
CD3D12CommandQueue * queue, bool result, void * param1, void * param2);
bool SwapChainNewFrame(ComPtr<IDXGIResource> acquiredBuffer);
bool SwapChainNewFrame(ComPtr<IDXGIResource> acquiredBuffer, unsigned dirtyRectCount);
public:
CSwapChainProcessor(IDDCX_MONITOR monitor, CIndirectDeviceContext * devContext, IDDCX_SWAPCHAIN hSwapChain,