25 virtual void BeginCommandBuffer() = 0;
26 virtual void BindRenderPass(
32 uint32_t colorClearCount,
35 virtual void UnbindRenderPass() = 0;
36 virtual void BeginDebugLabelSection(
const char* name,
float color[4] =
nullptr) = 0;
37 virtual void EndDebugLabelSection() = 0;
38 virtual void BindGraphicsDescriptorSet(
41 uint32_t descriptorSetCount
43 virtual void BindComputeDescriptorSet(
46 uint32_t descriptorSetCount
48 virtual void BindCommandBuffers(
CommandBuffer** commandBuffers, uint32_t commandBuffersCount) = 0;
49 virtual void SetViewport(
float offsetX,
float offsetY,
float width,
float height,
float depthMin = 0.0f,
float depthMax = 1.0f) = 0;
50 virtual void SetScissor(int32_t offsetX, int32_t offsetY, uint32_t width, uint32_t height) = 0;
51 virtual void SetDepthBias(
float biasConstantFactor,
float biasSlopeFactor) = 0;
55 virtual void BindVertexBuffers(
VertexBuffer** vb, uint32_t count) = 0;
56 virtual void BindIndexBuffer(
IndexBuffer* indexBuffer) = 0;
57 virtual void DrawVertices(uint32_t vertexCount, uint32_t firstInstance, uint32_t instanceCount, int32_t vertexOffset) = 0;
58 virtual void DrawIndices(uint32_t firstIndex, uint32_t indexCount, uint32_t firstInstance, uint32_t instanceCount, int32_t vertexOffset) = 0;
59 virtual void DispatchCompute(uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) = 0;
62 virtual void WaitForComputeMemoryBarrier(
RenderTarget* renderTarget,
bool shouldMakeWritable) = 0;
64 virtual void EndCommandBuffer() = 0;
67 bool isSecondary =
false;
73 const char* debugName =
nullptr;