63 #ifndef vtkOpenGLState_h
64 #define vtkOpenGLState_h
67 #include "vtkRenderingOpenGL2Module.h"
90 void vtkglClearColor(
float red,
float green,
float blue,
float alpha);
91 void vtkglClearDepth(
double depth);
92 void vtkglDepthFunc(
unsigned int val);
93 void vtkglDepthMask(
unsigned char flag);
94 void vtkglColorMask(
unsigned char r,
unsigned char g,
unsigned char b,
unsigned char a);
95 void vtkglViewport(
int x,
int y,
int width,
int height);
96 void vtkglScissor(
int x,
int y,
int width,
int height);
97 void vtkglEnable(
unsigned int cap);
98 void vtkglDisable(
unsigned int cap);
101 this->vtkglBlendFuncSeparate(sfactor, dfactor, sfactor, dfactor);
103 void vtkglBlendFuncSeparate(
unsigned int sfactorRGB,
unsigned int dfactorRGB,
104 unsigned int sfactorAlpha,
unsigned int dfactorAlpha);
105 void vtkglBlendEquation(
unsigned int val);
106 void vtkglBlendEquationSeparate(
unsigned int col,
unsigned int alpha);
107 void vtkglCullFace(
unsigned int val);
108 void vtkglActiveTexture(
unsigned int);
110 void vtkglBindFramebuffer(
unsigned int target,
unsigned int fb);
111 void vtkglDrawBuffer(
unsigned int);
112 void vtkglDrawBuffers(
unsigned int n,
unsigned int*);
113 void vtkglReadBuffer(
unsigned int);
115 void vtkglPointSize(
float);
116 void vtkglLineWidth(
float);
117 void vtkglStencilMaskSeparate(
unsigned int face,
unsigned int mask);
118 void vtkglStencilMask(
unsigned int mask);
119 void vtkglStencilOpSeparate(
120 unsigned int face,
unsigned int sfail,
unsigned int dpfail,
unsigned int dppass);
121 void vtkglStencilOp(
unsigned int sfail,
unsigned int dpfail,
unsigned int dppass);
122 void vtkglStencilFuncSeparate(
unsigned int face,
unsigned int func,
int ref,
unsigned int mask);
123 void vtkglStencilFunc(
unsigned int func,
int ref,
unsigned int mask);
129 void vtkglPixelStorei(
unsigned int,
int);
137 void ResetGLClearColorState();
138 void ResetGLClearDepthState();
139 void ResetGLDepthFuncState();
140 void ResetGLDepthMaskState();
141 void ResetGLColorMaskState();
142 void ResetGLViewportState();
143 void ResetGLScissorState();
144 void ResetGLBlendFuncState();
145 void ResetGLBlendEquationState();
146 void ResetGLCullFaceState();
147 void ResetGLActiveTexture();
153 void vtkglClear(
unsigned int mask);
159 void vtkglGetBooleanv(
unsigned int pname,
unsigned char* params);
160 void vtkglGetIntegerv(
unsigned int pname,
int* params);
161 void vtkglGetDoublev(
unsigned int pname,
double* params);
162 void vtkglGetFloatv(
unsigned int pname,
float* params);
166 void GetBlendFuncState(
int*);
170 bool GetEnumState(
unsigned int name);
173 void SetEnumState(
unsigned int name,
bool value);
178 void ResetEnumState(
unsigned int name);
181 template <
typename T>
187 ((*this->State).*(this->Method))(this->Value);
214 void VerifyNoActiveTextures();
222 this->PushDrawFramebufferBinding();
223 this->PushReadFramebufferBinding();
225 void PushDrawFramebufferBinding();
226 void PushReadFramebufferBinding();
230 this->PopReadFramebufferBinding();
231 this->PopDrawFramebufferBinding();
233 void PopDrawFramebufferBinding();
234 void PopReadFramebufferBinding();
236 void ResetFramebufferBindings();
251 :
public ScopedValue<std::array<unsigned char, 4> >
291 this->State->vtkglGetBooleanv(
name, &val);
292 this->Value = val == 1;
296 this->State->SetEnumState(this->Name, this->Value);
339 int vtktype,
int numComponents,
bool needInteger,
bool needFloat,
bool needSRGB);
347 void ColorMask(std::array<unsigned char, 4> val);
348 void Scissor(std::array<int, 4> val);
349 void Viewport(std::array<int, 4> val);
376 unsigned int DrawBuffers[10];
377 unsigned int GetBinding();
378 unsigned int GetDrawBuffer(
unsigned int);
379 unsigned int GetReadBuffer();