7#ifndef PXR_IMAGING_HD_RENDER_SETTINGS_H
8#define PXR_IMAGING_HD_RENDER_SETTINGS_H
11#include "pxr/imaging/hd/api.h"
12#include "pxr/imaging/hd/bprim.h"
23PXR_NAMESPACE_OPEN_SCOPE
54 enum DirtyBits : HdDirtyBits {
57 DirtyNamespacedSettings = 1 << 2,
58 DirtyRenderProducts = 1 << 3,
59 DirtyIncludedPurposes = 1 << 4,
60 DirtyMaterialBindingPurposes = 1 << 5,
61 DirtyRenderingColorSpace = 1 << 6,
62 DirtyShutterInterval = 1 << 7,
63 DirtyFrameNumber = 1 << 8,
64 AllDirty = DirtyActive
65 | DirtyNamespacedSettings
67 | DirtyIncludedPurposes
68 | DirtyMaterialBindingPurposes
69 | DirtyRenderingColorSpace
70 | DirtyShutterInterval
78 struct RenderProduct {
82 std::string sourceName;
98 std::vector<RenderVar> renderVars;
105 float pixelAspectRatio;
108 TfToken aspectRatioConformPolicy;
120 bool disableMotionBlur;
121 bool disableDepthOfField;
125 using RenderProducts = std::vector<RenderProduct>;
135 bool IsActive()
const;
138 bool IsValid()
const;
144 const RenderProducts& GetRenderProducts()
const;
153 const TfToken& GetRenderingColorSpace()
const;
157 const VtValue& GetShutterInterval()
const;
176 HdDirtyBits *dirtyBits)
override final;
194 const HdDirtyBits *dirtyBits);
206 RenderProducts _products;
215size_t hash_value(HdRenderSettings::RenderProduct
const &rp);
219 std::ostream& out,
const HdRenderSettings::RenderProduct&);
222bool operator==(
const HdRenderSettings::RenderProduct& lhs,
223 const HdRenderSettings::RenderProduct& rhs);
225bool operator!=(
const HdRenderSettings::RenderProduct& lhs,
226 const HdRenderSettings::RenderProduct& rhs);
229 std::ostream& out,
const HdRenderSettings::RenderProduct::RenderVar&);
232bool operator==(
const HdRenderSettings::RenderProduct::RenderVar& lhs,
233 const HdRenderSettings::RenderProduct::RenderVar& rhs);
235bool operator!=(
const HdRenderSettings::RenderProduct::RenderVar& lhs,
236 const HdRenderSettings::RenderProduct::RenderVar& rhs);
239PXR_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 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...
HD_API void Sync(HdSceneDelegate *sceneDelegate, HdRenderParam *renderParam, HdDirtyBits *dirtyBits) override final
Synchronizes state from the delegate to this object.
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].