0024732: OpenGl_Context - retrieve functions up to GL4.4
[occt.git] / src / OpenGl / OpenGl_GlCore20.hxx
1 // Created on: 2012-03-06
2 // Created by: Kirill GAVRILOV
3 // Copyright (c) 2012-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 #ifndef _OpenGl_GlCore20_Header
17 #define _OpenGl_GlCore20_Header
18
19 #include <OpenGl_GlCore15.hxx>
20
21 //! OpenGL 2.0 core based on 1.5 version.
22 template<typename theBaseClass_t>
23 struct OpenGl_TmplCore20 : public theBaseClass_t
24 {
25
26 public: //! @name OpenGL 2.0 additives to 1.5
27
28   using theBaseClass_t::glBlendEquationSeparate;
29   using theBaseClass_t::glDrawBuffers;
30   using theBaseClass_t::glStencilOpSeparate;
31   using theBaseClass_t::glStencilFuncSeparate;
32   using theBaseClass_t::glStencilMaskSeparate;
33   using theBaseClass_t::glAttachShader;
34   using theBaseClass_t::glBindAttribLocation;
35   using theBaseClass_t::glCompileShader;
36   using theBaseClass_t::glCreateProgram;
37   using theBaseClass_t::glCreateShader;
38   using theBaseClass_t::glDeleteProgram;
39   using theBaseClass_t::glDeleteShader;
40   using theBaseClass_t::glDetachShader;
41   using theBaseClass_t::glDisableVertexAttribArray;
42   using theBaseClass_t::glEnableVertexAttribArray;
43   using theBaseClass_t::glGetActiveAttrib;
44   using theBaseClass_t::glGetActiveUniform;
45   using theBaseClass_t::glGetAttachedShaders;
46   using theBaseClass_t::glGetAttribLocation;
47   using theBaseClass_t::glGetProgramiv;
48   using theBaseClass_t::glGetProgramInfoLog;
49   using theBaseClass_t::glGetShaderiv;
50   using theBaseClass_t::glGetShaderInfoLog;
51   using theBaseClass_t::glGetShaderSource;
52   using theBaseClass_t::glGetUniformLocation;
53   using theBaseClass_t::glGetUniformfv;
54   using theBaseClass_t::glGetUniformiv;
55   using theBaseClass_t::glGetVertexAttribdv;
56   using theBaseClass_t::glGetVertexAttribfv;
57   using theBaseClass_t::glGetVertexAttribiv;
58   using theBaseClass_t::glGetVertexAttribPointerv;
59   using theBaseClass_t::glIsProgram;
60   using theBaseClass_t::glIsShader;
61   using theBaseClass_t::glLinkProgram;
62   using theBaseClass_t::glShaderSource;
63   using theBaseClass_t::glUseProgram;
64   using theBaseClass_t::glUniform1f;
65   using theBaseClass_t::glUniform2f;
66   using theBaseClass_t::glUniform3f;
67   using theBaseClass_t::glUniform4f;
68   using theBaseClass_t::glUniform1i;
69   using theBaseClass_t::glUniform2i;
70   using theBaseClass_t::glUniform3i;
71   using theBaseClass_t::glUniform4i;
72   using theBaseClass_t::glUniform1fv;
73   using theBaseClass_t::glUniform2fv;
74   using theBaseClass_t::glUniform3fv;
75   using theBaseClass_t::glUniform4fv;
76   using theBaseClass_t::glUniform1iv;
77   using theBaseClass_t::glUniform2iv;
78   using theBaseClass_t::glUniform3iv;
79   using theBaseClass_t::glUniform4iv;
80   using theBaseClass_t::glUniformMatrix2fv;
81   using theBaseClass_t::glUniformMatrix3fv;
82   using theBaseClass_t::glUniformMatrix4fv;
83   using theBaseClass_t::glValidateProgram;
84   using theBaseClass_t::glVertexAttrib1d;
85   using theBaseClass_t::glVertexAttrib1dv;
86   using theBaseClass_t::glVertexAttrib1f;
87   using theBaseClass_t::glVertexAttrib1fv;
88   using theBaseClass_t::glVertexAttrib1s;
89   using theBaseClass_t::glVertexAttrib1sv;
90   using theBaseClass_t::glVertexAttrib2d;
91   using theBaseClass_t::glVertexAttrib2dv;
92   using theBaseClass_t::glVertexAttrib2f;
93   using theBaseClass_t::glVertexAttrib2fv;
94   using theBaseClass_t::glVertexAttrib2s;
95   using theBaseClass_t::glVertexAttrib2sv;
96   using theBaseClass_t::glVertexAttrib3d;
97   using theBaseClass_t::glVertexAttrib3dv;
98   using theBaseClass_t::glVertexAttrib3f;
99   using theBaseClass_t::glVertexAttrib3fv;
100   using theBaseClass_t::glVertexAttrib3s;
101   using theBaseClass_t::glVertexAttrib3sv;
102   using theBaseClass_t::glVertexAttrib4Nbv;
103   using theBaseClass_t::glVertexAttrib4Niv;
104   using theBaseClass_t::glVertexAttrib4Nsv;
105   using theBaseClass_t::glVertexAttrib4Nub;
106   using theBaseClass_t::glVertexAttrib4Nubv;
107   using theBaseClass_t::glVertexAttrib4Nuiv;
108   using theBaseClass_t::glVertexAttrib4Nusv;
109   using theBaseClass_t::glVertexAttrib4bv;
110   using theBaseClass_t::glVertexAttrib4d;
111   using theBaseClass_t::glVertexAttrib4dv;
112   using theBaseClass_t::glVertexAttrib4f;
113   using theBaseClass_t::glVertexAttrib4fv;
114   using theBaseClass_t::glVertexAttrib4iv;
115   using theBaseClass_t::glVertexAttrib4s;
116   using theBaseClass_t::glVertexAttrib4sv;
117   using theBaseClass_t::glVertexAttrib4ubv;
118   using theBaseClass_t::glVertexAttrib4uiv;
119   using theBaseClass_t::glVertexAttrib4usv;
120   using theBaseClass_t::glVertexAttribPointer;
121
122 };
123
124 //! OpenGL 2.0 core based on 1.5 version.
125 typedef OpenGl_TmplCore20<OpenGl_GlCore15>    OpenGl_GlCore20;
126
127 //! OpenGL 2.0 without deprecated entry points.
128 typedef OpenGl_TmplCore20<OpenGl_GlCore15Fwd> OpenGl_GlCore20Fwd;
129
130 #endif // _OpenGl_GlCore20_Header