[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

@@ -24,19 +24,20 @@
#include "CIndirectDeviceContext.h"
#include "common/KVMFR.h"
//class CSwapChainProcessor;
struct CD3D12Device;
class CFrameBufferPool
{
CSwapChainProcessor * m_swapChain;
CIndirectDeviceContext * m_device = nullptr;
CD3D12Device * m_dx12 = nullptr;
CFrameBufferResource m_buffers[LGMP_Q_FRAME_BUFFER_LEN];
public:
void Init(CSwapChainProcessor * swapChain);
void Init(CIndirectDeviceContext * device, CD3D12Device * dx12);
void Reset();
CFrameBufferResource* CFrameBufferPool::Get(
CFrameBufferResource * Get(
const CIndirectDeviceContext::PreparedFrameBuffer& buffer,
size_t minSize,
const D3D12_RESOURCE_DESC * textureDesc = nullptr);