0025442: Visualization, TKOpenGl - prevent inclusion of system header glxext.h
[occt.git] / src / OpenGl / OpenGl_GlCore32.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_GlCore32_Header
17 #define _OpenGl_GlCore32_Header
18
19 #include <OpenGl_GlCore31.hxx>
20
21 //! OpenGL 3.2 definition.
22 template<typename theBaseClass_t>
23 struct OpenGl_TmplCore32 : public theBaseClass_t
24 {
25
26 #if !defined(GL_ES_VERSION_2_0)
27
28 public: //! @name GL_ARB_draw_elements_base_vertex (added to OpenGL 3.2 core)
29
30   using theBaseClass_t::glDrawElementsBaseVertex;
31   using theBaseClass_t::glDrawRangeElementsBaseVertex;
32   using theBaseClass_t::glDrawElementsInstancedBaseVertex;
33   using theBaseClass_t::glMultiDrawElementsBaseVertex;
34
35 public: //! @name GL_ARB_provoking_vertex (added to OpenGL 3.2 core)
36
37   using theBaseClass_t::glProvokingVertex;
38
39 public: //! @name GL_ARB_sync (added to OpenGL 3.2 core)
40
41   using theBaseClass_t::glFenceSync;
42   using theBaseClass_t::glIsSync;
43   using theBaseClass_t::glDeleteSync;
44   using theBaseClass_t::glClientWaitSync;
45   using theBaseClass_t::glWaitSync;
46   using theBaseClass_t::glGetInteger64v;
47   using theBaseClass_t::glGetSynciv;
48
49 public: //! @name GL_ARB_texture_multisample (added to OpenGL 3.2 core)
50
51   using theBaseClass_t::glTexImage2DMultisample;
52   using theBaseClass_t::glTexImage3DMultisample;
53   using theBaseClass_t::glGetMultisamplefv;
54   using theBaseClass_t::glSampleMaski;
55
56 public: //! @name OpenGL 3.2 additives to 3.1
57
58   using theBaseClass_t::glGetInteger64i_v;
59   using theBaseClass_t::glGetBufferParameteri64v;
60   using theBaseClass_t::glFramebufferTexture;
61
62 #endif
63
64 };
65
66 //! OpenGL 3.2 compatibility profile.
67 typedef OpenGl_TmplCore32<OpenGl_GlCore31Back> OpenGl_GlCore32Back;
68
69 //! OpenGL 3.2 core profile.
70 typedef OpenGl_TmplCore32<OpenGl_GlCore31>     OpenGl_GlCore32;
71
72 #endif // _OpenGl_GlCore32_Header