renderVarAdapter.h
Go to the documentation of this file.
1 //
2 // Copyright 2023 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 #ifndef PXR_USD_IMAGING_USD_IMAGING_RENDER_VAR_ADAPTER_H
8 #define PXR_USD_IMAGING_USD_IMAGING_RENDER_VAR_ADAPTER_H
9 
11 
12 #include "pxr/pxr.h"
13 #include "pxr/usdImaging/usdImaging/api.h"
15 
16 PXR_NAMESPACE_OPEN_SCOPE
17 
18 
28 public:
30 
33  {}
34 
35  USDIMAGING_API
36  ~UsdImagingRenderVarAdapter() override;
37 
38  // ---------------------------------------------------------------------- //
40  // ---------------------------------------------------------------------- //
41 
42  USDIMAGING_API
43  TfTokenVector GetImagingSubprims(UsdPrim const& prim) override;
44 
45  USDIMAGING_API
46  TfToken GetImagingSubprimType(
47  UsdPrim const& prim,
48  TfToken const& subprim) override;
49 
50  USDIMAGING_API
51  HdContainerDataSourceHandle GetImagingSubprimData(
52  UsdPrim const& prim,
53  TfToken const& subprim,
54  const UsdImagingDataSourceStageGlobals &stageGlobals) override;
55 
56  USDIMAGING_API
57  HdDataSourceLocatorSet InvalidateImagingSubprim(
58  UsdPrim const& prim,
59  TfToken const& subprim,
60  TfTokenVector const& properties,
61  UsdImagingPropertyInvalidationType invalidationType) override;
62 
63  // ---------------------------------------------------------------------- //
65  // ---------------------------------------------------------------------- //
66 
67  USDIMAGING_API
68  SdfPath Populate(UsdPrim const& prim,
69  UsdImagingIndexProxy* index,
71  instancerContext = nullptr) override;
72 
73  USDIMAGING_API
74  bool IsSupported(UsdImagingIndexProxy const* index) const override;
75 
76  // ---------------------------------------------------------------------- //
78  // ---------------------------------------------------------------------- //
79 
81  USDIMAGING_API
82  void TrackVariability(UsdPrim const& prim,
83  SdfPath const& cachePath,
84  HdDirtyBits* timeVaryingBits,
86  instancerContext = nullptr) const override;
87 
88 
90  USDIMAGING_API
91  void UpdateForTime(UsdPrim const& prim,
92  SdfPath const& cachePath,
93  UsdTimeCode time,
94  HdDirtyBits requestedBits,
96  instancerContext = nullptr) const override;
97 
98  // ---------------------------------------------------------------------- //
100  // ---------------------------------------------------------------------- //
101 
104  USDIMAGING_API
105  HdDirtyBits ProcessPropertyChange(UsdPrim const& prim,
106  SdfPath const& cachePath,
107  TfToken const& propertyName) override;
108 
109  USDIMAGING_API
110  void MarkDirty(UsdPrim const& prim,
111  SdfPath const& cachePath,
112  HdDirtyBits dirty,
113  UsdImagingIndexProxy* index) override;
114 
115  // ---------------------------------------------------------------------- //
117  // ---------------------------------------------------------------------- //
118 
119  USDIMAGING_API
120  VtValue Get(UsdPrim const& prim,
121  SdfPath const& cachePath,
122  TfToken const& key,
123  UsdTimeCode time,
124  VtIntArray *outIndices) const override;
125 
126 protected:
127  USDIMAGING_API
128  void _RemovePrim(SdfPath const& cachePath,
129  UsdImagingIndexProxy* index) override;
130 
131 };
132 
133 
134 PXR_NAMESPACE_CLOSE_SCOPE
135 
136 #endif // PXR_USD_IMAGING_USD_IMAGING_RENDER_VAR_ADAPTER_H
USDIMAGING_API void UpdateForTime(UsdPrim const &prim, SdfPath const &cachePath, UsdTimeCode time, HdDirtyBits requestedBits, UsdImagingInstancerContext const *instancerContext=nullptr) const override
Thread Safe.
USDIMAGING_API SdfPath Populate(UsdPrim const &prim, UsdImagingIndexProxy *index, UsdImagingInstancerContext const *instancerContext=nullptr) override
Called to populate the RenderIndex for this UsdPrim.
This proxy class exposes a subset of the private Delegate API to PrimAdapters.
Definition: indexProxy.h:30
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:80
USDIMAGING_API VtValue Get(UsdPrim const &prim, SdfPath const &cachePath, TfToken const &key, UsdTimeCode time, VtIntArray *outIndices) const override
Gets the value of the parameter named key for the given prim (which has the given cache path) and giv...
USDIMAGING_API void TrackVariability(UsdPrim const &prim, SdfPath const &cachePath, HdDirtyBits *timeVaryingBits, UsdImagingInstancerContext const *instancerContext=nullptr) const override
Thread Safe.
Represent a time value, which may be either numeric, holding a double value, or a sentinel value UsdT...
Definition: timeCode.h:73
This class is used as a context object with global stage information, that gets passed down to dataso...
Base class for all PrimAdapters.
Definition: primAdapter.h:52
Represents a set of data source locators closed under descendancy.
UsdPrim is the sole persistent scenegraph object on a UsdStage, and is the embodiment of a "Prim" as ...
Definition: prim.h:116
Adapter support for UsdRenderVar for only the scene index (2.0) API.
std::vector< TfToken > TfTokenVector
Convenience types.
Definition: token.h:489
A path value used to locate objects in layers or scenegraphs.
Definition: path.h:280
USDIMAGING_API bool IsSupported(UsdImagingIndexProxy const *index) const override
Returns true if the adapter can be populated into the target index.
Object used by instancer prim adapters to pass along context about the instancer and instance prim to...
USDIMAGING_API HdDirtyBits ProcessPropertyChange(UsdPrim const &prim, SdfPath const &cachePath, TfToken const &propertyName) override
Returns a bit mask of attributes to be udpated, or HdChangeTracker::AllDirty if the entire prim must ...
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:89