0024732: OpenGl_Context - retrieve functions up to GL4.4
[occt.git] / src / OpenGl / OpenGl_GlCore13.hxx
index cc3b6b6..0e14133 100644 (file)
 // Alternatively, this file may be used under the terms of Open CASCADE
 // commercial license or contractual agreement.
 
-#ifndef _OpenGl_GlCore13_H__
-#define _OpenGl_GlCore13_H__
+#ifndef _OpenGl_GlCore13_Header
+#define _OpenGl_GlCore13_Header
 
 #include <OpenGl_GlCore12.hxx>
 
-//! Function list for GL1.3 core functionality.
+//! OpenGL 1.3 without deprecated entry points.
+struct OpenGl_GlCore13Fwd : public OpenGl_GlCore12Fwd
+{
+
+public: //! @name OpenGL 1.3 additives to 1.2
+
+  using OpenGl_GlFunctions::glActiveTexture;
+  using OpenGl_GlFunctions::glSampleCoverage;
+  using OpenGl_GlFunctions::glCompressedTexImage3D;
+  using OpenGl_GlFunctions::glCompressedTexImage2D;
+  using OpenGl_GlFunctions::glCompressedTexImage1D;
+  using OpenGl_GlFunctions::glCompressedTexSubImage3D;
+  using OpenGl_GlFunctions::glCompressedTexSubImage2D;
+  using OpenGl_GlFunctions::glCompressedTexSubImage1D;
+  using OpenGl_GlFunctions::glGetCompressedTexImage;
+
+};
+
+//! OpenGL 1.3 core based on 1.2 version.
 struct OpenGl_GlCore13 : public OpenGl_GlCore12
 {
 
-  PFNGLACTIVETEXTUREPROC           glActiveTexture;
-  PFNGLSAMPLECOVERAGEPROC          glSampleCoverage;
-  PFNGLCOMPRESSEDTEXIMAGE3DPROC    glCompressedTexImage3D;
-  PFNGLCOMPRESSEDTEXIMAGE2DPROC    glCompressedTexImage2D;
-  PFNGLCOMPRESSEDTEXIMAGE1DPROC    glCompressedTexImage1D;
-  PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
-  PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D;
-  PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D;
-  PFNGLGETCOMPRESSEDTEXIMAGEPROC   glGetCompressedTexImage;
-
-  // deprecated functions
-
-  PFNGLCLIENTACTIVETEXTUREPROC glClientActiveTexture;
-  PFNGLMULTITEXCOORD1DPROC  glMultiTexCoord1d;
-  PFNGLMULTITEXCOORD1DVPROC glMultiTexCoord1dv;
-  PFNGLMULTITEXCOORD1FPROC  glMultiTexCoord1f;
-  PFNGLMULTITEXCOORD1FVPROC glMultiTexCoord1fv;
-  PFNGLMULTITEXCOORD1IPROC  glMultiTexCoord1i;
-  PFNGLMULTITEXCOORD1IVPROC glMultiTexCoord1iv;
-  PFNGLMULTITEXCOORD1SPROC  glMultiTexCoord1s;
-  PFNGLMULTITEXCOORD1SVPROC glMultiTexCoord1sv;
-  PFNGLMULTITEXCOORD2DPROC  glMultiTexCoord2d;
-  PFNGLMULTITEXCOORD2DVPROC glMultiTexCoord2dv;
-  PFNGLMULTITEXCOORD2FPROC  glMultiTexCoord2f;
-  PFNGLMULTITEXCOORD2FVPROC glMultiTexCoord2fv;
-  PFNGLMULTITEXCOORD2IPROC  glMultiTexCoord2i;
-  PFNGLMULTITEXCOORD2IVPROC glMultiTexCoord2iv;
-  PFNGLMULTITEXCOORD2SPROC  glMultiTexCoord2s;
-  PFNGLMULTITEXCOORD2SVPROC glMultiTexCoord2sv;
-  PFNGLMULTITEXCOORD3DPROC  glMultiTexCoord3d;
-  PFNGLMULTITEXCOORD3DVPROC glMultiTexCoord3dv;
-  PFNGLMULTITEXCOORD3FPROC  glMultiTexCoord3f;
-  PFNGLMULTITEXCOORD3FVPROC glMultiTexCoord3fv;
-  PFNGLMULTITEXCOORD3IPROC  glMultiTexCoord3i;
-  PFNGLMULTITEXCOORD3IVPROC glMultiTexCoord3iv;
-  PFNGLMULTITEXCOORD3SPROC  glMultiTexCoord3s;
-  PFNGLMULTITEXCOORD3SVPROC glMultiTexCoord3sv;
-  PFNGLMULTITEXCOORD4DPROC  glMultiTexCoord4d;
-  PFNGLMULTITEXCOORD4DVPROC glMultiTexCoord4dv;
-  PFNGLMULTITEXCOORD4FPROC  glMultiTexCoord4f;
-  PFNGLMULTITEXCOORD4FVPROC glMultiTexCoord4fv;
-  PFNGLMULTITEXCOORD4IPROC  glMultiTexCoord4i;
-  PFNGLMULTITEXCOORD4IVPROC glMultiTexCoord4iv;
-  PFNGLMULTITEXCOORD4SPROC  glMultiTexCoord4s;
-  PFNGLMULTITEXCOORD4SVPROC glMultiTexCoord4sv;
-  PFNGLLOADTRANSPOSEMATRIXFPROC glLoadTransposeMatrixf;
-  PFNGLLOADTRANSPOSEMATRIXDPROC glLoadTransposeMatrixd;
-  PFNGLMULTTRANSPOSEMATRIXFPROC glMultTransposeMatrixf;
-  PFNGLMULTTRANSPOSEMATRIXDPROC glMultTransposeMatrixd;
+public: //! @name OpenGL 1.3 additives to 1.2
+
+  using OpenGl_GlFunctions::glActiveTexture;
+  using OpenGl_GlFunctions::glSampleCoverage;
+  using OpenGl_GlFunctions::glCompressedTexImage3D;
+  using OpenGl_GlFunctions::glCompressedTexImage2D;
+  using OpenGl_GlFunctions::glCompressedTexImage1D;
+  using OpenGl_GlFunctions::glCompressedTexSubImage3D;
+  using OpenGl_GlFunctions::glCompressedTexSubImage2D;
+  using OpenGl_GlFunctions::glCompressedTexSubImage1D;
+  using OpenGl_GlFunctions::glGetCompressedTexImage;
+
+public: //! @name Begin/End primitive specification (removed since 3.1)
+
+  using OpenGl_GlFunctions::glMultiTexCoord1d;
+  using OpenGl_GlFunctions::glMultiTexCoord1dv;
+  using OpenGl_GlFunctions::glMultiTexCoord1f;
+  using OpenGl_GlFunctions::glMultiTexCoord1fv;
+  using OpenGl_GlFunctions::glMultiTexCoord1i;
+  using OpenGl_GlFunctions::glMultiTexCoord1iv;
+  using OpenGl_GlFunctions::glMultiTexCoord1s;
+  using OpenGl_GlFunctions::glMultiTexCoord1sv;
+  using OpenGl_GlFunctions::glMultiTexCoord2d;
+  using OpenGl_GlFunctions::glMultiTexCoord2dv;
+  using OpenGl_GlFunctions::glMultiTexCoord2f;
+  using OpenGl_GlFunctions::glMultiTexCoord2fv;
+  using OpenGl_GlFunctions::glMultiTexCoord2i;
+  using OpenGl_GlFunctions::glMultiTexCoord2iv;
+  using OpenGl_GlFunctions::glMultiTexCoord2s;
+  using OpenGl_GlFunctions::glMultiTexCoord2sv;
+  using OpenGl_GlFunctions::glMultiTexCoord3d;
+  using OpenGl_GlFunctions::glMultiTexCoord3dv;
+  using OpenGl_GlFunctions::glMultiTexCoord3f;
+  using OpenGl_GlFunctions::glMultiTexCoord3fv;
+  using OpenGl_GlFunctions::glMultiTexCoord3i;
+  using OpenGl_GlFunctions::glMultiTexCoord3iv;
+  using OpenGl_GlFunctions::glMultiTexCoord3s;
+  using OpenGl_GlFunctions::glMultiTexCoord3sv;
+  using OpenGl_GlFunctions::glMultiTexCoord4d;
+  using OpenGl_GlFunctions::glMultiTexCoord4dv;
+  using OpenGl_GlFunctions::glMultiTexCoord4f;
+  using OpenGl_GlFunctions::glMultiTexCoord4fv;
+  using OpenGl_GlFunctions::glMultiTexCoord4i;
+  using OpenGl_GlFunctions::glMultiTexCoord4iv;
+  using OpenGl_GlFunctions::glMultiTexCoord4s;
+  using OpenGl_GlFunctions::glMultiTexCoord4sv;
+
+  using OpenGl_GlFunctions::glClientActiveTexture;
+
+public: //! @name Matrix operations (removed since 3.1)
+
+  using OpenGl_GlFunctions::glLoadTransposeMatrixf;
+  using OpenGl_GlFunctions::glLoadTransposeMatrixd;
+  using OpenGl_GlFunctions::glMultTransposeMatrixf;
+  using OpenGl_GlFunctions::glMultTransposeMatrixd;
 
 };
 
-#endif // _OpenGl_GlCore13_H__
+#endif // _OpenGl_GlCore13_Header