Class RenderStage¶
Defined in File render_graph.hpp
Inheritance Relationships¶
Base Type¶
public inexor::vulkan_renderer::RenderGraphObject
(Struct RenderGraphObject)
Derived Type¶
public inexor::vulkan_renderer::GraphicsStage
(Class GraphicsStage)
Class Documentation¶
-
class RenderStage : public inexor::vulkan_renderer::RenderGraphObject¶
A single render stage in the render graph.
Note
Not to be confused with a vulkan render pass.
Subclassed by inexor::vulkan_renderer::GraphicsStage
Public Functions
-
RenderStage(const RenderStage&) = delete¶
-
RenderStage(RenderStage&&) = delete¶
-
~RenderStage() override = default¶
-
RenderStage &operator=(const RenderStage&) = delete¶
-
RenderStage &operator=(RenderStage&&) = delete¶
-
void writes_to(const RenderResource *resource)¶
Specifies that this stage writes to
resource
.
-
void reads_from(const RenderResource *resource)¶
Specifies that this stage reads from
resource
.
-
inline void add_descriptor_layout(VkDescriptorSetLayout layout)¶
Binds a descriptor set layout to this render stage.
Note
This function will be removed in the near future, as we are aiming for users of the API to not have to deal with descriptors at all.
-
inline void add_push_constant_range(VkPushConstantRange range)¶
Add a push constant range to this render stage.
- Parameters
range – The push constant range
-
inline const std::string &name() const¶
-
inline void set_on_record(std::function<void(const PhysicalStage&, const wrapper::CommandBuffer&)> on_record)¶
Specifies a function that will be called during command buffer recording for this stage.
This function can be used to specify other vulkan commands during command buffer recording. The most common use for this is for draw commands.
Protected Functions
-
inline explicit RenderStage(std::string name)¶
Private Members
- friend RenderGraph
-
const std::string m_name¶
-
std::unique_ptr<PhysicalStage> m_physical¶
-
std::vector<const RenderResource*> m_writes¶
-
std::vector<const RenderResource*> m_reads¶
-
std::vector<VkDescriptorSetLayout> m_descriptor_layouts¶
-
std::vector<VkPushConstantRange> m_push_constant_ranges¶
- std::function< void(const PhysicalStage &, const wrapper::CommandBuffer &)> m_on_record = {[](auto &, auto &) {}}
-
RenderStage(const RenderStage&) = delete¶