7#ifndef PXR_IMAGING_HD_DATA_SOURCE_LEGACY_PRIM_H
8#define PXR_IMAGING_HD_DATA_SOURCE_LEGACY_PRIM_H
10#include "pxr/imaging/hd/api.h"
11#include "pxr/imaging/hd/dataSource.h"
12#include "pxr/imaging/hd/dataSourceLocator.h"
14#include "pxr/usd/sdf/path.h"
16#include "pxr/base/tf/spinMutex.h"
24PXR_NAMESPACE_OPEN_SCOPE
28#define HD_LEGACY_PRIMTYPE_TOKENS \
34 HD_LEGACY_PRIMTYPE_TOKENS);
39#define HD_LEGACY_FLAG_TOKENS \
43 HD_LEGACY_FLAG_TOKENS);
57 HdDataSourceBaseHandle
Get(
const TfToken &name)
override;
73 HdDataSourceBaseHandle _GetPrimvarsDataSource();
74 HdDataSourceBaseHandle _GetExtComputationPrimvarsDataSource();
75 HdDataSourceBaseHandle _GetMaterialBindingsDataSource();
76 HdDataSourceBaseHandle _GetXformDataSource();
77 HdDataSourceBaseHandle _GetMaterialDataSource();
78 HdDataSourceBaseHandle _GetIntegratorDataSource();
79 HdDataSourceBaseHandle _GetSampleFilterDataSource();
80 HdDataSourceBaseHandle _GetDisplayFilterDataSource();
81 HdDataSourceBaseHandle _GetDisplayStyleDataSource();
82 HdDataSourceBaseHandle _GetInstancedByDataSource();
83 HdDataSourceBaseHandle _GetInstancerTopologyDataSource();
84 HdDataSourceBaseHandle _GetVolumeFieldBindingDataSource();
85 HdDataSourceBaseHandle _GetCoordSysBindingDataSource();
86 HdDataSourceBaseHandle _GetVisibilityDataSource();
87 HdDataSourceBaseHandle _GetPurposeDataSource();
88 HdDataSourceBaseHandle _GetExtentDataSource();
89 HdDataSourceBaseHandle _GetCategoriesDataSource();
90 HdDataSourceBaseHandle _GetInstanceCategoriesDataSource();
93 bool _IsInstanceable();
101 std::atomic_bool _primvarsBuilt;
103 bool _extComputationPrimvarsBuilt : 1;
105 HdContainerDataSourceAtomicHandle _primvars;
106 HdContainerDataSourceHandle _extComputationPrimvars;
111 HdContainerDataSourceAtomicHandle _instancerTopology;
116bool HdLegacyPrimTypeIsVolumeField(
TfToken const &primType);
118PXR_NAMESPACE_CLOSE_SCOPE
A datasource representing structured (named, hierarchical) data, for example a geometric primitive or...
This is an HdContainerDataSource which represents a prim-level data source for adapting HdSceneDelega...
void PrimDirtied(const HdDataSourceLocatorSet &locators)
This clears internal cached values and is currently called only by HdLegacyPrimSceneIndex in response...
TfTokenVector GetNames() override
Returns the list of names for which Get(...) is expected to return a non-null value.
static const HdDataSourceLocatorSet & GetCachedLocators()
Return which locators PrimDirtied will respond to...
HdDataSourceBaseHandle Get(const TfToken &name) override
Returns the child datasource of the given name.
Represents a set of data source locators closed under descendancy.
Adapter class providing data exchange with the client scene graph.
A path value used to locate objects in layers or scenegraphs.
This class implements a simple spin lock that emphasizes throughput when there is little to no conten...
Token for efficient comparison, assignment, and hashing of known strings.
This file defines some macros that are useful for declaring and using static TfTokens.
#define TF_DECLARE_PUBLIC_TOKENS(...)
Macro to define public tokens.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
std::vector< TfToken > TfTokenVector
Convenience types.