Blender
V4.3
source
blender
render
hydra
render_task_delegate.hh
Go to the documentation of this file.
1
/* SPDX-FileCopyrightText: 2011-2022 Blender Authors
2
*
3
* SPDX-License-Identifier: GPL-2.0-or-later */
4
5
#pragma once
6
7
#include <pxr/imaging/hd/sceneDelegate.h>
8
#include <pxr/imaging/hdx/renderSetupTask.h>
9
10
#include "
GPU_framebuffer.hh
"
11
#include "
GPU_texture.hh
"
12
13
namespace
blender::render::hydra
{
14
15
/* Delegate to create a render task with given camera, viewport and AOVs. */
16
17
class
RenderTaskDelegate
:
public
pxr::HdSceneDelegate {
18
protected
:
19
pxr::SdfPath
task_id_
;
20
pxr::HdxRenderTaskParams
task_params_
;
21
pxr::TfHashMap<pxr::SdfPath, pxr::HdRenderBufferDescriptor, pxr::SdfPath::Hash>
22
buffer_descriptors_
;
23
24
public
:
25
RenderTaskDelegate
(pxr::HdRenderIndex *parent_index, pxr::SdfPath
const
&delegate_id);
26
~RenderTaskDelegate
()
override
=
default
;
27
28
/* Delegate methods */
29
pxr::VtValue
Get
(pxr::SdfPath
const
&
id
, pxr::TfToken
const
&key)
override
;
30
pxr::TfTokenVector
GetTaskRenderTags
(pxr::SdfPath
const
&
id
)
override
;
31
pxr::HdRenderBufferDescriptor
GetRenderBufferDescriptor
(pxr::SdfPath
const
&
id
)
override
;
32
33
pxr::HdTaskSharedPtr
task
();
34
void
set_camera
(pxr::SdfPath
const
&camera_id);
35
bool
is_converged
();
36
virtual
void
set_viewport
(pxr::GfVec4d
const
&viewport);
37
virtual
void
add_aov
(pxr::TfToken
const
&aov_key);
38
virtual
void
read_aov
(pxr::TfToken
const
&aov_key,
void
*
data
);
39
virtual
void
read_aov
(pxr::TfToken
const
&aov_key, GPUTexture *
texture
);
40
virtual
void
bind
();
41
virtual
void
unbind
();
42
43
protected
:
44
pxr::SdfPath
buffer_id
(pxr::TfToken
const
&aov_key)
const
;
45
};
46
47
class
GPURenderTaskDelegate
:
public
RenderTaskDelegate
{
48
private
:
49
GPUFrameBuffer *framebuffer_ =
nullptr
;
50
GPUTexture *tex_color_ =
nullptr
;
51
GPUTexture *tex_depth_ =
nullptr
;
52
unsigned
int
VAO_ = 0;
53
54
public
:
55
using
RenderTaskDelegate::RenderTaskDelegate
;
56
~GPURenderTaskDelegate
()
override
;
57
58
void
set_viewport
(pxr::GfVec4d
const
&viewport)
override
;
59
void
add_aov
(pxr::TfToken
const
&aov_key)
override
;
60
void
read_aov
(pxr::TfToken
const
&aov_key,
void
*
data
)
override
;
61
void
read_aov
(pxr::TfToken
const
&aov_key, GPUTexture *
texture
)
override
;
62
void
bind
()
override
;
63
void
unbind
()
override
;
64
GPUTexture *
aov_texture
(pxr::TfToken
const
&aov_key);
65
};
66
67
}
// namespace blender::render::hydra
GPU_framebuffer.hh
GPU_texture.hh
data
data
Definition
bmesh_operator_api_inline.hh:159
blender::render::hydra::GPURenderTaskDelegate
Definition
render_task_delegate.hh:47
blender::render::hydra::GPURenderTaskDelegate::add_aov
void add_aov(pxr::TfToken const &aov_key) override
Definition
render_task_delegate.cc:226
blender::render::hydra::GPURenderTaskDelegate::set_viewport
void set_viewport(pxr::GfVec4d const &viewport) override
Definition
render_task_delegate.cc:205
blender::render::hydra::GPURenderTaskDelegate::unbind
void unbind() override
Definition
render_task_delegate.cc:319
blender::render::hydra::GPURenderTaskDelegate::RenderTaskDelegate
RenderTaskDelegate(pxr::HdRenderIndex *parent_index, pxr::SdfPath const &delegate_id)
Definition
render_task_delegate.cc:23
blender::render::hydra::GPURenderTaskDelegate::aov_texture
GPUTexture * aov_texture(pxr::TfToken const &aov_key)
Definition
render_task_delegate.cc:332
blender::render::hydra::GPURenderTaskDelegate::bind
void bind() override
Definition
render_task_delegate.cc:298
blender::render::hydra::GPURenderTaskDelegate::read_aov
void read_aov(pxr::TfToken const &aov_key, void *data) override
Definition
render_task_delegate.cc:258
blender::render::hydra::GPURenderTaskDelegate::~GPURenderTaskDelegate
~GPURenderTaskDelegate() override
Definition
render_task_delegate.cc:194
blender::render::hydra::RenderTaskDelegate::GetTaskRenderTags
pxr::TfTokenVector GetTaskRenderTags(pxr::SdfPath const &id) override
Definition
render_task_delegate.cc:50
blender::render::hydra::RenderTaskDelegate::~RenderTaskDelegate
~RenderTaskDelegate() override=default
blender::render::hydra::RenderTaskDelegate::task
pxr::HdTaskSharedPtr task()
Definition
render_task_delegate.cc:64
blender::render::hydra::RenderTaskDelegate::RenderTaskDelegate
RenderTaskDelegate(pxr::HdRenderIndex *parent_index, pxr::SdfPath const &delegate_id)
Definition
render_task_delegate.cc:23
blender::render::hydra::RenderTaskDelegate::task_params_
pxr::HdxRenderTaskParams task_params_
Definition
render_task_delegate.hh:20
blender::render::hydra::RenderTaskDelegate::set_viewport
virtual void set_viewport(pxr::GfVec4d const &viewport)
Definition
render_task_delegate.cc:83
blender::render::hydra::RenderTaskDelegate::Get
pxr::VtValue Get(pxr::SdfPath const &id, pxr::TfToken const &key) override
Definition
render_task_delegate.cc:36
blender::render::hydra::RenderTaskDelegate::is_converged
bool is_converged()
Definition
render_task_delegate.cc:78
blender::render::hydra::RenderTaskDelegate::bind
virtual void bind()
Definition
render_task_delegate.cc:185
blender::render::hydra::RenderTaskDelegate::add_aov
virtual void add_aov(pxr::TfToken const &aov_key)
Definition
render_task_delegate.cc:101
blender::render::hydra::RenderTaskDelegate::buffer_id
pxr::SdfPath buffer_id(pxr::TfToken const &aov_key) const
Definition
render_task_delegate.cc:189
blender::render::hydra::RenderTaskDelegate::set_camera
void set_camera(pxr::SdfPath const &camera_id)
Definition
render_task_delegate.cc:69
blender::render::hydra::RenderTaskDelegate::task_id_
pxr::SdfPath task_id_
Definition
render_task_delegate.hh:19
blender::render::hydra::RenderTaskDelegate::read_aov
virtual void read_aov(pxr::TfToken const &aov_key, void *data)
Definition
render_task_delegate.cc:142
blender::render::hydra::RenderTaskDelegate::unbind
virtual void unbind()
Definition
render_task_delegate.cc:187
blender::render::hydra::RenderTaskDelegate::GetRenderBufferDescriptor
pxr::HdRenderBufferDescriptor GetRenderBufferDescriptor(pxr::SdfPath const &id) override
Definition
render_task_delegate.cc:57
blender::render::hydra::RenderTaskDelegate::buffer_descriptors_
pxr::TfHashMap< pxr::SdfPath, pxr::HdRenderBufferDescriptor, pxr::SdfPath::Hash > buffer_descriptors_
Definition
render_task_delegate.hh:22
texture
local_group_size(16, 16) .push_constant(Type texture
Definition
compositor_realize_on_domain_info.hh:15
blender::render::hydra
Definition
render/hydra/camera.cc:15
Generated on Sat Oct 4 2025 05:32:23 for Blender by
doxygen
1.14.0