Blender
V4.5
source
blender
gpu
vulkan
render_graph
nodes
vk_end_rendering_node.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2024 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9
#pragma once
10
11
#include "
vk_node_info.hh
"
12
13
namespace
blender::gpu::render_graph
{
14
18
struct
VKEndRenderingData
{
19
/* Render pass used (when dynamic rendering is not supported). */
20
VkRenderPass
vk_render_pass
;
21
};
22
30
class
VKEndRenderingNode
:
public
VKNodeInfo
<VKNodeType::END_RENDERING,
31
VKEndRenderingData,
32
VKEndRenderingData,
33
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT,
34
VKResourceType::NONE> {
35
public
:
43
template
<
typename
Node,
typename
Storage>
44
void
set_node_data
(
Node
&node, Storage &
/*storage*/
,
const
CreateInfo
&create_info)
45
{
46
node.end_rendering = create_info;
47
}
48
52
void
build_links
(
VKResourceStateTracker
&
/*resources*/
,
53
VKRenderGraphNodeLinks
&
/*node_links*/
,
54
const
CreateInfo
&
/*create_info*/
)
override
55
{
56
}
57
61
void
build_commands
(
VKCommandBufferInterface
&command_buffer,
62
Data
&
data
,
63
VKBoundPipelines
&
/*r_bound_pipelines*/
)
override
64
{
65
const
bool
is_dynamic_rendering =
data
.vk_render_pass == VK_NULL_HANDLE;
66
if
(is_dynamic_rendering) {
67
command_buffer.
end_rendering
();
68
}
69
else
{
70
command_buffer.
end_render_pass
();
71
}
72
}
73
};
74
}
// namespace blender::gpu::render_graph
data
BMesh const char void * data
Definition
bmesh_iterators_inline.hh:37
blender::gpu::render_graph::VKCommandBufferInterface
Definition
vk_command_buffer_wrapper.hh:18
blender::gpu::render_graph::VKCommandBufferInterface::end_render_pass
virtual void end_render_pass()=0
blender::gpu::render_graph::VKCommandBufferInterface::end_rendering
virtual void end_rendering()=0
blender::gpu::render_graph::VKEndRenderingNode
Definition
vk_end_rendering_node.hh:34
blender::gpu::render_graph::VKEndRenderingNode::build_links
void build_links(VKResourceStateTracker &, VKRenderGraphNodeLinks &, const CreateInfo &) override
Definition
vk_end_rendering_node.hh:52
blender::gpu::render_graph::VKEndRenderingNode::build_commands
void build_commands(VKCommandBufferInterface &command_buffer, Data &data, VKBoundPipelines &) override
Definition
vk_end_rendering_node.hh:61
blender::gpu::render_graph::VKEndRenderingNode::set_node_data
void set_node_data(Node &node, Storage &, const CreateInfo &create_info)
Definition
vk_end_rendering_node.hh:44
blender::gpu::render_graph::VKNodeInfo
Definition
vk_node_info.hh:159
blender::gpu::render_graph::VKNodeInfo< VKNodeType::END_RENDERING, VKEndRenderingData, VKEndRenderingData, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, VKResourceType::NONE >::CreateInfo
VKEndRenderingData CreateInfo
Definition
vk_node_info.hh:162
blender::gpu::render_graph::VKNodeInfo< VKNodeType::END_RENDERING, VKEndRenderingData, VKEndRenderingData, VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, VKResourceType::NONE >::Data
VKEndRenderingData Data
Definition
vk_node_info.hh:163
blender::gpu::render_graph::VKResourceStateTracker
Definition
vk_resource_state_tracker.hh:98
blender::gpu::render_graph
Definition
vk_begin_query_node.hh:13
Node
Definition
graph/node.h:90
blender::gpu::render_graph::VKBoundPipelines
Definition
vk_pipeline_data.hh:113
blender::gpu::render_graph::VKEndRenderingData
Definition
vk_end_rendering_node.hh:18
blender::gpu::render_graph::VKEndRenderingData::vk_render_pass
VkRenderPass vk_render_pass
Definition
vk_end_rendering_node.hh:20
blender::gpu::render_graph::VKRenderGraphNodeLinks
Definition
vk_render_graph_links.hh:79
vk_node_info.hh
Generated on
for Blender by
doxygen
1.15.0