0023428: Extend OpenGl_Context to use Geometry Shaders extension
[occt.git] / src / OpenGl / OpenGl_GlCore20.hxx
CommitLineData
b311480e 1// Created on: 2012-03-06
2// Created by: Kirill GAVRILOV
3// Copyright (c) -1999 Matra Datavision
4// Copyright (c) 2012-2012 OPEN CASCADE SAS
5//
6// The content of this file is subject to the Open CASCADE Technology Public
7// License Version 6.5 (the "License"). You may not use the content of this file
8// except in compliance with the License. Please obtain a copy of the License
9// at http://www.opencascade.org and read it completely before using this file.
10//
11// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13//
14// The Original Code and all software distributed under the License is
15// distributed on an "AS IS" basis, without warranty of any kind, and the
16// Initial Developer hereby disclaims all such warranties, including without
17// limitation, any warranties of merchantability, fitness for a particular
18// purpose or non-infringement. Please see the License for the specific terms
19// and conditions governing the rights and limitations under the License.
20
5f8b738e 21
22#ifndef _OpenGl_GlCore20_H__
23#define _OpenGl_GlCore20_H__
24
25#include <OpenGl_GlCore15.hxx>
26
27//! Function list for GL2.0 core functionality.
28struct OpenGl_GlCore20 : public OpenGl_GlCore15
29{
30
31 PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate;
32 PFNGLDRAWBUFFERSPROC glDrawBuffers;
33 PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate;
34 PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate;
35 PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate;
36 PFNGLATTACHSHADERPROC glAttachShader;
37 PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation;
38 PFNGLCOMPILESHADERPROC glCompileShader;
39 PFNGLCREATEPROGRAMPROC glCreateProgram;
40 PFNGLCREATESHADERPROC glCreateShader;
41 PFNGLDELETEPROGRAMPROC glDeleteProgram;
42 PFNGLDELETESHADERPROC glDeleteShader;
43 PFNGLDETACHSHADERPROC glDetachShader;
44 PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
45 PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
46 PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib;
47 PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform;
48 PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders;
49 PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation;
50 PFNGLGETPROGRAMIVPROC glGetProgramiv;
51 PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
52 PFNGLGETSHADERIVPROC glGetShaderiv;
53 PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
54 PFNGLGETSHADERSOURCEPROC glGetShaderSource;
55 PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
56 PFNGLGETUNIFORMFVPROC glGetUniformfv;
57 PFNGLGETUNIFORMIVPROC glGetUniformiv;
58 PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv;
59 PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv;
60 PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv;
61 PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv;
62 PFNGLISPROGRAMPROC glIsProgram;
63 PFNGLISSHADERPROC glIsShader;
64 PFNGLLINKPROGRAMPROC glLinkProgram;
65 PFNGLSHADERSOURCEPROC glShaderSource;
66 PFNGLUSEPROGRAMPROC glUseProgram;
67 PFNGLUNIFORM1FPROC glUniform1f;
68 PFNGLUNIFORM2FPROC glUniform2f;
69 PFNGLUNIFORM3FPROC glUniform3f;
70 PFNGLUNIFORM4FPROC glUniform4f;
71 PFNGLUNIFORM1IPROC glUniform1i;
72 PFNGLUNIFORM2IPROC glUniform2i;
73 PFNGLUNIFORM3IPROC glUniform3i;
74 PFNGLUNIFORM4IPROC glUniform4i;
75 PFNGLUNIFORM1FVPROC glUniform1fv;
76 PFNGLUNIFORM2FVPROC glUniform2fv;
77 PFNGLUNIFORM3FVPROC glUniform3fv;
78 PFNGLUNIFORM4FVPROC glUniform4fv;
79 PFNGLUNIFORM1IVPROC glUniform1iv;
80 PFNGLUNIFORM2IVPROC glUniform2iv;
81 PFNGLUNIFORM3IVPROC glUniform3iv;
82 PFNGLUNIFORM4IVPROC glUniform4iv;
83 PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv;
84 PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv;
85 PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
86 PFNGLVALIDATEPROGRAMPROC glValidateProgram;
87 PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d;
88 PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv;
89 PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f;
90 PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv;
91 PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s;
92 PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv;
93 PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d;
94 PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv;
95 PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f;
96 PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv;
97 PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s;
98 PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv;
99 PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d;
100 PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv;
101 PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f;
102 PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv;
103 PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s;
104 PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv;
105 PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv;
106 PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv;
107 PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv;
108 PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub;
109 PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv;
110 PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv;
111 PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv;
112 PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv;
113 PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d;
114 PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv;
115 PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f;
116 PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv;
117 PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv;
118 PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s;
119 PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv;
120 PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv;
121 PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv;
122 PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv;
123 PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
124
125};
126
127#endif // _OpenGl_GlCore20_H__