0028487: Visualization, TKOpenGl - add option for rendering with lower resolution
[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::glStencilOpSeparate;
30   using theBaseClass_t::glStencilFuncSeparate;
31   using theBaseClass_t::glStencilMaskSeparate;
32   using theBaseClass_t::glAttachShader;
33   using theBaseClass_t::glBindAttribLocation;
34   using theBaseClass_t::glCompileShader;
35   using theBaseClass_t::glCreateProgram;
36   using theBaseClass_t::glCreateShader;
37   using theBaseClass_t::glDeleteProgram;
38   using theBaseClass_t::glDeleteShader;
39   using theBaseClass_t::glDetachShader;
40   using theBaseClass_t::glDisableVertexAttribArray;
41   using theBaseClass_t::glEnableVertexAttribArray;
42   using theBaseClass_t::glGetActiveAttrib;
43   using theBaseClass_t::glGetActiveUniform;
44   using theBaseClass_t::glGetAttachedShaders;
45   using theBaseClass_t::glGetAttribLocation;
46   using theBaseClass_t::glGetProgramiv;
47   using theBaseClass_t::glGetProgramInfoLog;
48   using theBaseClass_t::glGetShaderiv;
49   using theBaseClass_t::glGetShaderInfoLog;
50   using theBaseClass_t::glGetShaderSource;
51   using theBaseClass_t::glGetUniformLocation;
52   using theBaseClass_t::glGetUniformfv;
53   using theBaseClass_t::glGetUniformiv;
54   using theBaseClass_t::glGetVertexAttribfv;
55   using theBaseClass_t::glGetVertexAttribiv;
56   using theBaseClass_t::glGetVertexAttribPointerv;
57   using theBaseClass_t::glIsProgram;
58   using theBaseClass_t::glIsShader;
59   using theBaseClass_t::glLinkProgram;
60   using theBaseClass_t::glShaderSource;
61   using theBaseClass_t::glUseProgram;
62   using theBaseClass_t::glUniform1f;
63   using theBaseClass_t::glUniform2f;
64   using theBaseClass_t::glUniform3f;
65   using theBaseClass_t::glUniform4f;
66   using theBaseClass_t::glUniform1i;
67   using theBaseClass_t::glUniform2i;
68   using theBaseClass_t::glUniform3i;
69   using theBaseClass_t::glUniform4i;
70   using theBaseClass_t::glUniform1fv;
71   using theBaseClass_t::glUniform2fv;
72   using theBaseClass_t::glUniform3fv;
73   using theBaseClass_t::glUniform4fv;
74   using theBaseClass_t::glUniform1iv;
75   using theBaseClass_t::glUniform2iv;
76   using theBaseClass_t::glUniform3iv;
77   using theBaseClass_t::glUniform4iv;
78   using theBaseClass_t::glUniformMatrix2fv;
79   using theBaseClass_t::glUniformMatrix3fv;
80   using theBaseClass_t::glUniformMatrix4fv;
81   using theBaseClass_t::glValidateProgram;
82   using theBaseClass_t::glVertexAttrib1f;
83   using theBaseClass_t::glVertexAttrib1fv;
84   using theBaseClass_t::glVertexAttrib2f;
85   using theBaseClass_t::glVertexAttrib2fv;
86   using theBaseClass_t::glVertexAttrib3f;
87   using theBaseClass_t::glVertexAttrib3fv;
88   using theBaseClass_t::glVertexAttrib4f;
89   using theBaseClass_t::glVertexAttrib4fv;
90   using theBaseClass_t::glVertexAttribPointer;
91
92 #if !defined(GL_ES_VERSION_2_0)
93   using theBaseClass_t::glDrawBuffers;
94   using theBaseClass_t::glGetVertexAttribdv;
95   using theBaseClass_t::glVertexAttrib1d;
96   using theBaseClass_t::glVertexAttrib1dv;
97   using theBaseClass_t::glVertexAttrib2d;
98   using theBaseClass_t::glVertexAttrib2dv;
99   using theBaseClass_t::glVertexAttrib3d;
100   using theBaseClass_t::glVertexAttrib3dv;
101   using theBaseClass_t::glVertexAttrib4d;
102   using theBaseClass_t::glVertexAttrib4dv;
103   using theBaseClass_t::glVertexAttrib1s;
104   using theBaseClass_t::glVertexAttrib1sv;
105   using theBaseClass_t::glVertexAttrib2s;
106   using theBaseClass_t::glVertexAttrib2sv;
107   using theBaseClass_t::glVertexAttrib3s;
108   using theBaseClass_t::glVertexAttrib3sv;
109   using theBaseClass_t::glVertexAttrib4s;
110   using theBaseClass_t::glVertexAttrib4sv;
111   using theBaseClass_t::glVertexAttrib4iv;
112   using theBaseClass_t::glVertexAttrib4Nbv;
113   using theBaseClass_t::glVertexAttrib4Niv;
114   using theBaseClass_t::glVertexAttrib4Nsv;
115   using theBaseClass_t::glVertexAttrib4Nub;
116   using theBaseClass_t::glVertexAttrib4Nubv;
117   using theBaseClass_t::glVertexAttrib4Nuiv;
118   using theBaseClass_t::glVertexAttrib4Nusv;
119   using theBaseClass_t::glVertexAttrib4bv;
120   using theBaseClass_t::glVertexAttrib4ubv;
121   using theBaseClass_t::glVertexAttrib4uiv;
122   using theBaseClass_t::glVertexAttrib4usv;
123 #endif
124
125 };
126
127 //! OpenGL 2.0 core based on 1.5 version.
128 typedef OpenGl_TmplCore20<OpenGl_GlCore15>    OpenGl_GlCore20;
129
130 //! OpenGL 2.0 without deprecated entry points.
131 typedef OpenGl_TmplCore20<OpenGl_GlCore15Fwd> OpenGl_GlCore20Fwd;
132
133 #endif // _OpenGl_GlCore20_Header