0030638: Visualization, TKOpenGl - load OpenGL 4.5 functions within OpenGl_Context
[occt.git] / src / OpenGl / OpenGl_GlCore45.hxx
1 // Copyright (c) 2019 OPEN CASCADE SAS
2 //
3 // This file is part of Open CASCADE Technology software library.
4 //
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
10 //
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
13
14 #ifndef _OpenGl_GlCore45_Header
15 #define _OpenGl_GlCore45_Header
16
17 #include <OpenGl_GlCore44.hxx>
18
19 //! OpenGL 4.5 definition.
20 template<typename theBaseClass_t>
21 struct OpenGl_TmplCore45 : public theBaseClass_t
22 {
23
24 public: //! @name OpenGL 4.5 additives to 4.4
25
26 #if !defined(GL_ES_VERSION_2_0)
27   using theBaseClass_t::glClipControl;
28   using theBaseClass_t::glCreateTransformFeedbacks;
29   using theBaseClass_t::glTransformFeedbackBufferBase;
30   using theBaseClass_t::glTransformFeedbackBufferRange;
31   using theBaseClass_t::glGetTransformFeedbackiv;
32   using theBaseClass_t::glGetTransformFeedbacki_v;
33   using theBaseClass_t::glGetTransformFeedbacki64_v;
34   using theBaseClass_t::glCreateBuffers;
35   using theBaseClass_t::glNamedBufferStorage;
36   using theBaseClass_t::glNamedBufferData;
37   using theBaseClass_t::glNamedBufferSubData;
38   using theBaseClass_t::glCopyNamedBufferSubData;
39   using theBaseClass_t::glClearNamedBufferData;
40   using theBaseClass_t::glClearNamedBufferSubData;
41   using theBaseClass_t::glMapNamedBuffer;
42   using theBaseClass_t::glMapNamedBufferRange;
43   using theBaseClass_t::glUnmapNamedBuffer;
44   using theBaseClass_t::glFlushMappedNamedBufferRange;
45   using theBaseClass_t::glGetNamedBufferParameteriv;
46   using theBaseClass_t::glGetNamedBufferParameteri64v;
47   using theBaseClass_t::glGetNamedBufferPointerv;
48   using theBaseClass_t::glGetNamedBufferSubData;
49   using theBaseClass_t::glCreateFramebuffers;
50   using theBaseClass_t::glNamedFramebufferRenderbuffer;
51   using theBaseClass_t::glNamedFramebufferParameteri;
52   using theBaseClass_t::glNamedFramebufferTexture;
53   using theBaseClass_t::glNamedFramebufferTextureLayer;
54   using theBaseClass_t::glNamedFramebufferDrawBuffer;
55   using theBaseClass_t::glNamedFramebufferDrawBuffers;
56   using theBaseClass_t::glNamedFramebufferReadBuffer;
57   using theBaseClass_t::glInvalidateNamedFramebufferData;
58   using theBaseClass_t::glInvalidateNamedFramebufferSubData;
59   using theBaseClass_t::glClearNamedFramebufferiv;
60   using theBaseClass_t::glClearNamedFramebufferuiv;
61   using theBaseClass_t::glClearNamedFramebufferfv;
62   using theBaseClass_t::glClearNamedFramebufferfi;
63   using theBaseClass_t::glBlitNamedFramebuffer;
64   using theBaseClass_t::glCheckNamedFramebufferStatus;
65   using theBaseClass_t::glGetNamedFramebufferParameteriv;
66   using theBaseClass_t::glGetNamedFramebufferAttachmentParameteriv;
67   using theBaseClass_t::glCreateRenderbuffers;
68   using theBaseClass_t::glNamedRenderbufferStorage;
69   using theBaseClass_t::glNamedRenderbufferStorageMultisample;
70   using theBaseClass_t::glGetNamedRenderbufferParameteriv;
71   using theBaseClass_t::glCreateTextures;
72   using theBaseClass_t::glTextureBuffer;
73   using theBaseClass_t::glTextureBufferRange;
74   using theBaseClass_t::glTextureStorage1D;
75   using theBaseClass_t::glTextureStorage2D;
76   using theBaseClass_t::glTextureStorage3D;
77   using theBaseClass_t::glTextureStorage2DMultisample;
78   using theBaseClass_t::glTextureStorage3DMultisample;
79   using theBaseClass_t::glTextureSubImage1D;
80   using theBaseClass_t::glTextureSubImage2D;
81   using theBaseClass_t::glTextureSubImage3D;
82   using theBaseClass_t::glCompressedTextureSubImage1D;
83   using theBaseClass_t::glCompressedTextureSubImage2D;
84   using theBaseClass_t::glCompressedTextureSubImage3D;
85   using theBaseClass_t::glCopyTextureSubImage1D;
86   using theBaseClass_t::glCopyTextureSubImage2D;
87   using theBaseClass_t::glCopyTextureSubImage3D;
88   using theBaseClass_t::glTextureParameterf;
89   using theBaseClass_t::glTextureParameterfv;
90   using theBaseClass_t::glTextureParameteri;
91   using theBaseClass_t::glTextureParameterIiv;
92   using theBaseClass_t::glTextureParameterIuiv;
93   using theBaseClass_t::glTextureParameteriv;
94   using theBaseClass_t::glGenerateTextureMipmap;
95   using theBaseClass_t::glBindTextureUnit;
96   using theBaseClass_t::glGetTextureImage;
97   using theBaseClass_t::glGetCompressedTextureImage;
98   using theBaseClass_t::glGetTextureLevelParameterfv;
99   using theBaseClass_t::glGetTextureLevelParameteriv;
100   using theBaseClass_t::glGetTextureParameterfv;
101   using theBaseClass_t::glGetTextureParameterIiv;
102   using theBaseClass_t::glGetTextureParameterIuiv;
103   using theBaseClass_t::glGetTextureParameteriv;
104   using theBaseClass_t::glCreateVertexArrays;
105   using theBaseClass_t::glDisableVertexArrayAttrib;
106   using theBaseClass_t::glEnableVertexArrayAttrib;
107   using theBaseClass_t::glVertexArrayElementBuffer;
108   using theBaseClass_t::glVertexArrayVertexBuffer;
109   using theBaseClass_t::glVertexArrayVertexBuffers;
110   using theBaseClass_t::glVertexArrayAttribBinding;
111   using theBaseClass_t::glVertexArrayAttribFormat;
112   using theBaseClass_t::glVertexArrayAttribIFormat;
113   using theBaseClass_t::glVertexArrayAttribLFormat;
114   using theBaseClass_t::glVertexArrayBindingDivisor;
115   using theBaseClass_t::glGetVertexArrayiv;
116   using theBaseClass_t::glGetVertexArrayIndexediv;
117   using theBaseClass_t::glGetVertexArrayIndexed64iv;
118   using theBaseClass_t::glCreateSamplers;
119   using theBaseClass_t::glCreateProgramPipelines;
120   using theBaseClass_t::glCreateQueries;
121   using theBaseClass_t::glGetQueryBufferObjecti64v;
122   using theBaseClass_t::glGetQueryBufferObjectiv;
123   using theBaseClass_t::glGetQueryBufferObjectui64v;
124   using theBaseClass_t::glGetQueryBufferObjectuiv;
125   using theBaseClass_t::glMemoryBarrierByRegion;
126   using theBaseClass_t::glGetTextureSubImage;
127   using theBaseClass_t::glGetCompressedTextureSubImage;
128   using theBaseClass_t::glGetGraphicsResetStatus;
129   using theBaseClass_t::glGetnCompressedTexImage;
130   using theBaseClass_t::glGetnTexImage;
131   using theBaseClass_t::glGetnUniformdv;
132   using theBaseClass_t::glGetnUniformfv;
133   using theBaseClass_t::glGetnUniformiv;
134   using theBaseClass_t::glGetnUniformuiv;
135   using theBaseClass_t::glReadnPixels;
136   using theBaseClass_t::glGetnMapdv;
137   using theBaseClass_t::glGetnMapfv;
138   using theBaseClass_t::glGetnMapiv;
139   using theBaseClass_t::glGetnPixelMapfv;
140   using theBaseClass_t::glGetnPixelMapuiv;
141   using theBaseClass_t::glGetnPixelMapusv;
142   using theBaseClass_t::glGetnPolygonStipple;
143   using theBaseClass_t::glGetnColorTable;
144   using theBaseClass_t::glGetnConvolutionFilter;
145   using theBaseClass_t::glGetnSeparableFilter;
146   using theBaseClass_t::glGetnHistogram;
147   using theBaseClass_t::glGetnMinmax;
148   using theBaseClass_t::glTextureBarrier;
149 #endif
150
151 };
152
153 //! OpenGL 4.5 compatibility profile.
154 typedef OpenGl_TmplCore45<OpenGl_GlCore44Back> OpenGl_GlCore45Back;
155
156 //! OpenGL 4.5 core profile.
157 typedef OpenGl_TmplCore45<OpenGl_GlCore44>     OpenGl_GlCore45;
158
159 #endif // _OpenGl_GlCore45_Header