0025442: Visualization, TKOpenGl - prevent inclusion of system header glxext.h
[occt.git] / src / OpenGl / OpenGl_GlCore30.hxx
CommitLineData
01ca42b2 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_GlCore30_Header
17#define _OpenGl_GlCore30_Header
18
19#include <OpenGl_GlCore21.hxx>
20
21//! OpenGL 3.0 core.
22//! This is first version with deprecation model introduced
23//! - a lot of functionality regarding to fixed pipeline were marked deprecated.
24//! Notice that nothing were actually removed in this version (unless Forward context loaded)!
25template<typename theBaseClass_t>
26struct OpenGl_TmplCore30 : public theBaseClass_t
27{
28
29public: //! @name GL_ARB_framebuffer_object (added to OpenGL 3.0 core)
30
ca3c13d1 31#if !defined(GL_ES_VERSION_2_0)
32
01ca42b2 33 using theBaseClass_t::glIsRenderbuffer;
34 using theBaseClass_t::glBindRenderbuffer;
35 using theBaseClass_t::glDeleteRenderbuffers;
36 using theBaseClass_t::glGenRenderbuffers;
37 using theBaseClass_t::glRenderbufferStorage;
38 using theBaseClass_t::glGetRenderbufferParameteriv;
39 using theBaseClass_t::glIsFramebuffer;
40 using theBaseClass_t::glBindFramebuffer;
41 using theBaseClass_t::glDeleteFramebuffers;
42 using theBaseClass_t::glGenFramebuffers;
43 using theBaseClass_t::glCheckFramebufferStatus;
44 using theBaseClass_t::glFramebufferTexture1D;
45 using theBaseClass_t::glFramebufferTexture2D;
46 using theBaseClass_t::glFramebufferTexture3D;
47 using theBaseClass_t::glFramebufferRenderbuffer;
48 using theBaseClass_t::glGetFramebufferAttachmentParameteriv;
49 using theBaseClass_t::glGenerateMipmap;
50 using theBaseClass_t::glBlitFramebuffer;
51 using theBaseClass_t::glRenderbufferStorageMultisample;
52 using theBaseClass_t::glFramebufferTextureLayer;
53
54public: //! @name GL_ARB_vertex_array_object (added to OpenGL 3.0 core)
55
56 using theBaseClass_t::glBindVertexArray;
57 using theBaseClass_t::glDeleteVertexArrays;
58 using theBaseClass_t::glGenVertexArrays;
59 using theBaseClass_t::glIsVertexArray;
60
61public: //! @name GL_ARB_map_buffer_range (added to OpenGL 3.0 core)
62
63 using theBaseClass_t::glMapBufferRange;
64 using theBaseClass_t::glFlushMappedBufferRange;
65
66public: //! @name OpenGL 3.0 additives to 2.1
67
68 using theBaseClass_t::glColorMaski;
69 using theBaseClass_t::glGetBooleani_v;
70 using theBaseClass_t::glGetIntegeri_v;
71 using theBaseClass_t::glEnablei;
72 using theBaseClass_t::glDisablei;
73 using theBaseClass_t::glIsEnabledi;
74 using theBaseClass_t::glBeginTransformFeedback;
75 using theBaseClass_t::glEndTransformFeedback;
76 using theBaseClass_t::glBindBufferRange;
77 using theBaseClass_t::glBindBufferBase;
78 using theBaseClass_t::glTransformFeedbackVaryings;
79 using theBaseClass_t::glGetTransformFeedbackVarying;
80 using theBaseClass_t::glClampColor;
81 using theBaseClass_t::glBeginConditionalRender;
82 using theBaseClass_t::glEndConditionalRender;
83 using theBaseClass_t::glVertexAttribIPointer;
84 using theBaseClass_t::glGetVertexAttribIiv;
85 using theBaseClass_t::glGetVertexAttribIuiv;
86 using theBaseClass_t::glVertexAttribI1i;
87 using theBaseClass_t::glVertexAttribI2i;
88 using theBaseClass_t::glVertexAttribI3i;
89 using theBaseClass_t::glVertexAttribI4i;
90 using theBaseClass_t::glVertexAttribI1ui;
91 using theBaseClass_t::glVertexAttribI2ui;
92 using theBaseClass_t::glVertexAttribI3ui;
93 using theBaseClass_t::glVertexAttribI4ui;
94 using theBaseClass_t::glVertexAttribI1iv;
95 using theBaseClass_t::glVertexAttribI2iv;
96 using theBaseClass_t::glVertexAttribI3iv;
97 using theBaseClass_t::glVertexAttribI4iv;
98 using theBaseClass_t::glVertexAttribI1uiv;
99 using theBaseClass_t::glVertexAttribI2uiv;
100 using theBaseClass_t::glVertexAttribI3uiv;
101 using theBaseClass_t::glVertexAttribI4uiv;
102 using theBaseClass_t::glVertexAttribI4bv;
103 using theBaseClass_t::glVertexAttribI4sv;
104 using theBaseClass_t::glVertexAttribI4ubv;
105 using theBaseClass_t::glVertexAttribI4usv;
106 using theBaseClass_t::glGetUniformuiv;
107 using theBaseClass_t::glBindFragDataLocation;
108 using theBaseClass_t::glGetFragDataLocation;
109 using theBaseClass_t::glUniform1ui;
110 using theBaseClass_t::glUniform2ui;
111 using theBaseClass_t::glUniform3ui;
112 using theBaseClass_t::glUniform4ui;
113 using theBaseClass_t::glUniform1uiv;
114 using theBaseClass_t::glUniform2uiv;
115 using theBaseClass_t::glUniform3uiv;
116 using theBaseClass_t::glUniform4uiv;
117 using theBaseClass_t::glTexParameterIiv;
118 using theBaseClass_t::glTexParameterIuiv;
119 using theBaseClass_t::glGetTexParameterIiv;
120 using theBaseClass_t::glGetTexParameterIuiv;
121 using theBaseClass_t::glClearBufferiv;
122 using theBaseClass_t::glClearBufferuiv;
123 using theBaseClass_t::glClearBufferfv;
124 using theBaseClass_t::glClearBufferfi;
125 using theBaseClass_t::glGetStringi;
126
ca3c13d1 127#endif
128
01ca42b2 129};
130
131//! OpenGL 3.0 core based on 2.1 version.
132typedef OpenGl_TmplCore30<OpenGl_GlCore21> OpenGl_GlCore30;
133
134//! OpenGL 3.0 without deprecated entry points.
135//! Notice that this doesn't actually corresponds to GL3.0 forward profile!
136typedef OpenGl_TmplCore30<OpenGl_GlCore21Fwd> OpenGl_GlCore30Fwd;
137
138#endif // _OpenGl_GlCore30_Header