1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-01-18 02:52:10 +01:00

[dxvk] Added recorder interface

This commit is contained in:
Philip Rebohle 2017-10-14 13:45:43 +02:00
parent b67d952e63
commit 77383fa220
2 changed files with 75 additions and 0 deletions

View File

@ -0,0 +1,9 @@
#include "dxvk_recorder.h"
namespace dxvk {
DxvkRecorder::~DxvkRecorder() {
}
}

66
src/dxvk/dxvk_recorder.h Normal file
View File

@ -0,0 +1,66 @@
#pragma once
#include "dxvk_lifetime.h"
namespace dxvk {
/**
* \brief DXVK command recorder
*
* An interface that wraps Vulkan calls. \ref DxvkCommandList
* implements this interface to record Vulkan commands into a
* primary command buffer, whereas \ref DxvkDeferredCommands
* buffers the calls and provides methods to record them into
* a \ref DxvkCommandList on demand.
*/
class DxvkRecorder : public RcObject {
public:
virtual ~DxvkRecorder();
virtual void beginRecording() = 0;
virtual void endRecording() = 0;
virtual void cmdBeginRenderPass(
const VkRenderPassBeginInfo* pRenderPassBegin,
VkSubpassContents contents) = 0;
virtual void cmdBindPipeline(
VkPipelineBindPoint pipelineBindPoint,
VkPipeline pipeline) = 0;
virtual void cmdClearAttachments(
uint32_t attachmentCount,
const VkClearAttachment* pAttachments,
uint32_t rectCount,
const VkClearRect* pRects) = 0;
virtual void cmdDispatch(
uint32_t x,
uint32_t y,
uint32_t z) = 0;
virtual void cmdDraw(
uint32_t vertexCount,
uint32_t instanceCount,
uint32_t firstVertex,
uint32_t firstInstance) = 0;
virtual void cmdDrawIndexed(
uint32_t indexCount,
uint32_t instanceCount,
uint32_t firstIndex,
uint32_t vertexOffset,
uint32_t firstInstance) = 0;
virtual void cmdEndRenderPass();
virtual void trackResource(
const Rc<DxvkResource>& rc) = 0;
virtual void reset() = 0;
};
}