24#ifndef PXR_IMAGING_HD_PLUGIN_RENDER_DELEGATE_UNIQUE_HANDLE_H
25#define PXR_IMAGING_HD_PLUGIN_RENDER_DELEGATE_UNIQUE_HANDLE_H
28#include "pxr/imaging/hd/api.h"
29#include "pxr/imaging/hd/rendererPluginHandle.h"
33PXR_NAMESPACE_OPEN_SCOPE
35class HdRenderDelegate;
52 : _delegate(
nullptr) { }
68 const std::nullptr_t &);
71 HdRenderDelegate *
Get()
const {
return _delegate; }
73 HdRenderDelegate *operator->()
const {
return _delegate; }
74 HdRenderDelegate &operator*()
const {
return *_delegate; }
77 explicit operator bool()
const {
return _delegate; }
88 : _plugin(plugin), _delegate(delegate) { }
91 HdRenderDelegate *_delegate;
94PXR_NAMESPACE_CLOSE_SCOPE
A (movable) handle for a render delegate that was created using a a plugin.
HD_API TfToken GetPluginId() const
Get the id of the plugin used to create render delegate.
HdRenderDelegate * Get() const
Get render delegate.
HD_API HdPluginRenderDelegateUniqueHandle(HdPluginRenderDelegateUniqueHandle &&)
Transfer ownership.
HD_API HdPluginRenderDelegateUniqueHandle & operator=(HdPluginRenderDelegateUniqueHandle &&)
Transfer ownership.
A handle for HdRendererPlugin also storing the plugin id.
This class defines a renderer plugin interface for Hydra.
Token for efficient comparison, assignment, and hashing of known strings.