7 #ifndef PXR_IMAGING_HD_SCENE_INDEX_PLUGIN_REGISTRY_H
8 #define PXR_IMAGING_HD_SCENE_INDEX_PLUGIN_REGISTRY_H
19 #define HDSCENEINDEXPLUGINREGISTRY_TOKENS \
20 ((rendererDisplayName, "__rendererDisplayName")) \
42 template<
typename T,
typename... Bases>
52 const TfToken &sceneIndexPluginId,
53 const HdSceneIndexBaseRefPtr &inputScene,
54 const HdContainerDataSourceHandle &inputArgs,
55 const std::string &renderInstanceId=std::string());
74 const std::string &rendererDisplayName,
75 const HdSceneIndexBaseRefPtr &inputScene,
76 const std::string &renderInstanceId=std::string(),
77 const std::string &appName=std::string());
97 const std::string &rendererDisplayName,
98 const TfToken &sceneIndexPluginId,
99 const HdContainerDataSourceHandle &inputArgs,
106 HdSceneIndexBaseRefPtr(
107 const std::string &renderInstanceId,
108 const HdSceneIndexBaseRefPtr &inputScene,
109 const HdContainerDataSourceHandle &inputArgs)>;
130 const std::string &rendererDisplayName,
132 const HdContainerDataSourceHandle &inputArgs,
150 void _LoadPluginsForRenderer(
151 const std::string &rendererDisplayName,
152 const std::string &appName);
158 _Entry(
const TfToken &sceneIndexPluginId,
159 const HdContainerDataSourceHandle &
args)
160 : sceneIndexPluginId(sceneIndexPluginId)
165 const HdContainerDataSourceHandle &
args)
171 HdContainerDataSourceHandle
args;
175 using _EntryList = std::vector<_Entry>;
176 using _PhasesMap = std::map<InsertionPhase, _EntryList>;
177 using _RenderersMap = std::map<std::string, _PhasesMap>;
179 HdSceneIndexBaseRefPtr _AppendForPhases(
180 const HdSceneIndexBaseRefPtr &inputScene,
181 const _PhasesMap &phasesMap,
182 const HdContainerDataSourceHandle &argsUnderlay,
183 const std::string &renderInstanceId);
185 _RenderersMap _sceneIndicesForRenderers;
191 using _PreloadMap = std::map<std::string, TfTokenVector>;
192 _PreloadMap _preloadsForRenderer;
199 using _EnabledAppsMap = std::map<TfToken, std::set<std::string>>;
200 _EnabledAppsMap _preloadAppsForPlugins;
203 template<
typename T,
typename... Bases>
211 #endif // PXR_IMAGING_HD_SCENE_INDEX_PLUGIN_REGISTRY_H
void _CollectAdditionalMetadata(const PlugRegistry &plugRegistry, const TfType &pluginType) override
typedef int(APIENTRYP RE_PFNGLXSWAPINTERVALSGIPROC)(int)
HD_API HdSceneIndexBaseRefPtr AppendSceneIndicesForRenderer(const std::string &rendererDisplayName, const HdSceneIndexBaseRefPtr &inputScene, const std::string &renderInstanceId=std::string(), const std::string &appName=std::string())
std::function< HdSceneIndexBaseRefPtr(const std::string &renderInstanceId, const HdSceneIndexBaseRefPtr &inputScene, const HdContainerDataSourceHandle &inputArgs)> SceneIndexAppendCallback
HD_API HdSceneIndexBaseRefPtr AppendSceneIndex(const TfToken &sceneIndexPluginId, const HdSceneIndexBaseRefPtr &inputScene, const HdContainerDataSourceHandle &inputArgs, const std::string &renderInstanceId=std::string())
static HD_API HdSceneIndexPluginRegistry & GetInstance()
#define HDSCENEINDEXPLUGINREGISTRY_TOKENS
HD_API void RegisterSceneIndexForRenderer(const std::string &rendererDisplayName, const TfToken &sceneIndexPluginId, const HdContainerDataSourceHandle &inputArgs, InsertionPhase insertionPhase, InsertionOrder insertionOrder)
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
TF_DECLARE_PUBLIC_TOKENS(HdSceneIndexPluginRegistryTokens, HD_API, HDSCENEINDEXPLUGINREGISTRY_TOKENS)
**If you just want to fire and args