7#ifndef PXR_IMAGING_HD_RENDERER_PLUGIN_H
8#define PXR_IMAGING_HD_RENDERER_PLUGIN_H
11#include "pxr/imaging/hd/api.h"
12#include "pxr/imaging/hf/pluginBase.h"
13#include "pxr/imaging/hd/renderDelegate.h"
15PXR_NAMESPACE_OPEN_SCOPE
55 HdContainerDataSourceHandle
const &rendererCreateArgs,
56 std::string *reasonWhyNot =
nullptr)
const;
97 HdSceneIndexBaseRefPtr
const &sceneIndex,
98 HdContainerDataSourceHandle
const &rendererCreateArgs);
130 std::string *reasonWhyNot =
nullptr)
const = 0;
139 HdRenderSettingsMap
const &settingsMap = {});
160 HdRenderSettingsMap
const& settingsMap);
192 virtual std::unique_ptr<HdRenderer> _CreateRenderer(
193 HdSceneIndexBaseRefPtr
const &sceneIndex,
194 HdContainerDataSourceHandle
const &rendererCreateArgs);
198 std::unique_ptr<HdRenderer> _CreateRendererFromRenderDelegate(
199 HdSceneIndexBaseRefPtr
const &sceneIndex,
200 HdContainerDataSourceHandle
const &rendererCreateArgs);
210PXR_NAMESPACE_CLOSE_SCOPE
A (movable) handle for a render delegate that was created using a a plugin.
A handle for a renderer that was created by a renderer plugin.
This class defines a renderer plugin interface for Hydra.
HD_API TfToken GetPluginId() const
Look-up plugin id in plugin registry.
virtual void DeleteRenderDelegate(HdRenderDelegate *renderDelegate)=0
Clients should use CreateDelegate since this method will eventually become protected.
HD_API std::string GetDisplayName() const
Look-up display name in plugin registry.
HD_API HdPluginRendererUniqueHandle CreateRenderer(HdSceneIndexBaseRefPtr const &sceneIndex, HdContainerDataSourceHandle const &rendererCreateArgs)
Create renderer through the plugin and wrap it in a handle that keeps this plugin alive until the ren...
virtual HD_API HdContainerDataSourceHandle GetSceneIndexInputArgs() const
Arguments that an application should pass as input arguments to scene indices so that they can be con...
HD_API HdPluginRenderDelegateUniqueHandle CreateDelegate(HdRenderSettingsMap const &settingsMap={})
Create a render delegate through the plugin and wrap it in a handle that keeps this plugin alive unti...
virtual bool IsSupported(HdRendererCreateArgs const &rendererCreateArgs, std::string *reasonWhyNot=nullptr) const =0
Returns true if this renderer plugin is supported in the running process and false if not.
virtual HD_API bool IsSupported(bool gpuEnabled=true) const
virtual HD_API bool IsSupported(HdContainerDataSourceHandle const &rendererCreateArgs, std::string *reasonWhyNot=nullptr) const
Returns true if this renderer plugin is supported in the running process and false if not.
virtual HD_API HdRenderDelegate * CreateRenderDelegate(HdRenderSettingsMap const &settingsMap)
Clients should use CreateDelegate since this method will eventually become protected.
virtual HdRenderDelegate * CreateRenderDelegate()=0
Clients should use CreateDelegate since this method will eventually become protected,...
Abstract interface to scene data.
Base class for all hydra plugin classes.
Token for efficient comparison, assignment, and hashing of known strings.
#define TF_DECLARE_REF_PTRS(type)
Define standard ref pointer types.
HdRendererCreateArgs contains members indicating the resources available when creating a renderer plu...