Skip to content

KDGpu::VulkanRenderPassCommandRecorder

Module: Vulkan

VulkanRenderPassCommandRecorder.

#include <vulkan_render_pass_command_recorder.h>

Public Functions

Name
VulkanRenderPassCommandRecorder(VkCommandBuffer _commandBuffer, VkRect2D _renderArea, VulkanResourceManager * _vulkanResourceManager, const Handle< Device_t > & _deviceHandle, bool _dynamicRendering)
void setPipeline(const Handle< GraphicsPipeline_t > & pipeline)
void setVertexBuffer(uint32_t index, const Handle< Buffer_t > & buffer, DeviceSize offset) const
void setIndexBuffer(const Handle< Buffer_t > & buffer, DeviceSize offset, IndexType indexType) const
void setBindGroup(uint32_t group, const Handle< BindGroup_t > & bindGroup, const Handle< PipelineLayout_t > & pipelineLayout, std::span< const uint32_t > dynamicBufferOffsets) const
void setViewport(const Viewport & viewport) const
void setScissor(const Rect2D & scissor) const
void setStencilReference(StencilFaceFlags faceMask, int reference) const
void draw(const DrawCommand & drawCommand) const
void draw(std::span< const DrawCommand > drawCommands) const
void drawIndexed(const DrawIndexedCommand & drawCommand) const
void drawIndexed(std::span< const DrawIndexedCommand > drawCommands) const
void drawIndirect(const DrawIndirectCommand & drawCommand) const
void drawIndirect(std::span< const DrawIndirectCommand > drawCommands) const
void drawIndexedIndirect(const DrawIndexedIndirectCommand & drawCommand) const
void drawIndexedIndirect(std::span< const DrawIndexedIndirectCommand > drawCommands) const
void drawMeshTasks(const DrawMeshCommand & drawCommand) const
void drawMeshTasks(std::span< const DrawMeshCommand > drawCommands) const
void drawMeshTasksIndirect(const DrawMeshIndirectCommand & drawCommand) const
void drawMeshTasksIndirect(std::span< const DrawMeshIndirectCommand > drawCommands) const
void pushConstant(const PushConstantRange & constantRange, const void * data, const Handle< PipelineLayout_t > & pipelineLayout ={}) const
void pushBindGroup(uint32_t group, std::span< const BindGroupEntry > bindGroupEntries, const Handle< PipelineLayout_t > & pipelineLayout ={}) const
void nextSubpass() const
void setInputAttachmentMapping(std::span< const uint32_t > colorAttachmentIndices, std::optional< uint32_t > depthAttachmentIndex, std::optional< uint32_t > stencilAttachmentIndex) const
void setOutputAttachmentMapping(std::span< const uint32_t > remappedOutputs) const
void end() const

Public Attributes

Name
VkCommandBuffer commandBuffer
VkRect2D renderArea
VulkanResourceManager * vulkanResourceManager
Handle< Device_t > deviceHandle
Handle< GraphicsPipeline_t > pipeline
bool firstPipelineWasSet
bool dynamicRendering

Public Functions Documentation

function VulkanRenderPassCommandRecorder

1
2
3
4
5
6
7
explicit VulkanRenderPassCommandRecorder(
    VkCommandBuffer _commandBuffer,
    VkRect2D _renderArea,
    VulkanResourceManager * _vulkanResourceManager,
    const Handle< Device_t > & _deviceHandle,
    bool _dynamicRendering
)

function setPipeline

1
2
3
void setPipeline(
    const Handle< GraphicsPipeline_t > & pipeline
)

function setVertexBuffer

1
2
3
4
5
void setVertexBuffer(
    uint32_t index,
    const Handle< Buffer_t > & buffer,
    DeviceSize offset
) const

function setIndexBuffer

1
2
3
4
5
void setIndexBuffer(
    const Handle< Buffer_t > & buffer,
    DeviceSize offset,
    IndexType indexType
) const

function setBindGroup

1
2
3
4
5
6
void setBindGroup(
    uint32_t group,
    const Handle< BindGroup_t > & bindGroup,
    const Handle< PipelineLayout_t > & pipelineLayout,
    std::span< const uint32_t > dynamicBufferOffsets
) const

function setViewport

1
2
3
void setViewport(
    const Viewport & viewport
) const

function setScissor

1
2
3
void setScissor(
    const Rect2D & scissor
) const

function setStencilReference

1
2
3
4
void setStencilReference(
    StencilFaceFlags faceMask,
    int reference
) const

function draw

1
2
3
void draw(
    const DrawCommand & drawCommand
) const

function draw

1
2
3
void draw(
    std::span< const DrawCommand > drawCommands
) const

function drawIndexed

1
2
3
void drawIndexed(
    const DrawIndexedCommand & drawCommand
) const

function drawIndexed

1
2
3
void drawIndexed(
    std::span< const DrawIndexedCommand > drawCommands
) const

function drawIndirect

1
2
3
void drawIndirect(
    const DrawIndirectCommand & drawCommand
) const

function drawIndirect

1
2
3
void drawIndirect(
    std::span< const DrawIndirectCommand > drawCommands
) const

function drawIndexedIndirect

1
2
3
void drawIndexedIndirect(
    const DrawIndexedIndirectCommand & drawCommand
) const

function drawIndexedIndirect

1
2
3
void drawIndexedIndirect(
    std::span< const DrawIndexedIndirectCommand > drawCommands
) const

function drawMeshTasks

1
2
3
void drawMeshTasks(
    const DrawMeshCommand & drawCommand
) const

function drawMeshTasks

1
2
3
void drawMeshTasks(
    std::span< const DrawMeshCommand > drawCommands
) const

function drawMeshTasksIndirect

1
2
3
void drawMeshTasksIndirect(
    const DrawMeshIndirectCommand & drawCommand
) const

function drawMeshTasksIndirect

1
2
3
void drawMeshTasksIndirect(
    std::span< const DrawMeshIndirectCommand > drawCommands
) const

function pushConstant

1
2
3
4
5
void pushConstant(
    const PushConstantRange & constantRange,
    const void * data,
    const Handle< PipelineLayout_t > & pipelineLayout ={}
) const

function pushBindGroup

1
2
3
4
5
void pushBindGroup(
    uint32_t group,
    std::span< const BindGroupEntry > bindGroupEntries,
    const Handle< PipelineLayout_t > & pipelineLayout ={}
) const

function nextSubpass

1
void nextSubpass() const

function setInputAttachmentMapping

1
2
3
4
5
void setInputAttachmentMapping(
    std::span< const uint32_t > colorAttachmentIndices,
    std::optional< uint32_t > depthAttachmentIndex,
    std::optional< uint32_t > stencilAttachmentIndex
) const

function setOutputAttachmentMapping

1
2
3
void setOutputAttachmentMapping(
    std::span< const uint32_t > remappedOutputs
) const

function end

1
void end() const

Public Attributes Documentation

variable commandBuffer

1
VkCommandBuffer commandBuffer { VK_NULL_HANDLE };

variable renderArea

1
VkRect2D renderArea {};

variable vulkanResourceManager

1
VulkanResourceManager * vulkanResourceManager { nullptr };

variable deviceHandle

1
Handle< Device_t > deviceHandle;

variable pipeline

1
Handle< GraphicsPipeline_t > pipeline;

variable firstPipelineWasSet

1
bool firstPipelineWasSet { false };

variable dynamicRendering

1
bool dynamicRendering { false };

Updated on 2025-12-31 at 00:05:02 +0000