CFx SDK Documentation
2023 SP0
SDK
CFx
dd_inc
Tr
TrVisStaticSharedPtr.h
Go to the documentation of this file.
1
// Copyright (C) 2002-2017, Open Design Alliance (the "Alliance").
3
// All rights reserved.
4
//
5
// This software and its documentation and related materials are owned by
6
// the Alliance. The software may only be incorporated into application
7
// programs owned by members of the Alliance, subject to a signed
8
// Membership Agreement and Supplemental Software License Agreement with the
9
// Alliance. The structure and organization of this software are the valuable
10
// trade secrets of the Alliance and its suppliers. The software is also
11
// protected by copyright law and international treaty provisions. Application
12
// programs incorporating this software must include the following statement
13
// with their copyright notices:
14
//
15
// This application incorporates Teigha(R) software pursuant to a license
16
// agreement with Open Design Alliance.
17
// Teigha(R) Copyright (C) 2002-2017 by Open Design Alliance.
18
// All rights reserved.
19
//
20
// By use of this software, its documentation or related materials, you
21
// acknowledge and accept the above terms.
23
// GLES2 device static shared pointer
24
25
#ifndef ODTRVISSTATICSHAREDPTR
26
#define ODTRVISSTATICSHAREDPTR
27
28
#include "
TD_PackPush.h
"
29
30
#include "
SharedPtr.h
"
31
35
template
<
class
T>
36
class
OdStaticSharedPtr
:
public
OdSharedPtr
<T>
37
{
38
protected
:
39
int
m_realRefs
;
40
protected
:
41
T **
accessObjPtr
() {
return
reinterpret_cast<
T**
>
(
this
); }
42
int
**
accessRefPtr
() {
return
reinterpret_cast<
int
**
>
(
this
) + 1; }
43
public
:
44
OdStaticSharedPtr
(T *pRef)
45
:
OdSharedPtr
<T>(),
m_realRefs
(2)
46
{
47
*
accessObjPtr
() = pRef;
48
*
accessRefPtr
() = &
m_realRefs
;
49
}
50
OdStaticSharedPtr
&
operator=
(
const
OdStaticSharedPtr
&other)
51
{
52
**
this
= *other;
53
return
*
this
;
54
}
55
private
:
56
T* detach() {
return
NULL
; }
57
OdStaticSharedPtr
(
const
OdStaticSharedPtr
&other) {}
58
};
59
63
template
<
class
T>
64
class
OdStaticDefSharedPtr
:
public
OdStaticSharedPtr
<T>
65
{
66
protected
:
67
T
m_realObj
;
68
public
:
69
OdStaticDefSharedPtr
()
70
:
OdStaticSharedPtr
<T>(&
m_realObj
)
71
{
72
}
73
OdStaticDefSharedPtr
(
const
OdStaticDefSharedPtr
&other)
74
:
OdStaticSharedPtr
<T>(&
m_realObj
)
75
{
76
m_realObj
= *other;
77
}
78
};
79
80
#include "
TD_PackPop.h
"
81
82
#endif
// ODTRVISSTATICSHAREDPTR
NULL
#define NULL
Definition:
GsProperties.h:177
SharedPtr.h
TD_PackPop.h
TD_PackPush.h
OdSharedPtr
Definition:
SharedPtr.h:49
OdStaticDefSharedPtr
Definition:
TrVisStaticSharedPtr.h:65
OdStaticDefSharedPtr::OdStaticDefSharedPtr
OdStaticDefSharedPtr(const OdStaticDefSharedPtr &other)
Definition:
TrVisStaticSharedPtr.h:73
OdStaticDefSharedPtr::OdStaticDefSharedPtr
OdStaticDefSharedPtr()
Definition:
TrVisStaticSharedPtr.h:69
OdStaticDefSharedPtr::m_realObj
T m_realObj
Definition:
TrVisStaticSharedPtr.h:67
OdStaticSharedPtr
Definition:
TrVisStaticSharedPtr.h:37
OdStaticSharedPtr::OdStaticSharedPtr
OdStaticSharedPtr(T *pRef)
Definition:
TrVisStaticSharedPtr.h:44
OdStaticSharedPtr::m_realRefs
int m_realRefs
Definition:
TrVisStaticSharedPtr.h:39
OdStaticSharedPtr::accessRefPtr
int ** accessRefPtr()
Definition:
TrVisStaticSharedPtr.h:42
OdStaticSharedPtr::accessObjPtr
T ** accessObjPtr()
Definition:
TrVisStaticSharedPtr.h:41
OdStaticSharedPtr::operator=
OdStaticSharedPtr & operator=(const OdStaticSharedPtr &other)
Definition:
TrVisStaticSharedPtr.h:50
Generated on Thu Feb 24 2022 15:09:56