handle.h
1
//
2
// Copyright 2020 Pixar
3
//
4
// Licensed under the Apache License, Version 2.0 (the "Apache License")
5
// with the following modification; you may not use this file except in
6
// compliance with the Apache License and the following modification to it:
7
// Section 6. Trademarks. is deleted and replaced with:
8
//
9
// 6. Trademarks. This License does not grant permission to use the trade
10
// names, trademarks, service marks, or product names of the Licensor
11
// and its affiliates, except as required to comply with Section 4(c) of
12
// the License and to reproduce the content of the NOTICE file.
13
//
14
// You may obtain a copy of the Apache License at
15
//
16
// http://www.apache.org/licenses/LICENSE-2.0
17
//
18
// Unless required by applicable law or agreed to in writing, software
19
// distributed under the Apache License with the above modification is
20
// distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21
// KIND, either express or implied. See the Apache License for the specific
22
// language governing permissions and limitations under the Apache License.
23
//
24
#ifndef PXR_IMAGING_HGI_HANDLE_H
25
#define PXR_IMAGING_HGI_HANDLE_H
26
27
#include "
pxr/pxr.h
"
28
#include "pxr/imaging/hgi/api.h"
29
30
#include <stdint.h>
31
32
PXR_NAMESPACE_OPEN_SCOPE
33
48
template
<
class
T>
49
class
HgiHandle
50
{
51
public
:
52
HgiHandle
() : _ptr(
nullptr
), _id(0) {}
53
HgiHandle
(T* obj, uint64_t
id
) : _ptr(obj), _id(
id
) {}
54
55
T*
56
Get()
const
{
57
return
_ptr;
58
}
59
60
// Note this only checks if a ptr is set, it does not offer weak_ptr safety.
61
explicit
operator
bool()
const
{
return
_ptr!=
nullptr
;}
62
63
// Pointer access operator
64
T* operator ->()
const
{
return
_ptr;}
65
66
bool
operator==(
const
HgiHandle
& other)
const
{
67
return
_id == other._id;
68
}
69
70
bool
operator!=(
const
HgiHandle
& other)
const
{
71
return
!(*
this
== other);
72
}
73
74
private
:
75
T* _ptr;
76
uint64_t _id;
77
};
78
79
80
PXR_NAMESPACE_CLOSE_SCOPE
81
82
#endif
pxr.h
HgiHandle
Handle that contains a hgi object and unique id.
Definition:
handle.h:49
pxr
imaging
hgi
handle.h
Generated on Mon Jan 23 2023 19:10:40 for Universal Scene Description by
1.8.15