[idd] capture: split software and hardware frame processors

Move cadence-aware hardware capture and immediate software capture
behind a common frame processor interface.

Keep shared damage tracking and frame-buffer ownership in the base
processor, and move stateless format, resource, and rectangle helpers
into CFrameProcessorUtil.

Decouple frame-buffer resources from CSwapChainProcessor by passing the
device dependencies they use directly.
This commit is contained in:
Geoffrey McRae
2026-08-07 13:23:19 +10:00
parent d7c90e4693
commit 3ddc199bec
18 changed files with 2051 additions and 1662 deletions

View File

@@ -30,7 +30,8 @@
#include "CFrameScheduler.h"
#include "CInteropResource.h"
class CSwapChainProcessor;
struct CD3D12Device;
class CIndirectDeviceContext;
using namespace Microsoft::WRL;
@@ -69,8 +70,8 @@ class CFrameBufferResource
void * m_map = nullptr;
public:
bool Init(CSwapChainProcessor * swapChain, unsigned frameIndex,
uint8_t * base, size_t size,
bool Init(CIndirectDeviceContext * device, CD3D12Device * dx12,
unsigned frameIndex, uint8_t * base, size_t size,
const D3D12_RESOURCE_DESC * textureDesc = nullptr);
void Reset();