HDK
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
RE_OGLState.h
Go to the documentation of this file.
1
/*
2
* PROPRIETARY INFORMATION. This software is proprietary to
3
* Side Effects Software Inc., and is not to be reproduced,
4
* transmitted, or disclosed in any way without written permission.
5
*
6
* NAME: RE_OGLState.h ( UI Library, C++)
7
*
8
* COMMENTS:
9
* The stored GL state for RE_OGLRender.
10
*
11
*/
12
#ifndef RE_OGLState_h
13
#define RE_OGLState_h
14
15
#include "
RE_API.h
"
16
#include "
RE_Types.h
"
17
#include "
RE_TextureTypes.h
"
18
#include "
RE_Uniform.h
"
19
20
#include <
UT/UT_Rect.h
>
21
#include <
UT/UT_Array.h
>
22
#include <
UT/UT_BitArray.h
>
23
#include <
UT/UT_IntArray.h
>
24
25
class
RE_OGLFramebuffer
;
26
class
RE_OGLTexture
;
27
class
RE_Render
;
28
class
RE_Shader
;
29
30
class
RE_API
RE_OGLState
31
{
32
public
:
33
RE_OGLState
();
34
35
// clear all cached information without altering actual GL state
36
void
invalidate();
37
38
// State data
39
int
_colorBufferWriting
;
40
41
// 0 = disabled, 1 = enabled, 3 = state is unknown
42
unsigned
43
myFillOffsetState : 2,
44
myLineOffsetState : 2,
45
myLineSmoothingState : 2,
46
myPointOffsetState : 2,
47
mySampleMaskState : 2,
48
myScissorState : 2,
49
myStencilState : 2,
50
mySeamlessMapState : 2;
51
52
float
wPosX, wPosY,
wPosZ
;
53
float
rx, ry,
rz
;
54
55
UT_DimRect
scissorState
;
56
UT_DimRect
viewportState
;
57
58
int
viewportStateValid
;
59
int
scissorStateValid
;
60
61
float
myXZoom,
myYZoom
;
62
63
float
zNear
,
zFar
;
64
float
_offset_variable
;
65
float
_offset_constant
;
66
67
UT_Int32Array
mySampleMask
;
68
UT_BitArray
mySampleMaskValid
;
69
70
unsigned
myColorMask
;
71
72
int
_s_clear_value
;
73
int
_s_write_mask
;
74
RE_SFunction
_s_function
;
75
int
_s_function_ref
;
76
int
_s_function_mask
;
77
RE_SOperation
_s_operation_sfail
;
78
RE_SOperation
_s_operation_dpfail
;
79
RE_SOperation
_s_operation_dppass
;
80
81
// Stacks
82
RE_OGLFramebuffer
*myDrawFBOStack[
RE_FRAMEBUFFER_STACK_SIZE
];
83
int
myDrawFBOStackIndex
;
84
RE_OGLFramebuffer
*myReadFBOStack[
RE_FRAMEBUFFER_STACK_SIZE
];
85
int
myReadFBOStackIndex
;
86
87
float
lineWidthStack[
PATTERN_STACK_SIZE
];
88
int
lineWidthIndex
;
89
90
struct
91
{
92
float
pointSize
;
93
bool
programPointSize
;
94
} pointSizeStack[
PATTERN_STACK_SIZE
];
95
int
pointSizeIndex
;
96
97
struct
98
{
99
unsigned
char
read:4,
100
write:4;
101
} myAlignmentStack[
RE_ALIGN_STACK_SIZE
];
102
int
myAlignmentStackIndex
;
103
104
// These are the state caches for our mulitple texture units:
105
struct
re_TexStackItem
106
{
107
int
myActiveUnit
;
108
int
myRestoreUnit
;
109
uint8
myMinTexAdjust
;
110
uint8
myMaxTexAdjust
;
111
112
RE_TextureID
myUnits[
RE_MAX_TEXTURES
];
113
114
} myTexStack[
RE_MAX_TEXTURE_STATE_STACK
];
115
116
int
myTexStackIndex
;
117
118
// smooth lines stack
119
int
myBlendSmoothLevel
;
120
re_BlendSmoothState
myBlendSmoothStack[
RE_SMOOTH_STACK_SIZE
];
121
122
// stenciling stack
123
int
myStencilLevel
;
124
re_StencilState
myStencilStack[
RE_STENCIL_STACK_SIZE
];
125
126
// shader stack
127
int
myShaderLevel
;
128
RE_Shader
*myShaderStack[
RE_SHADER_STACK_SIZE
];
129
130
// depth stack
131
int
myDepthLevel
;
132
re_DepthState
myDepthStack[
RE_DEPTH_STACK_SIZE
];
133
134
// backface/winding stack
135
UT_IntArray
myBackfaceWinding
;
136
137
unsigned
myShaderStackValid : 1,
138
myFBOStackValid : 1;
139
140
UT_IntArray
myBoundUniformBlocks
;
141
};
142
143
#endif
re_BlendSmoothState
Definition:
RE_Types.h:750
RE_OGLState::pointSize
float pointSize
Definition:
RE_OGLState.h:92
UT_BitArray
Definition:
UT_BitArray.h:29
RE_STENCIL_STACK_SIZE
#define RE_STENCIL_STACK_SIZE
Definition:
RE_Types.h:931
RE_OGLState::myBoundUniformBlocks
UT_IntArray myBoundUniformBlocks
Definition:
RE_OGLState.h:140
RE_OGLState::re_TexStackItem::myMinTexAdjust
uint8 myMinTexAdjust
Definition:
RE_OGLState.h:109
RE_OGLState::zNear
float zNear
Definition:
RE_OGLState.h:63
RE_API.h
UT_IntArray.h
RE_API
#define RE_API
Definition:
RE_API.h:10
RE_OGLState::re_TexStackItem::myRestoreUnit
int myRestoreUnit
Definition:
RE_OGLState.h:108
RE_OGLState::viewportStateValid
int viewportStateValid
Definition:
RE_OGLState.h:58
RE_TextureTypes.h
UT_Rect.h
RE_OGLState::lineWidthIndex
int lineWidthIndex
Definition:
RE_OGLState.h:88
RE_OGLFramebuffer
Definition:
RE_OGLFramebuffer.h:76
UT_Array.h
RE_OGLState::myDrawFBOStackIndex
int myDrawFBOStackIndex
Definition:
RE_OGLState.h:83
UT_ValArray< int32 >
RE_OGLState::scissorState
UT_DimRect scissorState
Definition:
RE_OGLState.h:55
RE_OGLState::viewportState
UT_DimRect viewportState
Definition:
RE_OGLState.h:56
RE_OGLState::myReadFBOStackIndex
int myReadFBOStackIndex
Definition:
RE_OGLState.h:85
RE_DEPTH_STACK_SIZE
#define RE_DEPTH_STACK_SIZE
Definition:
RE_Types.h:936
RE_OGLState::scissorStateValid
int scissorStateValid
Definition:
RE_OGLState.h:59
RE_OGLState::programPointSize
bool programPointSize
Definition:
RE_OGLState.h:93
RE_OGLState::_s_function
RE_SFunction _s_function
Definition:
RE_OGLState.h:74
RE_OGLState::re_TexStackItem::myMaxTexAdjust
uint8 myMaxTexAdjust
Definition:
RE_OGLState.h:110
RE_OGLState::myShaderLevel
int myShaderLevel
Definition:
RE_OGLState.h:127
RE_OGLState::_colorBufferWriting
int _colorBufferWriting
Definition:
RE_OGLState.h:39
uint8
unsigned char uint8
Definition:
SYS_Types.h:36
RE_OGLState::re_TexStackItem
Definition:
RE_OGLState.h:105
RE_OGLState::myYZoom
float myYZoom
Definition:
RE_OGLState.h:61
RE_OGLState::_s_clear_value
int _s_clear_value
Definition:
RE_OGLState.h:72
RE_OGLState::myBackfaceWinding
UT_IntArray myBackfaceWinding
Definition:
RE_OGLState.h:135
UT_BitArray.h
RE_OGLState::mySampleMask
UT_Int32Array mySampleMask
Definition:
RE_OGLState.h:67
re_StencilState
Definition:
RE_Types.h:838
RE_OGLState::_s_operation_dpfail
RE_SOperation _s_operation_dpfail
Definition:
RE_OGLState.h:78
RE_TextureID
unsigned int RE_TextureID
Definition:
RE_TextureTypes.h:14
RE_OGLState::mySampleMaskValid
UT_BitArray mySampleMaskValid
Definition:
RE_OGLState.h:68
RE_Render
Definition:
RE_Render.h:29
RE_OGLState
Definition:
RE_OGLState.h:30
RE_FRAMEBUFFER_STACK_SIZE
#define RE_FRAMEBUFFER_STACK_SIZE
Definition:
RE_Types.h:933
RE_MAX_TEXTURE_STATE_STACK
#define RE_MAX_TEXTURE_STATE_STACK
Definition:
RE_TextureTypes.h:22
RE_Types.h
RE_Uniform.h
zFar
GLdouble GLdouble GLdouble GLdouble GLdouble zFar
Definition:
glad.h:2817
RE_OGLState::re_TexStackItem::myActiveUnit
int myActiveUnit
Definition:
RE_OGLState.h:107
RE_Shader
Definition:
RE_Shader.h:60
RE_OGLState::wPosZ
float wPosZ
Definition:
RE_OGLState.h:52
PATTERN_STACK_SIZE
#define PATTERN_STACK_SIZE
Definition:
RE_Types.h:929
RE_OGLState::myAlignmentStackIndex
int myAlignmentStackIndex
Definition:
RE_OGLState.h:102
RE_OGLTexture
Definition:
RE_OGLTexture.h:34
RE_OGLState::_s_function_ref
int _s_function_ref
Definition:
RE_OGLState.h:75
RE_OGLState::_s_function_mask
int _s_function_mask
Definition:
RE_OGLState.h:76
RE_OGLState::myColorMask
unsigned myColorMask
Definition:
RE_OGLState.h:70
UT_Rect< UT_DimRectImpl >
RE_SOperation
RE_SOperation
Definition:
RE_Types.h:502
RE_OGLState::rz
float rz
Definition:
RE_OGLState.h:53
RE_OGLState::myStencilLevel
int myStencilLevel
Definition:
RE_OGLState.h:123
RE_OGLState::myBlendSmoothLevel
int myBlendSmoothLevel
Definition:
RE_OGLState.h:119
RE_SHADER_STACK_SIZE
#define RE_SHADER_STACK_SIZE
Definition:
RE_Types.h:934
RE_OGLState::_s_write_mask
int _s_write_mask
Definition:
RE_OGLState.h:73
RE_OGLState::_offset_variable
float _offset_variable
Definition:
RE_OGLState.h:64
RE_OGLState::myTexStackIndex
int myTexStackIndex
Definition:
RE_OGLState.h:116
RE_OGLState::_s_operation_sfail
RE_SOperation _s_operation_sfail
Definition:
RE_OGLState.h:77
RE_OGLState::myDepthLevel
int myDepthLevel
Definition:
RE_OGLState.h:131
RE_OGLState::_s_operation_dppass
RE_SOperation _s_operation_dppass
Definition:
RE_OGLState.h:79
RE_SFunction
RE_SFunction
Definition:
RE_Types.h:490
RE_OGLState::_offset_constant
float _offset_constant
Definition:
RE_OGLState.h:65
RE_SMOOTH_STACK_SIZE
#define RE_SMOOTH_STACK_SIZE
Definition:
RE_Types.h:930
RE_MAX_TEXTURES
#define RE_MAX_TEXTURES
Definition:
RE_TextureTypes.h:17
RE_OGLState::pointSizeIndex
int pointSizeIndex
Definition:
RE_OGLState.h:95
re_DepthState
Definition:
RE_Types.h:908
RE_ALIGN_STACK_SIZE
#define RE_ALIGN_STACK_SIZE
Definition:
RE_Types.h:932
RE
RE_OGLState.h
Generated on Wed Aug 27 2025 03:08:15 for HDK by
1.8.6