7#ifndef PXR_IMAGING_HD_PLUGIN_RENDER_DELEGATE_UNIQUE_HANDLE_H
8#define PXR_IMAGING_HD_PLUGIN_RENDER_DELEGATE_UNIQUE_HANDLE_H
11#include "pxr/imaging/hd/api.h"
12#include "pxr/imaging/hd/rendererPluginHandle.h"
16PXR_NAMESPACE_OPEN_SCOPE
18class HdRenderDelegate;
35 : _delegate(
nullptr) { }
51 const std::nullptr_t &);
54 HdRenderDelegate *
Get()
const {
return _delegate; }
56 HdRenderDelegate *operator->()
const {
return _delegate; }
57 HdRenderDelegate &operator*()
const {
return *_delegate; }
60 explicit operator bool()
const {
return _delegate; }
71 : _plugin(plugin), _delegate(delegate) { }
74 HdRenderDelegate *_delegate;
77PXR_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.