Loading...
Searching...
No Matches
pluginRendererUniqueHandle.h
1//
2// Copyright 2025 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
7#ifndef PXR_IMAGING_HD_PLUGIN_RENDERER_UNIQUE_HANDLE_H
8#define PXR_IMAGING_HD_PLUGIN_RENDERER_UNIQUE_HANDLE_H
9
10#include "pxr/pxr.h"
11#include "pxr/imaging/hd/api.h"
12#include "pxr/imaging/hd/rendererPluginHandle.h"
13
14#include <cstddef>
15
16PXR_NAMESPACE_OPEN_SCOPE
17
18class HdRenderer;
19
29{
30public:
31 HD_API
33
34 HD_API
36
37 HD_API
38 HdPluginRendererUniqueHandle(const std::nullptr_t &);
39
40 HD_API
42
43 HD_API
45
46 HD_API
47 HdPluginRendererUniqueHandle &operator=(const std::nullptr_t &);
48
49 HdRenderer *Get() const { return _renderer.get(); }
50
51 HdRenderer *operator->() const { return _renderer.get(); }
52 HdRenderer &operator*() const { return *_renderer; }
53
55 explicit operator bool() const { return bool(_renderer); }
56
58 HD_API
60
61private:
62 friend class HdRendererPlugin;
63
66 std::unique_ptr<HdRenderer> renderer);
67
69 std::unique_ptr<HdRenderer> _renderer;
70};
71
72PXR_NAMESPACE_CLOSE_SCOPE
73
74#endif
A handle for a renderer that was created by a renderer plugin.
HD_API TfToken GetPluginId() const
Id of the plugin used to create the renderer.
A Hydra renderer.
Definition: renderer.h:28
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.
Definition: token.h:71