24 #ifndef EXT_RMANPKG_24_0_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_RENDER_DELEGATE_H
25 #define EXT_RMANPKG_24_0_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_RENDER_DELEGATE_H
28 #include "pxr/imaging/hd/renderDelegate.h"
29 #include "hdPrman/api.h"
33 PXR_NAMESPACE_OPEN_SCOPE
35 class HdPrman_RenderParam;
36 class HdPrman_RenderPass;
37 struct HdPrman_Context;
38 struct HdPrman_InteractiveContext;
42 HdPrmanRenderSettingsTokens,
43 ((integrator,
"integrator"))
44 ((integratorName,
"ri:integrator:name"))
45 ((interactiveIntegrator,
"interactiveIntegrator"))
46 ((interactiveIntegratorTimeout,
"interactiveIntegratorTimeout"))
47 ((dataWindowNDC,
"dataWindowNDC"))
48 ((pixelAspectRatio,
"pixelAspectRatio"))
49 ((resolution,
"resolution"))
50 ((instantaneousShutter,
"instantaneousShutter"))
51 ((shutterOpen,
"shutter:open"))
52 ((shutterClose,
"shutter:close"))
55 #define HDPRMAN_INTEGRATOR_TOKENS \
61 HDPRMAN_INTEGRATOR_TOKENS);
63 class HdPrmanRenderDelegate :
public HdRenderDelegate
67 HdPrmanRenderDelegate(std::shared_ptr<HdPrman_Context> context);
69 HdPrmanRenderDelegate(std::shared_ptr<HdPrman_Context> context,
70 HdRenderSettingsMap
const& settingsMap);
72 virtual ~HdPrmanRenderDelegate();
78 const TfTokenVector & GetSupportedRprimTypes()
const override;
80 const TfTokenVector & GetSupportedSprimTypes()
const override;
82 const TfTokenVector & GetSupportedBprimTypes()
const override;
84 HdResourceRegistrySharedPtr GetResourceRegistry()
const override;
88 HdRenderSettingDescriptorList GetRenderSettingDescriptors()
const override;
91 HdRenderSettingsMap GetRenderSettingsMap()
const;
94 HdRenderPassSharedPtr CreateRenderPass(
101 void DestroyInstancer(
HdInstancer *instancer)
override;
104 SdfPath const& rprimId)
override;
106 void DestroyRprim(
HdRprim *rPrim)
override;
109 SdfPath const& sprimId)
override;
113 void DestroySprim(
HdSprim *sPrim)
override;
116 SdfPath const& bprimId)
override;
120 void DestroyBprim(
HdBprim *bPrim)
override;
128 TfToken GetMaterialBindingPurpose()
const override;
129 #if HD_API_VERSION < 41
131 TfToken GetMaterialNetworkSelector()
const override;
140 void SetRenderSetting(
TfToken const &key,
VtValue const &value)
override;
147 bool IsPauseSupported()
const override {
return false; }
151 bool IsStopSupported()
const override;
155 bool Stop()
override;
159 bool Restart()
override;
163 HdPrmanRenderDelegate(
const HdPrmanRenderDelegate &) =
delete;
164 HdPrmanRenderDelegate &operator =(
const HdPrmanRenderDelegate &) =
delete;
173 RenderMode _renderMode;
175 bool _IsInteractive()
const {
176 return (_renderMode == RenderMode::Interactive);
184 std::shared_ptr<HdPrman_Context> _context;
185 std::shared_ptr<HdPrman_RenderParam> _renderParam;
186 HdResourceRegistrySharedPtr _resourceRegistry;
187 HdRenderPassSharedPtr _renderPass;
188 HdRenderSettingDescriptorList _settingDescriptors;
191 PXR_NAMESPACE_CLOSE_SCOPE
193 #endif // EXT_RMANPKG_24_0_PLUGIN_RENDERMAN_PLUGIN_HD_PRMAN_RENDER_DELEGATE_H
The Hydra render index is a flattened representation of the client scene graph, which may be composed...
Tracks changes from the HdSceneDelegate, providing invalidation cues to the render engine...
This class exists to facilitate point cloud style instancing.
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
Token for efficient comparison, assignment, and hashing of known strings.
#define TF_DEFINE_PRIVATE_TOKENS(key, seq)
Macro to define private tokens.
The render engine state for a given rprim from the scene graph.
Adapter class providing data exchange with the client scene graph.
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.
std::vector< TfToken > TfTokenVector
Convenience types.
A named, semantic collection of objects.
A path value used to locate objects in layers or scenegraphs.
Sprim (state prim) is a base class of managing state for non-drawable scene entity (e...
Bprim (buffer prim) is a base class of managing a blob of data that is used to communicate between th...
A bundle of state describing an AOV ("Arbitrary Output Variable") display channel.
Provides a container which may hold any type, and provides introspection and iteration over array typ...