63 virtual void BeginCommandBuffer() = 0;
64 virtual void BindRenderPass(
69 ClearColorValue* colorClearValues,
70 uint32_t colorClearCount,
73 virtual void UnbindRenderPass() = 0;
74 virtual void BeginDebugLabelSection(
const char* name,
float color[4] =
nullptr) = 0;
75 virtual void EndDebugLabelSection() = 0;
76 virtual void BindGraphicsDescriptorSet(
79 uint32_t descriptorSetOffset,
80 uint32_t descriptorSetCount
82 virtual void BindComputeDescriptorSet(
85 uint32_t descriptorSetOffset,
86 uint32_t descriptorSetCount
88 virtual void BindCommandBuffers(
CommandBuffer** commandBuffers, uint32_t commandBuffersCount) = 0;
89 virtual void SetViewport(
float offsetX,
float offsetY,
float width,
float height,
float depthMin = 0.0f,
float depthMax = 1.0f) = 0;
90 virtual void SetScissor(int32_t offsetX, int32_t offsetY, uint32_t width, uint32_t height) = 0;
91 virtual void SetDepthBias(
float biasConstantFactor,
float biasSlopeFactor) = 0;
94 virtual void BindVertexArrayObject(
const VertexArrayObject* vertexArrayObject) = 0;
95 virtual void BindVertexBuffers(
const Buffer*
const * vb, uint32_t count) = 0;
96 virtual void BindIndexBuffer(
Buffer* indexBuffer) = 0;
97 virtual void DrawVertices(uint32_t vertexCount, uint32_t firstInstance, uint32_t instanceCount, int32_t vertexOffset) = 0;
98 virtual void DrawIndices(uint32_t firstIndex, uint32_t indexCount, uint32_t firstInstance, uint32_t instanceCount, int32_t vertexOffset) = 0;
99 virtual void DispatchCompute(uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) = 0;
100 virtual void BlitImage(
Image* src,
Image* dst) = 0;
102 virtual void WaitForComputeMemoryBarrier(
Image* renderTarget,
bool shouldMakeWritable) = 0;
105 virtual void EndCommandBuffer() = 0;
108 bool isSecondary =
false;
114 const char* debugName =
nullptr;