0024637: Visualization - clean up implementation of rendering in immediate mode
[occt.git] / src / OpenGl / OpenGl_GlCore41.hxx
1 // Created on: 2014-03-17
2 // Created by: Kirill GAVRILOV
3 // Copyright (c) 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_GlCore41_Header
17 #define _OpenGl_GlCore41_Header
18
19 #include <OpenGl_GlCore40.hxx>
20
21 //! OpenGL 4.1 definition.
22 template<typename theBaseClass_t>
23 struct OpenGl_TmplCore41 : public theBaseClass_t
24 {
25
26 public: //! @name GL_ARB_ES2_compatibility (added to OpenGL 4.1 core)
27
28   using theBaseClass_t::glReleaseShaderCompiler;
29   using theBaseClass_t::glShaderBinary;
30   using theBaseClass_t::glGetShaderPrecisionFormat;
31   using theBaseClass_t::glDepthRangef;
32   using theBaseClass_t::glClearDepthf;
33
34 public: //! @name GL_ARB_get_program_binary (added to OpenGL 4.1 core)
35
36   using theBaseClass_t::glGetProgramBinary;
37   using theBaseClass_t::glProgramBinary;
38   using theBaseClass_t::glProgramParameteri;
39
40 public: //! @name GL_ARB_separate_shader_objects (added to OpenGL 4.1 core)
41
42   using theBaseClass_t::glUseProgramStages;
43   using theBaseClass_t::glActiveShaderProgram;
44   using theBaseClass_t::glCreateShaderProgramv;
45   using theBaseClass_t::glBindProgramPipeline;
46   using theBaseClass_t::glDeleteProgramPipelines;
47   using theBaseClass_t::glGenProgramPipelines;
48   using theBaseClass_t::glIsProgramPipeline;
49   using theBaseClass_t::glGetProgramPipelineiv;
50   using theBaseClass_t::glProgramUniform1i;
51   using theBaseClass_t::glProgramUniform1iv;
52   using theBaseClass_t::glProgramUniform1f;
53   using theBaseClass_t::glProgramUniform1fv;
54   using theBaseClass_t::glProgramUniform1d;
55   using theBaseClass_t::glProgramUniform1dv;
56   using theBaseClass_t::glProgramUniform1ui;
57   using theBaseClass_t::glProgramUniform1uiv;
58   using theBaseClass_t::glProgramUniform2i;
59   using theBaseClass_t::glProgramUniform2iv;
60   using theBaseClass_t::glProgramUniform2f;
61   using theBaseClass_t::glProgramUniform2fv;
62   using theBaseClass_t::glProgramUniform2d;
63   using theBaseClass_t::glProgramUniform2dv;
64   using theBaseClass_t::glProgramUniform2ui;
65   using theBaseClass_t::glProgramUniform2uiv;
66   using theBaseClass_t::glProgramUniform3i;
67   using theBaseClass_t::glProgramUniform3iv;
68   using theBaseClass_t::glProgramUniform3f;
69   using theBaseClass_t::glProgramUniform3fv;
70   using theBaseClass_t::glProgramUniform3d;
71   using theBaseClass_t::glProgramUniform3dv;
72   using theBaseClass_t::glProgramUniform3ui;
73   using theBaseClass_t::glProgramUniform3uiv;
74   using theBaseClass_t::glProgramUniform4i;
75   using theBaseClass_t::glProgramUniform4iv;
76   using theBaseClass_t::glProgramUniform4f;
77   using theBaseClass_t::glProgramUniform4fv;
78   using theBaseClass_t::glProgramUniform4d;
79   using theBaseClass_t::glProgramUniform4dv;
80   using theBaseClass_t::glProgramUniform4ui;
81   using theBaseClass_t::glProgramUniform4uiv;
82   using theBaseClass_t::glProgramUniformMatrix2fv;
83   using theBaseClass_t::glProgramUniformMatrix3fv;
84   using theBaseClass_t::glProgramUniformMatrix4fv;
85   using theBaseClass_t::glProgramUniformMatrix2dv;
86   using theBaseClass_t::glProgramUniformMatrix3dv;
87   using theBaseClass_t::glProgramUniformMatrix4dv;
88   using theBaseClass_t::glProgramUniformMatrix2x3fv;
89   using theBaseClass_t::glProgramUniformMatrix3x2fv;
90   using theBaseClass_t::glProgramUniformMatrix2x4fv;
91   using theBaseClass_t::glProgramUniformMatrix4x2fv;
92   using theBaseClass_t::glProgramUniformMatrix3x4fv;
93   using theBaseClass_t::glProgramUniformMatrix4x3fv;
94   using theBaseClass_t::glProgramUniformMatrix2x3dv;
95   using theBaseClass_t::glProgramUniformMatrix3x2dv;
96   using theBaseClass_t::glProgramUniformMatrix2x4dv;
97   using theBaseClass_t::glProgramUniformMatrix4x2dv;
98   using theBaseClass_t::glProgramUniformMatrix3x4dv;
99   using theBaseClass_t::glProgramUniformMatrix4x3dv;
100   using theBaseClass_t::glValidateProgramPipeline;
101   using theBaseClass_t::glGetProgramPipelineInfoLog;
102
103 public: //! @name GL_ARB_vertex_attrib_64bit (added to OpenGL 4.1 core)
104
105   using theBaseClass_t::glVertexAttribL1d;
106   using theBaseClass_t::glVertexAttribL2d;
107   using theBaseClass_t::glVertexAttribL3d;
108   using theBaseClass_t::glVertexAttribL4d;
109   using theBaseClass_t::glVertexAttribL1dv;
110   using theBaseClass_t::glVertexAttribL2dv;
111   using theBaseClass_t::glVertexAttribL3dv;
112   using theBaseClass_t::glVertexAttribL4dv;
113   using theBaseClass_t::glVertexAttribLPointer;
114   using theBaseClass_t::glGetVertexAttribLdv;
115
116 public: //! @name GL_ARB_viewport_array (added to OpenGL 4.1 core)
117
118   using theBaseClass_t::glViewportArrayv;
119   using theBaseClass_t::glViewportIndexedf;
120   using theBaseClass_t::glViewportIndexedfv;
121   using theBaseClass_t::glScissorArrayv;
122   using theBaseClass_t::glScissorIndexed;
123   using theBaseClass_t::glScissorIndexedv;
124   using theBaseClass_t::glDepthRangeArrayv;
125   using theBaseClass_t::glDepthRangeIndexed;
126   using theBaseClass_t::glGetFloati_v;
127   using theBaseClass_t::glGetDoublei_v;
128
129 public: //! @name OpenGL 4.1 additives to 4.0
130
131 };
132
133 //! OpenGL 4.1 compatibility profile.
134 typedef OpenGl_TmplCore41<OpenGl_GlCore40Back> OpenGl_GlCore41Back;
135
136 //! OpenGL 4.1 core profile.
137 typedef OpenGl_TmplCore41<OpenGl_GlCore40>     OpenGl_GlCore41;
138
139 #endif // _OpenGl_GlCore41_Header