20#ifndef VTKVIEWER_OPENGLHELPER_H
21#define VTKVIEWER_OPENGLHELPER_H
24#include <vtkMatrix4x4.h>
34#ifndef GL_ARB_shader_objects
42#define APIENTRYP APIENTRY *
45#ifndef GL_ARB_shader_objects
49#ifndef GL_VERTEX_PROGRAM_POINT_SIZE_ARB
50#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
53#ifndef GL_VERTEX_SHADER_ARB
54#define GL_VERTEX_SHADER_ARB 0x8B31
57#ifndef GL_FRAGMENT_SHADER_ARB
58#define GL_FRAGMENT_SHADER_ARB 0x8B30
61#ifndef GL_ARB_point_sprite
62#define GL_POINT_SPRITE_ARB 0x8861
63#define GL_COORD_REPLACE_ARB 0x8862
66#ifndef GL_ARB_vertex_buffer_object
69#define GL_ARRAY_BUFFER_ARB 0x8892
70#define GL_STATIC_DRAW_ARB 0x88E4
73#ifndef GL_COMPILE_STATUS
74#define GL_COMPILE_STATUS 0x8B81
77#ifndef GL_CURRENT_PROGRAM
78#define GL_CURRENT_PROGRAM 0x8B8D
81#ifndef GL_DEBUG_TYPE_ERROR
82#define GL_DEBUG_TYPE_ERROR 0x824C
86#define GL_LINK_STATUS 0x8B82
90#define GL_TEXTURE0 0x84C0
93#ifndef GL_VALIDATE_STATUS
94#define GL_VALIDATE_STATUS 0x8B83
97#ifndef GL_NUM_EXTENSIONS
98#define GL_NUM_EXTENSIONS 0x821D
116 bool CreateShaderProgram (
const std::string& theFilePath,
125 void SetUniformMatrix (
const GLint theLocation,
126 const vtkMatrix4x4* theMatrix)
const;
132 typedef void (
APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
133 typedef void (
APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n,
const GLuint *buffers);
134 typedef void (
APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
142 typedef void (
APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride,
const GLvoid *pointer);
143 typedef void (
APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
144 typedef void (
APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
147 typedef void (
APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
152 typedef void (
APIENTRYP PFNGLGETSHADERIVARBPROC) (GLuint shader, GLenum pname, GLint *params);
153 typedef void (
APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
154 typedef void (
APIENTRYP PFNGLGETSHADERINFOLOGARBPROC) (GLuint shader, GLsizei maxLength, GLsizei *length,
GLcharARB *infoLog);
155 typedef void (
APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose,
const GLfloat *value);
156 typedef void (
APIENTRYP PFNGLGENVERTEXARRAYSARBPROC) (GLsizei n, GLuint *arrays);
157 typedef void (
APIENTRYP PFNGLBINDVERTEXARRAYARBPROC) (GLuint array);
158 typedef void (
APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
159 typedef const GLubyte *(
APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index);
181 PFNGLDETACHOBJECTARBPROC vglDetachObjectARB;
182 PFNGLDELETEOBJECTARBPROC vglDeleteObjectARB;
183 PFNGLVALIDATEPROGRAMARBPROC vglValidateProgramARB;
184 PFNGLGETSHADERIVARBPROC vglGetShaderivARB;
185 PFNGLGETPROGRAMIVARBPROC vglGetProgramivARB;
186 PFNGLGETSHADERINFOLOGARBPROC vglGetShaderInfoLogARB;
188 PFNGLUNIFORMMATRIX4FVARBPROC vglUniformMatrix4fvARB;
189 PFNGLGENVERTEXARRAYSARBPROC vglGenVertexArraysARB;
190 PFNGLBINDVERTEXARRAYARBPROC vglBindVertexArrayARB;
191 PFNGLUNIFORM1IARBPROC vglUniform1iARB;
192 PFNGLGETUNIFORMLOCATIONARBPROC vglGetUniformLocationARB;
193 PFNGLACTIVETEXTUREARBPROC vglActiveTextureARB;
194 PFNGLGETSTRINGIPROC vglGetStringiARB;
#define VTKVIEWER_EXPORT
Definition: VTKViewer.h:33
ptrdiff_t GLsizeiptrARB
Definition: VTKViewer_OpenGLHelper.h:67
GLuint GLhandleARB
Definition: VTKViewer_OpenGLHelper.h:35
char GLcharARB
Definition: VTKViewer_OpenGLHelper.h:46
#define APIENTRYP
Definition: VTKViewer_OpenGLHelper.h:42
Definition: VTKViewer_OpenGLHelper.h:106
PFNGLENABLEVERTEXATTRIBARRAYARBPROC vglEnableVertexAttribArrayARB
Definition: VTKViewer_OpenGLHelper.h:177
PFNGLDELETEBUFFERSARBPROC vglDeleteBuffersARB
Definition: VTKViewer_OpenGLHelper.h:174
PFNGLCOMPILESHADERARBPROC vglCompileShaderARB
Definition: VTKViewer_OpenGLHelper.h:165
bool mIsInitialized
Definition: VTKViewer_OpenGLHelper.h:198
PFNGLDISABLEVERTEXATTRIBARRAYARBPROC vglDisableVertexAttribArrayARB
Definition: VTKViewer_OpenGLHelper.h:178
PFNGLCREATEPROGRAMOBJECTARBPROC vglCreateProgramObjectARB
Definition: VTKViewer_OpenGLHelper.h:166
PFNGLCREATESHADEROBJECTARBPROC vglCreateShaderObjectARB
Definition: VTKViewer_OpenGLHelper.h:164
PFNGLBUFFERDATAARBPROC vglBufferDataARB
Definition: VTKViewer_OpenGLHelper.h:173
PFNGLBINDBUFFERARBPROC vglBindBufferARB
Definition: VTKViewer_OpenGLHelper.h:172
PFNGLGETATTRIBLOCATIONARBPROC vglGetAttribLocationARB
Definition: VTKViewer_OpenGLHelper.h:175
PFNGLUSEPROGRAMOBJECTARBPROC vglUseProgramObjectARB
Definition: VTKViewer_OpenGLHelper.h:169
PFNGLLINKPROGRAMARBPROC vglLinkProgramARB
Definition: VTKViewer_OpenGLHelper.h:168
PFNGLGENBUFFERSARBPROC vglGenBuffersARB
Definition: VTKViewer_OpenGLHelper.h:171
PFNGLVERTEXATTRIBPOINTERARBPROC vglVertexAttribPointerARB
Definition: VTKViewer_OpenGLHelper.h:176
PFNGLATTACHOBJECTARBPROC vglAttachObjectARB
Definition: VTKViewer_OpenGLHelper.h:167
bool IsInitialized() const
Definition: VTKViewer_OpenGLHelper.h:113
PFNGLSHADERSOURCEARBPROC vglShaderSourceARB
Definition: VTKViewer_OpenGLHelper.h:163
Definition: VTKViewer_OpenGLHelper.cxx:220
char * readFromFile(std::string fileName)
Definition: VTKViewer_OpenGLHelper.cxx:221