7#ifndef PXR_IMAGING_HD_RENDER_SETTINGS_H
8#define PXR_IMAGING_HD_RENDER_SETTINGS_H
10#include "pxr/imaging/hd/api.h"
11#include "pxr/imaging/hd/bprim.h"
12#include "pxr/imaging/hd/types.h"
14#include "pxr/usd/sdf/path.h"
22#include "pxr/base/vt/value.h"
31PXR_NAMESPACE_OPEN_SCOPE
62 enum DirtyBits : HdDirtyBits {
65 DirtyNamespacedSettings = 1 << 2,
66 DirtyRenderProducts = 1 << 3,
67 DirtyIncludedPurposes = 1 << 4,
68 DirtyMaterialBindingPurposes = 1 << 5,
69 DirtyRenderingColorSpace = 1 << 6,
70 DirtyUnionedSamplingInterval = 1 << 7,
71 DirtyFrameNumber = 1 << 8,
73 DirtyDisableDepthOfField = 1 << 10,
74 DirtyDisableMotionBlur = 1 << 11,
75 AllDirty = DirtyActive
76 | DirtyNamespacedSettings
78 | DirtyIncludedPurposes
79 | DirtyMaterialBindingPurposes
80 | DirtyRenderingColorSpace
81 | DirtyUnionedSamplingInterval
84 | DirtyDisableDepthOfField
85 | DirtyDisableMotionBlur
90 StringifyDirtyBits(HdDirtyBits dirtyBits);
96 struct RenderProduct {
100 std::string sourceName;
116 std::vector<RenderVar> renderVars;
123 float pixelAspectRatio;
126 TfToken aspectRatioConformPolicy;
138 bool disableMotionBlur;
139 bool disableDepthOfField;
143 using RenderProducts = std::vector<RenderProduct>;
153 bool IsActive()
const;
156 bool IsValid()
const;
162 const RenderProducts& GetRenderProducts()
const;
171 const TfToken& GetRenderingColorSpace()
const;
175 const VtValue& GetUnionedSamplingInterval()
const;
179 const VtValue& GetCamera()
const;
182 bool GetDisableDepthOfField()
const;
185 bool GetDisableMotionBlur()
const;
204 HdDirtyBits *dirtyBits)
final;
222 const HdDirtyBits *dirtyBits);
234 RenderProducts _products;
238 VtValue _vUnionedSamplingInterval;
240 bool _disableDepthOfField;
241 bool _disableMotionBlur;
246size_t hash_value(HdRenderSettings::RenderProduct
const &rp);
250 std::ostream& out,
const HdRenderSettings::RenderProduct&);
253bool operator==(
const HdRenderSettings::RenderProduct& lhs,
254 const HdRenderSettings::RenderProduct& rhs);
256bool operator!=(
const HdRenderSettings::RenderProduct& lhs,
257 const HdRenderSettings::RenderProduct& rhs);
260 std::ostream& out,
const HdRenderSettings::RenderProduct::RenderVar&);
263bool operator==(
const HdRenderSettings::RenderProduct::RenderVar& lhs,
264 const HdRenderSettings::RenderProduct::RenderVar& rhs);
266bool operator!=(
const HdRenderSettings::RenderProduct::RenderVar& lhs,
267 const HdRenderSettings::RenderProduct::RenderVar& rhs);
270PXR_NAMESPACE_CLOSE_SCOPE
Basic type: 2-dimensional floating point range.
Basic type for a vector of 2 float components.
Basic type for a vector of 2 int components.
Bprim (buffer prim) is a base class of managing a blob of data that is used to communicate between th...
The HdRenderParam is an opaque (to core Hydra) handle, to an object that is obtained from the render ...
Hydra prim backing render settings scene description.
HD_API void Sync(HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits) final
Synchronizes state from the delegate to this object.
HD_API bool GetAndResetHasDirtyProducts()
Returns whether the render products were invalidated since the last time this function was called.
HD_API HdDirtyBits GetInitialDirtyBitsMask() const override
Returns the minimal set of dirty bits to place in the change tracker for use in the first sync of thi...
Adapter class providing data exchange with the client scene graph.
A path value used to locate objects in layers or scenegraphs.
Token for efficient comparison, assignment, and hashing of known strings.
Represents an arbitrary dimensional rectangular container class.
A map with string keys and VtValue values.
Provides a container which may hold any type, and provides introspection and iteration over array typ...
GF_API std::ostream & operator<<(std::ostream &, const GfBBox3d &)
Output a GfBBox3d using the format [(range) matrix zeroArea].
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...