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);
125 void ResetGLClearColorState();
126 void ResetGLClearDepthState();
127 void ResetGLDepthFuncState();
128 void ResetGLDepthMaskState();
129 void ResetGLColorMaskState();
130 void ResetGLViewportState();
131 void ResetGLScissorState();
132 void ResetGLBlendFuncState();
133 void ResetGLBlendEquationState();
134 void ResetGLCullFaceState();
135 void ResetGLActiveTexture();
141 void vtkglClear(
unsigned int mask);
147 void vtkglGetBooleanv(
unsigned int pname,
unsigned char* params);
148 void vtkglGetIntegerv(
unsigned int pname,
int* params);
149 void vtkglGetDoublev(
unsigned int pname,
double* params);
150 void vtkglGetFloatv(
unsigned int pname,
float* params);
154 void GetBlendFuncState(
int*);
158 bool GetEnumState(
unsigned int name);
161 void SetEnumState(
unsigned int name,
bool value);
166 void ResetEnumState(
unsigned int name);
169 template <
typename T>
175 ((*this->State).*(this->Method))(this->Value);
202 void VerifyNoActiveTextures();
210 this->PushDrawFramebufferBinding();
211 this->PushReadFramebufferBinding();
213 void PushDrawFramebufferBinding();
214 void PushReadFramebufferBinding();
218 this->PopReadFramebufferBinding();
219 this->PopDrawFramebufferBinding();
221 void PopDrawFramebufferBinding();
222 void PopReadFramebufferBinding();
224 void ResetFramebufferBindings();
239 :
public ScopedValue<std::array<unsigned char, 4> >
279 this->State->vtkglGetBooleanv(
name, &val);
280 this->Value = val == 1;
284 this->State->SetEnumState(this->Name, this->Value);
327 int vtktype,
int numComponents,
bool needInteger,
bool needFloat,
bool needSRGB);
335 void ColorMask(std::array<unsigned char, 4> val);
336 void Scissor(std::array<int, 4> val);
337 void Viewport(std::array<int, 4> val);
364 unsigned int DrawBuffers[10];
365 unsigned int GetBinding();
366 unsigned int GetDrawBuffer(
unsigned int);
367 unsigned int GetReadBuffer();
std::array< int, 4 > Viewport
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph *>::edge_descriptor e, vtkGraph *)
abstract base class for most VTK objects
BufferBindingState DrawBinding
void ColorMask(std::array< unsigned char, 4 > val)
std::array< float, 4 > ClearColor
manage Shader Programs within a context
std::map< const vtkTextureObject *, int > TextureResourceIds
void PushFramebufferBindings()
Store/Restore the current framebuffer bindings and buffers.
manage vertex buffer objects shared within a context
vtkOpenGLVertexBufferObjectCache * VBOCache
#define VTK_UNICODE_STRING
std::array< unsigned char, 4 > ColorMask
std::array< int, 4 > Scissor
void vtkglBlendFunc(unsigned int sfactor, unsigned int dfactor)
unsigned int ActiveTexture
unsigned int CullFaceMode
void Viewport(std::array< int, 4 > val)
~vtkOpenGLState() override
void InitializeTextureInternalFormats()
unsigned int BlendEquationValue2
unsigned int BlendEquationValue1
void BlendFuncSeparate(std::array< unsigned int, 4 > val)
std::list< BufferBindingState > ReadBindings
vtkOpenGLFramebufferObject * Framebuffer
BufferBindingState ReadBinding
void PopFramebufferBindings()
Store/Restore the current framebuffer bindings and buffers.
void CheckState()
Check that this OpenGL state has consistent values with the current OpenGL context.
ScopedglEnableDisable(vtkOpenGLState *state, unsigned int name)
int GetDefaultTextureInternalFormat(int vtktype, int numComponents, bool needInteger, bool needFloat, bool needSRGB)
Get a mapping of vtk data types to native texture formats for this window we put this on the RenderWi...
vtkTextureUnitManager * GetTextureUnitManager()
Returns its texture unit manager object.
Internal class which encapsulates OpenGL FramebufferObject.
vtkOpenGLShaderCache * ShaderCache
std::list< BufferBindingState > DrawBindings
allocate/free texture units.
abstracts an OpenGL texture object.
std::array< unsigned int, 4 > BlendFunc
void SetVBOCache(vtkOpenGLVertexBufferObjectCache *val)
vtkTextureUnitManager * TextureUnitManager
void Scissor(std::array< int, 4 > val)
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
void SetTextureUnitManager(vtkTextureUnitManager *textureUnitManager)
Set the texture unit manager.
void ClearColor(std::array< float, 4 > val)
void Initialize(vtkOpenGLRenderWindow *)
Initialize OpenGL context using current state.