![]() |
|
A registry for renderer- and application-specific scene indices. More...
#include <sceneIndexPluginRegistry.h>
Inheritance diagram for HdSceneIndexPluginRegistry:Public Types | |
| enum | InsertionOrder { InsertionOrderAtStart , InsertionOrderAtEnd } |
| using | InsertionPhase = int |
| using | SceneIndexAppendCallback = std::function< HdSceneIndexBaseRefPtr(const std::string &renderInstanceId, const HdSceneIndexBaseRefPtr &inputScene, const HdContainerDataSourceHandle &inputArgs)> |
Public Member Functions | |
| HD_API HdSceneIndexBaseRefPtr | AppendSceneIndex (const TfToken &sceneIndexPluginId, const HdSceneIndexBaseRefPtr &inputScene, const HdContainerDataSourceHandle &inputArgs, const std::string &renderInstanceId=std::string()) |
| Given a specific scene index plug-in id, give the plug-in a chance to add scene indices to the end of the chain. | |
| HD_API HdSceneIndexBaseRefPtr | AppendSceneIndicesForRenderer (const std::string &rendererDisplayName, const HdSceneIndexBaseRefPtr &inputScene, const std::string &renderInstanceId=std::string(), const std::string &appName=std::string()) |
| Append scene indices generated by plug-ins registered (via RegisterSceneIndexForRenderer) for this renderer. | |
| HD_API void | RegisterSceneIndexForRenderer (const std::string &rendererDisplayName, const TfToken &sceneIndexPluginId, const HdContainerDataSourceHandle &inputArgs, InsertionPhase insertionPhase, InsertionOrder insertionOrder) |
Register a scene index to be instantiated for a specified renderer (or all renderers if rendererDisplayName is empty). | |
| HD_API void | RegisterSceneIndexForRenderer (const std::string &rendererDisplayName, SceneIndexAppendCallback callback, const HdContainerDataSourceHandle &inputArgs, InsertionPhase insertionPhase, InsertionOrder insertionOrder) |
Register a scene index to be instantiated via a callback for a specified renderer (or all renderers if rendererDisplayName is empty). | |
Public Member Functions inherited from HfPluginRegistry | |
| HF_API void | GetPluginDescs (HfPluginDescVector *plugins) |
| Returns an ordered list of all registered plugins. | |
| HF_API bool | GetPluginDesc (const TfToken &pluginId, HfPluginDesc *desc) |
| Returns the description for the given plugin id. | |
| HF_API void | AddPluginReference (HfPluginBase *plugin) |
| Increment the reference count on an existing plugin. | |
| HF_API void | ReleasePlugin (HfPluginBase *plugin) |
| Decrement the reference count on the plugin. | |
| HF_API bool | IsRegisteredPlugin (const TfToken &pluginId) |
| Returns true if a plugin has been registered for the given id. | |
| HF_API TfToken | GetPluginId (const HfPluginBase *plugin) const |
Static Public Member Functions | |
| static HD_API HdSceneIndexPluginRegistry & | GetInstance () |
Returns the singleton registry for HdSceneIndexPlugin. | |
| template<typename T , typename... Bases> | |
| static void | Define () |
| Entry point for defining an HdSceneIndexPlugin plugin. | |
Protected Member Functions | |
| void | _CollectAdditionalMetadata (const PlugRegistry &plugRegistry, const TfType &pluginType) override |
| Gives subclasses an opportunity to inspect plugInfo-based metadata at the time of discovery. | |
Protected Member Functions inherited from HfPluginRegistry | |
| HF_API | HfPluginRegistry (const TfType &pluginBaseType) |
| Constructs a Plugin Registry. | |
| HF_API HfPluginBase * | GetPlugin (const TfToken &pluginId) |
| Returns the plugin from the given pluginId. | |
| virtual HF_API void | _CollectAdditionalMetadata (const PlugRegistry &plugRegistry, const TfType &pluginType) |
| Gives subclasses an opportunity to inspect plugInfo-based metadata at the time of discovery. | |
Friends | |
| class | TfSingleton< HdSceneIndexPluginRegistry > |
Additional Inherited Members | |
Static Protected Member Functions inherited from HfPluginRegistry | |
| template<typename T , typename PluginBaseType , typename... Bases> | |
| static void | Define () |
| Entry point for registering a types implementation. | |
A registry for renderer- and application-specific scene indices.
Definition at line 33 of file sceneIndexPluginRegistry.h.
| using InsertionPhase = int |
Definition at line 88 of file sceneIndexPluginRegistry.h.
| using SceneIndexAppendCallback = std::function< HdSceneIndexBaseRefPtr( const std::string &renderInstanceId, const HdSceneIndexBaseRefPtr &inputScene, const HdContainerDataSourceHandle &inputArgs)> |
Definition at line 139 of file sceneIndexPluginRegistry.h.
| enum InsertionOrder |
Definition at line 82 of file sceneIndexPluginRegistry.h.
|
overrideprotectedvirtual |
Gives subclasses an opportunity to inspect plugInfo-based metadata at the time of discovery.
Reimplemented from HfPluginRegistry.
| HD_API HdSceneIndexBaseRefPtr AppendSceneIndex | ( | const TfToken & | sceneIndexPluginId, |
| const HdSceneIndexBaseRefPtr & | inputScene, | ||
| const HdContainerDataSourceHandle & | inputArgs, | ||
| const std::string & | renderInstanceId = std::string() |
||
| ) |
Given a specific scene index plug-in id, give the plug-in a chance to add scene indices to the end of the chain.
Return value is the last scene index – or inputScene if the plug-in chooses not to act. Input arguments may be nullptr if not relevant to this plug-in.
| HD_API HdSceneIndexBaseRefPtr AppendSceneIndicesForRenderer | ( | const std::string & | rendererDisplayName, |
| const HdSceneIndexBaseRefPtr & | inputScene, | ||
| const std::string & | renderInstanceId = std::string(), |
||
| const std::string & | appName = std::string() |
||
| ) |
Append scene indices generated by plug-ins registered (via RegisterSceneIndexForRenderer) for this renderer.
Return value is the last scene index – or inputScene if no plugins are registered or taking action. This also includes plug-ins registered for all renderers (via an empty rendererDisplayName) to be added in advance of any registered for the specified renderer.
Plugin libraries will only be loaded if they declare they are enabled for the provided app name. By default, plugins are auto-loaded for all apps, but plugin authors can put an preloadInApps array in their plugInfo to narrow down the set of applications they are auto-loaded for. Providing an empty app name here (the default) means this will not auto-load any application-specific plugin libraries.
|
static |
Entry point for defining an HdSceneIndexPlugin plugin.
Definition at line 252 of file sceneIndexPluginRegistry.h.
|
static |
Returns the singleton registry for HdSceneIndexPlugin.
| HD_API void RegisterSceneIndexForRenderer | ( | const std::string & | rendererDisplayName, |
| const TfToken & | sceneIndexPluginId, | ||
| const HdContainerDataSourceHandle & | inputArgs, | ||
| InsertionPhase | insertionPhase, | ||
| InsertionOrder | insertionOrder | ||
| ) |
Register a scene index to be instantiated for a specified renderer (or all renderers if rendererDisplayName is empty).
sceneIndexPluginId identifies the associated scene index plugin. This should match the name used in the plugInfo.json entry and is typically the class name (i.e. CPP type name). inputArgs is a container data source of arguments that is provided as a parameter to the scene index plugin's _AppendSceneIndex method. insertionPhase is a broad ordering value with lower values indicating earlier instantiation (possibly given render plugin-specific meaning via enum values). insertionOrder indicates whether this entry should go at the start or end of the specified phase.
sceneIndexPluginId to have multiple instances of the same set of scene indices inserted in _AppendSceneIndex at different points in the scene index graph. | HD_API void RegisterSceneIndexForRenderer | ( | const std::string & | rendererDisplayName, |
| SceneIndexAppendCallback | callback, | ||
| const HdContainerDataSourceHandle & | inputArgs, | ||
| InsertionPhase | insertionPhase, | ||
| InsertionOrder | insertionOrder | ||
| ) |
Register a scene index to be instantiated via a callback for a specified renderer (or all renderers if rendererDisplayName is empty).
This is most useful for application-specific behavior which wants to append and manage scene index instances associated with a specific render. To aid in that association, the callback is provided a renderInstanceId value typically defined by the application itself.
inputArgs is a container data source of arguments that is provided as a parameter to the scene index plugin's _AppendSceneIndex method. insertionPhase is a broad ordering value with lower values indicating earlier instantiation (possibly given render plugin-specific meaning via enum values). insertionOrder indicates whether this entry should go at the start or end of the specified phase.
|
friend |
Definition at line 188 of file sceneIndexPluginRegistry.h.