Use GLAD to set up GL function pointers
This commit is contained in:
parent
f384bcf8af
commit
cc33fdd4fd
25 changed files with 4747 additions and 24560 deletions
32
external/gl-headers/LICENSE.ANGLE
vendored
32
external/gl-headers/LICENSE.ANGLE
vendored
|
@ -1,32 +0,0 @@
|
|||
// Copyright 2018 The ANGLE Project Authors.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without
|
||||
// modification, are permitted provided that the following conditions
|
||||
// are met:
|
||||
//
|
||||
// Redistributions of source code must retain the above copyright
|
||||
// notice, this list of conditions and the following disclaimer.
|
||||
//
|
||||
// Redistributions in binary form must reproduce the above
|
||||
// copyright notice, this list of conditions and the following
|
||||
// disclaimer in the documentation and/or other materials provided
|
||||
// with the distribution.
|
||||
//
|
||||
// Neither the name of TransGaming Inc., Google Inc., 3DLabs Inc.
|
||||
// Ltd., nor the names of their contributors may be used to endorse
|
||||
// or promote products derived from this software without specific
|
||||
// prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
// COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
// POSSIBILITY OF SUCH DAMAGE.
|
3619
external/gl-headers/gl2ext.h
vendored
3619
external/gl-headers/gl2ext.h
vendored
File diff suppressed because it is too large
Load diff
551
external/gl-headers/gl2ext_angle.h
vendored
551
external/gl-headers/gl2ext_angle.h
vendored
|
@ -1,551 +0,0 @@
|
|||
//
|
||||
// Copyright (c) 2017 The ANGLE Project Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
//
|
||||
// gl2ext_angle.h: ANGLE modifications to the gl2ext.h header file.
|
||||
// Currently we don't include this file directly, we patch gl2ext.h
|
||||
// to include it implicitly so it is visible throughout our code.
|
||||
|
||||
#ifndef INCLUDE_GLES2_GL2EXT_ANGLE_H_
|
||||
#define INCLUDE_GLES2_GL2EXT_ANGLE_H_
|
||||
|
||||
// clang-format off
|
||||
|
||||
#ifndef GL_ANGLE_client_arrays
|
||||
#define GL_ANGLE_client_arrays 1
|
||||
#define GL_CLIENT_ARRAYS_ANGLE 0x93AA
|
||||
#endif /* GL_ANGLE_client_arrays */
|
||||
|
||||
#ifndef GL_ANGLE_request_extension
|
||||
#define GL_ANGLE_request_extension 1
|
||||
#define GL_REQUESTABLE_EXTENSIONS_ANGLE 0x93A8
|
||||
#define GL_NUM_REQUESTABLE_EXTENSIONS_ANGLE 0x93A8
|
||||
typedef void (GL_APIENTRYP PFNGLREQUESTEXTENSIONANGLEPROC) (const GLchar *name);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glRequestExtensionANGLE (const GLchar *name);
|
||||
#endif
|
||||
#endif /* GL_ANGLE_webgl_compatibility */
|
||||
|
||||
#ifndef GL_ANGLE_robust_resource_initialization
|
||||
#define GL_ANGLE_robust_resource_initialization 1
|
||||
#define GL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 0x93AB
|
||||
#endif /* GL_ANGLE_robust_resource_initialization */
|
||||
|
||||
#ifndef GL_CHROMIUM_framebuffer_mixed_samples
|
||||
#define GL_CHROMIUM_frambuffer_mixed_samples 1
|
||||
#define GL_COVERAGE_MODULATION_CHROMIUM 0x9332
|
||||
typedef void (GL_APIENTRYP PFNGLCOVERAGEMODULATIONCHROMIUMPROC) (GLenum components);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glCoverageModulationCHROMIUM(GLenum components);
|
||||
#endif
|
||||
#endif /* GL_CHROMIUM_framebuffer_mixed_samples */
|
||||
|
||||
#ifndef GL_CHROMIUM_bind_generates_resource
|
||||
#define GL_CHROMIUM_bind_generates_resource 1
|
||||
#define GL_BIND_GENERATES_RESOURCE_CHROMIUM 0x9244
|
||||
#endif /* GL_CHROMIUM_bind_generates_resource */
|
||||
|
||||
// needed by NV_path_rendering (and thus CHROMIUM_path_rendering)
|
||||
// but CHROMIUM_path_rendering only needs MatrixLoadfEXT, MatrixLoadIdentityEXT
|
||||
#ifndef GL_EXT_direct_state_access
|
||||
#define GL_EXT_direct_state_access 1
|
||||
typedef void(GL_APIENTRYP PFNGLMATRIXLOADFEXTPROC)(GLenum matrixMode, const GLfloat *m);
|
||||
typedef void(GL_APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC)(GLenum matrixMode);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glMatrixLoadfEXT(GLenum matrixMode, const GLfloat *m);
|
||||
GL_APICALL void GL_APIENTRY glMatrixLoadIdentityEXT(GLenum matrixMode);
|
||||
#endif
|
||||
#endif /* GL_EXT_direct_state_access */
|
||||
|
||||
#ifndef GL_CHROMIUM_path_rendering
|
||||
#define GL_CHROMIUM_path_rendering 1
|
||||
#define GL_PATH_MODELVIEW_CHROMIUM 0x1700
|
||||
#define GL_PATH_PROJECTION_CHROMIUM 0x1701
|
||||
#define GL_CLOSE_PATH_CHROMIUM 0x00
|
||||
#define GL_MOVE_TO_CHROMIUM 0x02
|
||||
#define GL_LINE_TO_CHROMIUM 0x04
|
||||
#define GL_QUADRATIC_CURVE_TO_CHROMIUM 0x0A
|
||||
#define GL_CUBIC_CURVE_TO_CHROMIUM 0x0C
|
||||
#define GL_CONIC_CURVE_TO_CHROMIUM 0x1A
|
||||
#define GL_PATH_MODELVIEW_MATRIX_CHROMIUM 0x0BA6
|
||||
#define GL_PATH_PROJECTION_MATRIX_CHROMIUM 0x0BA7
|
||||
#define GL_PATH_STROKE_WIDTH_CHROMIUM 0x9075
|
||||
#define GL_PATH_END_CAPS_CHROMIUM 0x9076
|
||||
#define GL_PATH_JOIN_STYLE_CHROMIUM 0x9079
|
||||
#define GL_PATH_MITER_LIMIT_CHROMIUM 0x907a
|
||||
#define GL_PATH_STROKE_BOUND_CHROMIUM 0x9086
|
||||
#define GL_FLAT_CHROMIUM 0x1D00
|
||||
#define GL_SQUARE_CHROMIUM 0x90a3
|
||||
#define GL_ROUND_CHROMIUM 0x90a4
|
||||
#define GL_BEVEL_CHROMIUM 0x90A6
|
||||
#define GL_MITER_REVERT_CHROMIUM 0x90A7
|
||||
#define GL_COUNT_UP_CHROMIUM 0x9088
|
||||
#define GL_COUNT_DOWN_CHROMIUM 0x9089
|
||||
#define GL_CONVEX_HULL_CHROMIUM 0x908B
|
||||
#define GL_BOUNDING_BOX_CHROMIUM 0x908D
|
||||
#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM 0x909C
|
||||
#define GL_EYE_LINEAR_CHROMIUM 0x2400
|
||||
#define GL_OBJECT_LINEAR_CHROMIUM 0x2401
|
||||
#define GL_CONSTANT_CHROMIUM 0x8576
|
||||
#define GL_TRANSLATE_X_CHROMIUM 0x908E
|
||||
#define GL_TRANSLATE_Y_CHROMIUM 0x908F
|
||||
#define GL_TRANSLATE_2D_CHROMIUM 0x9090
|
||||
#define GL_TRANSLATE_3D_CHROMIUM 0x9091
|
||||
#define GL_AFFINE_2D_CHROMIUM 0x9092
|
||||
#define GL_AFFINE_3D_CHROMIUM 0x9094
|
||||
#define GL_TRANSPOSE_AFFINE_2D_CHROMIUM 0x9096
|
||||
#define GL_TRANSPOSE_AFFINE_3D_CHROMIUM 0x9098
|
||||
typedef void(GL_APIENTRYP PFNGLMATRIXLOADFCHROMIUMPROC)(GLenum matrixMode, const GLfloat *m);
|
||||
typedef void(GL_APIENTRYP PFNGLMATRIXLOADIDENTITYCHROMIUMPROC)(GLenum matrixMode);
|
||||
typedef GLuint(GL_APIENTRYP PFNGLGENPATHSCHROMIUMPROC)(GLsizei range);
|
||||
typedef void(GL_APIENTRYP PFNGLDELETEPATHSCHROMIUMPROC)(GLuint path, GLsizei range);
|
||||
typedef GLboolean(GL_APIENTRYP PFNGLISPATHCHROMIUMPROC)(GLuint path);
|
||||
typedef void(GL_APIENTRYP PFNGLPATHCOMMANDSCHROMIUMPROC)(GLuint path,
|
||||
GLsizei numCommands,
|
||||
const GLubyte *commands,
|
||||
GLsizei numCoords,
|
||||
GLenum coordType,
|
||||
const void *coords);
|
||||
typedef void(GL_APIENTRYP PFNGLPATHPARAMETERICHROMIUMPROC)(GLuint path, GLenum pname, GLint value);
|
||||
typedef void(GL_APIENTRYP PFNGLPATHPARAMETERFCHROMIUMPROC)(GLuint path,
|
||||
GLenum pname,
|
||||
GLfloat value);
|
||||
typedef void(GL_APIENTRYP PFNGLGETPATHPARAMETERIVCHROMIUMPROC)(GLuint path,
|
||||
GLenum pname,
|
||||
GLint *value);
|
||||
typedef void(GL_APIENTRYP PFNGLGETPATHPARAMETERFVCHROMIUMPROC)(GLuint path,
|
||||
GLenum pname,
|
||||
GLfloat *value);
|
||||
typedef void(GL_APIENTRYP PFNGLPATHSTENCILFUNCCHROMIUMPROC)(GLenum func, GLint ref, GLuint mask);
|
||||
typedef void(GL_APIENTRYP PFNGLSTENCILFILLPATHCHROMIUMPROC)(GLuint path,
|
||||
GLenum fillMode,
|
||||
GLuint mask);
|
||||
typedef void(GL_APIENTRYP PFNGLSTENCILSTROKEPATHCHROMIUMPROC)(GLuint path,
|
||||
GLint reference,
|
||||
GLuint mask);
|
||||
typedef void(GL_APIENTRYP PFNGLCOVERFILLPATHCHROMIUMPROC)(GLuint path, GLenum coverMode);
|
||||
typedef void(GL_APIENTRYP PFNGLCOVERSTROKEPATHCHROMIUMPROC)(GLuint path, GLenum coverMode);
|
||||
typedef void(GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHCHROMIUMPROC)(GLuint path,
|
||||
GLenum fillMode,
|
||||
GLuint mask,
|
||||
GLenum coverMode);
|
||||
typedef void(GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHCHROMIUMPROC)(GLuint path,
|
||||
GLint reference,
|
||||
GLuint mask,
|
||||
GLenum coverMode);
|
||||
typedef void(GL_APIENTRYP PFNGLCOVERFILLPATHINSTANCEDCHROMIUMPROC)(GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLenum coverMode,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
typedef void(GL_APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDCHROMIUMPROC)(
|
||||
GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLenum coverMode,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
typedef void(GL_APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDCHROMIUMPROC)(
|
||||
GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLenum fillMode,
|
||||
GLuint mask,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
typedef void(GL_APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDCHROMIUMPROC)(
|
||||
GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLint reference,
|
||||
GLuint mask,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
typedef void(GL_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDCHROMIUMPROC)(
|
||||
GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLenum fillMode,
|
||||
GLuint mask,
|
||||
GLenum coverMode,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
typedef void(GL_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDCHROMIUMPROC)(
|
||||
GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLint reference,
|
||||
GLuint mask,
|
||||
GLenum coverMode,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
|
||||
typedef void(GL_APIENTRY PFNGLBINDFRAGMENTINPUTLOCATIONCHROMIUMPROC)(GLuint program,
|
||||
GLint location,
|
||||
const GLchar *name);
|
||||
typedef void(GL_APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENCHROMIUMPROC)(GLuint program,
|
||||
GLint location,
|
||||
GLenum genMode,
|
||||
GLint components,
|
||||
const GLfloat *coeffs);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glMatrixLoadfCHROMIUM(GLenum matrixMode, const GLfloat *m);
|
||||
GL_APICALL void GL_APIENTRY glMatrixLoadIdentityCHROMIUM(GLenum matrixMode);
|
||||
GL_APICALL GLuint GL_APIENTRY glGenPathsCHROMIUM(GLsizei range);
|
||||
GL_APICALL void GL_APIENTRY glDeletePathsCHROMIUM(GLuint path, GLsizei range);
|
||||
GL_APICALL GLboolean GL_APIENTRY glIsPathCHROMIUM(GLuint path);
|
||||
GL_APICALL void GL_APIENTRY glPathCommandsCHROMIUM(GLuint path,
|
||||
GLsizei numCommands,
|
||||
const GLubyte *commands,
|
||||
GLsizei numCoords,
|
||||
GLenum coordType,
|
||||
const void *coords);
|
||||
GL_APICALL void GL_APIENTRY glPathParameteriCHROMIUM(GLuint path, GLenum pname, GLint value);
|
||||
GL_APICALL void GL_APIENTRY glPathParameterfCHROMIUM(GLuint path, GLenum pname, GLfloat value);
|
||||
GL_APICALL void GL_APIENTRY glGetPathParameterivCHROMIUM(GLuint path, GLenum pname, GLint *value);
|
||||
GL_APICALL void GL_APIENTRY glGetPathParameterfvCHROMIUM(GLuint path, GLenum pname, GLfloat *value);
|
||||
GL_APICALL void GL_APIENTRY glPathStencilFuncCHROMIUM(GLenum func, GLint ref, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilFillPathCHROMIUM(GLuint path, GLenum fillMode, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glStencilStrokePathCHROMIUM(GLuint path, GLint reference, GLuint mask);
|
||||
GL_APICALL void GL_APIENTRY glCoverFillPathCHROMIUM(GLuint path, GLenum coverMode);
|
||||
GL_APICALL void GL_APIENTRY glCoverStrokePathCHROMIUM(GLuint path, GLenum coverMode);
|
||||
GL_APICALL void GL_APIENTRY glStencilThenCoverFillPathCHROMIUM(GLuint path,
|
||||
GLenum fillMode,
|
||||
GLuint mask,
|
||||
GLenum coverMode);
|
||||
GL_APICALL void GL_APIENTRY glStencilThenCoverStrokePathCHROMIUM(GLuint path,
|
||||
GLint reference,
|
||||
GLuint mask,
|
||||
GLenum coverMode);
|
||||
GL_APICALL void GL_APIENTRY glCoverFillPathInstancedCHROMIUM(GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLenum coverMode,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
GL_APICALL void GL_APIENTRY glCoverStrokePathInstancedCHROMIUM(GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLenum coverMode,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
GL_APICALL void GL_APIENTRY glStencilFillPathInstancedCHROMIUM(GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLenum fillMode,
|
||||
GLuint mask,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
GL_APICALL void GL_APIENTRY glStencilStrokePathInstancedCHROMIUM(GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLint reference,
|
||||
GLuint mask,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
GL_APICALL void GL_APIENTRY
|
||||
glStencilThenCoverFillPathInstancedCHROMIUM(GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLenum fillMode,
|
||||
GLuint mask,
|
||||
GLenum coverMode,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
|
||||
GL_APICALL void GL_APIENTRY
|
||||
glStencilThenCoverStrokePathInstancedCHROMIUM(GLsizei numPaths,
|
||||
GLenum pathNameType,
|
||||
const void *paths,
|
||||
GLuint pathBase,
|
||||
GLint reference,
|
||||
GLuint mask,
|
||||
GLenum coverMode,
|
||||
GLenum transformType,
|
||||
const GLfloat *transformValues);
|
||||
|
||||
GL_APICALL void GL_APIENTRY glBindFragmentInputLocationCHROMIUM(GLuint program,
|
||||
GLint location,
|
||||
const GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glProgramPathFragmentInputGenCHROMIUM(GLuint program,
|
||||
GLint location,
|
||||
GLenum genMode,
|
||||
GLint components,
|
||||
const GLfloat *coeffs);
|
||||
|
||||
#endif
|
||||
#endif /* GL_CHROMIUM_path_rendering */
|
||||
|
||||
#ifndef GL_CHROMIUM_copy_texture
|
||||
#define GL_CHROMIUM_copy_texture 1
|
||||
typedef void(GL_APIENTRYP PFNGLCOPYTEXTURECHROMIUMPROC)(GLuint sourceId,
|
||||
GLint sourceLevel,
|
||||
GLenum destTarget,
|
||||
GLuint destId,
|
||||
GLint destLevel,
|
||||
GLint internalFormat,
|
||||
GLenum destType,
|
||||
GLboolean unpackFlipY,
|
||||
GLboolean unpackPremultiplyAlpha,
|
||||
GLboolean unpackUnmultiplyAlpha);
|
||||
typedef void(GL_APIENTRYP PFNGLCOPYSUBTEXTURECHROMIUMPROC)(GLuint sourceId,
|
||||
GLint sourceLevel,
|
||||
GLenum destTarget,
|
||||
GLuint destId,
|
||||
GLint destLevel,
|
||||
GLint xoffset,
|
||||
GLint yoffset,
|
||||
GLint x,
|
||||
GLint y,
|
||||
GLsizei width,
|
||||
GLsizei height,
|
||||
GLboolean unpackFlipY,
|
||||
GLboolean unpackPremultiplyAlpha,
|
||||
GLboolean unpackUnmultiplyAlpha);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glCopyTextureCHROMIUM(GLuint sourceId,
|
||||
GLint sourceLevel,
|
||||
GLenum destTarget,
|
||||
GLuint destId,
|
||||
GLint destLevel,
|
||||
GLint internalFormat,
|
||||
GLenum destType,
|
||||
GLboolean unpackFlipY,
|
||||
GLboolean unpackPremultiplyAlpha,
|
||||
GLboolean unpackUnmultiplyAlpha);
|
||||
GL_APICALL void GL_APIENTRY glCopySubTextureCHROMIUM(GLuint sourceId,
|
||||
GLint sourceLevel,
|
||||
GLenum destTarget,
|
||||
GLuint destId,
|
||||
GLint destLevel,
|
||||
GLint xoffset,
|
||||
GLint yoffset,
|
||||
GLint x,
|
||||
GLint y,
|
||||
GLsizei width,
|
||||
GLsizei height,
|
||||
GLboolean unpackFlipY,
|
||||
GLboolean unpackPremultiplyAlpha,
|
||||
GLboolean unpackUnmultiplyAlpha);
|
||||
#endif
|
||||
#endif /* GL_CHROMIUM_copy_texture */
|
||||
|
||||
#ifndef GL_CHROMIUM_compressed_copy_texture
|
||||
#define GL_CHROMIUM_compressed_copy_texture 1
|
||||
typedef void(GL_APIENTRYP PFNGLCOMPRESSEDCOPYTEXTURECHROMIUMPROC)(GLuint sourceId, GLuint destId);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glCompressedCopyTextureCHROMIUM(GLuint sourceId, GLuint destId);
|
||||
#endif
|
||||
#endif /* GL_CHROMIUM_compressed_copy_texture */
|
||||
|
||||
#ifndef GL_CHROMIUM_sync_query
|
||||
#define GL_CHROMIUM_sync_query 1
|
||||
#define GL_COMMANDS_COMPLETED_CHROMIUM 0x84F7
|
||||
#endif /* GL_CHROMIUM_sync_query */
|
||||
|
||||
#ifndef GL_EXT_texture_compression_s3tc_srgb
|
||||
#define GL_EXT_texture_compression_s3tc_srgb 1
|
||||
#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
|
||||
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
|
||||
#endif /* GL_EXT_texture_compression_s3tc_srgb */
|
||||
|
||||
#ifndef GL_ANGLE_lossy_etc_decode
|
||||
#define GL_ANGLE_lossy_etc_decode 1
|
||||
#define GL_ETC1_RGB8_LOSSY_DECODE_ANGLE 0x9690
|
||||
#define GL_COMPRESSED_R11_LOSSY_DECODE_EAC_ANGLE 0x9691
|
||||
#define GL_COMPRESSED_SIGNED_R11_LOSSY_DECODE_EAC_ANGLE 0x9692
|
||||
#define GL_COMPRESSED_RG11_LOSSY_DECODE_EAC_ANGLE 0x9693
|
||||
#define GL_COMPRESSED_SIGNED_RG11_LOSSY_DECODE_EAC_ANGLE 0x9694
|
||||
#define GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE 0x9695
|
||||
#define GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE 0x9696
|
||||
#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE 0x9697
|
||||
#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE 0x9698
|
||||
#define GL_COMPRESSED_RGBA8_LOSSY_DECODE_ETC2_EAC_ANGLE 0x9699
|
||||
#define GL_COMPRESSED_SRGB8_ALPHA8_LOSSY_DECODE_ETC2_EAC_ANGLE 0x969A
|
||||
#endif /* GL_ANGLE_lossy_etc_decode */
|
||||
|
||||
#ifndef GL_ANGLE_robust_client_memory
|
||||
#define GL_ANGLE_robust_client_memory 1
|
||||
typedef void (GL_APIENTRYP PFNGLGETBOOLEANVROBUSTANGLE) (GLenum pname, GLsizei bufSize, GLsizei *length, GLboolean *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFLOATVROBUSTANGLE) (GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVROBUSTANGLE) (GLenum target, GLenum attachment, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGERVROBUSTANGLE) (GLenum pname, GLsizei bufSize, GLsizei *length, GLint *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMIVROBUSTANGLE) (GLuint program, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSHADERIVROBUSTANGLE) (GLuint shader, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERFVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMFVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMIVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBFVROBUSTANGLE) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIVROBUSTANGLE) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVROBUSTANGLE) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, void **pointer);
|
||||
typedef void (GL_APIENTRYP PFNGLREADPIXELSROBUSTANGLE) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, GLsizei *columns, GLsizei *rows, void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXIMAGE2DROBUSTANGLE) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERFVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, const GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE2DROBUSTANGLE) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DROBUSTANGLE) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DROBUSTANGLE) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, const void *pixels);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DROBUSTANGLE) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLsizei bufSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DROBUSTANGLE) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLsizei bufSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DROBUSTANGLE) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLsizei bufSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DROBUSTANGLE) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLsizei bufSize, const void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETQUERYIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUIVROBUSTANGLE) (GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, void **params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGERI_VROBUSTANGLE) (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint *data);
|
||||
typedef void (GL_APIENTRYP PFNGETINTERNALFORMATIVROBUSTANGLE) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIIVROBUSTANGLE) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETVERTEXATTRIBIUIVROBUSTANGLE) (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETUNIFORMUIVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVROBUSTANGLE) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGER64VROBUSTANGLE) (GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETINTEGER64I_VROBUSTANGLE) (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint64 *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBUFFERPARAMETERI64VROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERFVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLfloat *param);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERFVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPROGRAMINTERFACEIVROBUSTANGLE) (GLuint program, GLenum programInterface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETBOOLEANI_VROBUSTANGLE) (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLboolean *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETMULTISAMPLEFVROBUSTANGLE) (GLenum pname, GLuint index, GLsizei bufSize, GLsizei *length, GLfloat *val);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERIVROBUSTANGLE) (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXLEVELPARAMETERFVROBUSTANGLE) (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETPOINTERVROBUSTANGLEROBUSTANGLE) (GLenum pname, GLsizei bufSize, GLsizei *length, void **params);
|
||||
typedef void (GL_APIENTRYP PFNGLREADNPIXELSROBUSTANGLE) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, GLsizei *columns, GLsizei *rows, void *data);
|
||||
typedef void (GL_APIENTRYP PFNGLGETNUNIFORMFVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETNUNIFORMIVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETNUNIFORMUIVROBUSTANGLE) (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLTEXPARAMETERIUIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, const GLuint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERIUIVROBUSTANGLE) (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param);
|
||||
typedef void (GL_APIENTRYP PFNGLSAMPLERPARAMETERIUIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, const GLuint *param);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVROBUSTANGLE) (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTIVROBUSTANGLE)(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTI64VROBUSTANGLE)(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params);
|
||||
typedef void (GL_APIENTRYP PFNGLGETQUERYOBJECTUI64VROBUSTANGLE)(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint64 *params);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glGetBooleanvRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLboolean *data);
|
||||
GL_APICALL void GL_APIENTRY glGetBufferParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetFloatvRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *data);
|
||||
GL_APICALL void GL_APIENTRY glGetFramebufferAttachmentParameterivRobustANGLE (GLenum target, GLenum attachment, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetIntegervRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLint *data);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramivRobustANGLE (GLuint program, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetRenderbufferParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetShaderivRobustANGLE (GLuint shader, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameterfvRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformfvRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribfvRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribivRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribPointervRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, void **pointer);
|
||||
GL_APICALL void GL_APIENTRY glReadPixelsRobustANGLE (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, GLsizei *columns, GLsizei *rows, void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexImage2DRobustANGLE (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterfvRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glTexSubImage2DRobustANGLE (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexImage3DRobustANGLE (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLsizei bufSize, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexSubImage3DRobustANGLE (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexImage2DRobustANGLE(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLsizei bufSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexSubImage2DRobustANGLE(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLsizei bufSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexImage3DRobustANGLE(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLsizei bufSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DRobustANGLE(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLsizei bufSize, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glGetQueryivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetQueryObjectuivRobustANGLE (GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetBufferPointervRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, void **params);
|
||||
GL_APICALL void GL_APIENTRY glGetIntegeri_vRobustANGLE (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint *data);
|
||||
GL_APICALL void GL_APIENTRY glGetInternalformativRobustANGLE (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribIivRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetVertexAttribIuivRobustANGLE (GLuint index, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetUniformuivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetActiveUniformBlockivRobustANGLE (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetInteger64vRobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *data);
|
||||
GL_APICALL void GL_APIENTRY glGetInteger64i_vRobustANGLE (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLint64 *data);
|
||||
GL_APICALL void GL_APIENTRY glGetBufferParameteri64vRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params);
|
||||
GL_APICALL void GL_APIENTRY glSamplerParameterivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param);
|
||||
GL_APICALL void GL_APIENTRY glSamplerParameterfvRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLfloat *param);
|
||||
GL_APICALL void GL_APIENTRY glGetSamplerParameterivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetSamplerParameterfvRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetFramebufferParameterivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetProgramInterfaceivRobustANGLE (GLuint program, GLenum programInterface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetBooleani_vRobustANGLE (GLenum target, GLuint index, GLsizei bufSize, GLsizei *length, GLboolean *data);
|
||||
GL_APICALL void GL_APIENTRY glGetMultisamplefvRobustANGLE (GLenum pname, GLuint index, GLsizei bufSize, GLsizei *length, GLfloat *val);
|
||||
GL_APICALL void GL_APIENTRY glGetTexLevelParameterivRobustANGLE (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetTexLevelParameterfvRobustANGLE (GLenum target, GLint level, GLenum pname, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetPointervRobustANGLERobustANGLE (GLenum pname, GLsizei bufSize, GLsizei *length, void **params);
|
||||
GL_APICALL void GL_APIENTRY glReadnPixelsRobustANGLE (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLsizei *length, GLsizei *columns, GLsizei *rows, void *data);
|
||||
GL_APICALL void GL_APIENTRY glGetnUniformfvRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLfloat *params);
|
||||
GL_APICALL void GL_APIENTRY glGetnUniformivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetnUniformuivRobustANGLE (GLuint program, GLint location, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterIivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterIuivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, const GLuint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameterIivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetTexParameterIuivRobustANGLE (GLenum target, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
GL_APICALL void GL_APIENTRY glSamplerParameterIivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLint *param);
|
||||
GL_APICALL void GL_APIENTRY glSamplerParameterIuivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, const GLuint *param);
|
||||
GL_APICALL void GL_APIENTRY glGetSamplerParameterIivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetSamplerParameterIuivRobustANGLE (GLuint sampler, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetQueryObjectivRobustANGLE(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *params);
|
||||
GL_APICALL void GL_APIENTRY glGetQueryObjecti64vRobustANGLE(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLint64 *params);
|
||||
GL_APICALL void GL_APIENTRY glGetQueryObjectui64vRobustANGLE(GLuint id, GLenum pname, GLsizei bufSize, GLsizei *length, GLuint64 *params);
|
||||
#endif
|
||||
#endif /* GL_ANGLE_robust_client_memory */
|
||||
|
||||
#ifndef GL_ANGLE_program_cache_control
|
||||
#define GL_ANGLE_program_cache_control 1
|
||||
#define GL_PROGRAM_CACHE_ENABLED_ANGLE 0x93AC
|
||||
#endif /* GL_ANGLE_program_cache_control */
|
||||
|
||||
#ifndef GL_ANGLE_multiview
|
||||
#define GL_ANGLE_multiview 1
|
||||
// The next four enums coincide with the enums introduced by the GL_OVR_multiview extension and use the values reserved by that extension.
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_ANGLE 0x9630
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_ANGLE 0x9632
|
||||
#define GL_MAX_VIEWS_ANGLE 0x9631
|
||||
#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_ANGLE 0x9633
|
||||
// The next four enums are reserved specifically for ANGLE.
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_VIEWPORT_OFFSETS_ANGLE 0x969B
|
||||
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_MULTIVIEW_LAYOUT_ANGLE 0x969C
|
||||
#define GL_FRAMEBUFFER_MULTIVIEW_SIDE_BY_SIDE_ANGLE 0x969D
|
||||
#define GL_FRAMEBUFFER_MULTIVIEW_LAYERED_ANGLE 0x969E
|
||||
typedef void(GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWLAYEREDANGLE)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
|
||||
typedef void(GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREMULTIVIEWSIDEBYSIDEANGLE)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei numViews, const GLint *viewportOffsets);
|
||||
#ifdef GL_GLEXT_PROTOTYPES
|
||||
GL_APICALL void GL_APIENTRY glFramebufferTextureMultiviewLayeredANGLE(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
|
||||
GL_APICALL void GL_APIENTRY glFramebufferTextureMultiviewSideBySideANGLE(GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei numViews, const GLint *viewportOffsets);
|
||||
#endif
|
||||
#endif /* GL_ANGLE_multiview */
|
||||
|
||||
#ifndef GL_ANGLE_texture_rectangle
|
||||
#define GL_ANGLE_texture_rectangle 1
|
||||
#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ANGLE 0x84F8
|
||||
#define GL_TEXTURE_RECTANGLE_ANGLE 0x84F5
|
||||
#define GL_TEXTURE_BINDING_RECTANGLE_ANGLE 0x84F6
|
||||
#define GL_SAMPLER_2D_RECT_ANGLE 0x8B63
|
||||
#endif /* GL_ANGLE_texture_rectangle */
|
||||
|
||||
// clang-format on
|
||||
|
||||
#endif // INCLUDE_GLES2_GL2EXT_ANGLE_H_
|
1211
external/gl-headers/gl3.h
vendored
1211
external/gl-headers/gl3.h
vendored
File diff suppressed because it is too large
Load diff
5703
external/gl-headers/glcorearb.h
vendored
5703
external/gl-headers/glcorearb.h
vendored
File diff suppressed because it is too large
Load diff
12570
external/gl-headers/glext.h
vendored
12570
external/gl-headers/glext.h
vendored
File diff suppressed because it is too large
Load diff
15
external/gl-headers/meson.build
vendored
15
external/gl-headers/meson.build
vendored
|
@ -1,15 +0,0 @@
|
|||
|
||||
gl_headers = files(
|
||||
# Standard headers from the Khronos Group
|
||||
# Taken from https://github.com/KhronosGroup/OpenGL-Registry/tree/master/api
|
||||
|
||||
'glcorearb.h', # OpenGL Core functionality.
|
||||
'glext.h', # OpenGL extensions.
|
||||
'gl3.h', # OpenGL ES 3.0 functionality (compatible with 2.0).
|
||||
'gl2ext.h', # OpenGL ES 2.0 and 3.0 extensions.
|
||||
|
||||
# ANGLE headers
|
||||
# Taken from https://github.com/google/angle/blob/master/include/GLES2/gl2ext_angle.h
|
||||
|
||||
'gl2ext_angle.h' # ANGLE extensions for OpenGL ES 2.0 and 3.0.
|
||||
)
|
1
external/meson.build
vendored
1
external/meson.build
vendored
|
@ -4,4 +4,3 @@ install_data(
|
|||
install_dir : data_path
|
||||
)
|
||||
|
||||
subdir('gl-headers')
|
||||
|
|
|
@ -113,9 +113,11 @@ dep_zlib = dependency('zlib', required : true,
|
|||
dep_png = dependency('libpng', version : '>=1.5', required : true, static : static)
|
||||
dep_zip = dependency('libzip', version : '>=1.0', required : false, static : static)
|
||||
dep_freetype = dependency('freetype2', required : true, static : static)
|
||||
dep_cglm = subproject('cglm').get_variable('cglm_dep')
|
||||
dep_m = cc.find_library('m', required : false)
|
||||
|
||||
dep_cglm = subproject('cglm').get_variable('cglm_dep')
|
||||
dep_glad = subproject('glad').get_variable('glad_dep')
|
||||
|
||||
taisei_deps = [
|
||||
dep_sdl2,
|
||||
dep_sdl2_image,
|
||||
|
@ -124,6 +126,7 @@ taisei_deps = [
|
|||
dep_freetype,
|
||||
dep_m,
|
||||
dep_cglm,
|
||||
# don't add glad here
|
||||
]
|
||||
|
||||
if host_machine.system() == 'windows'
|
||||
|
|
|
@ -1,103 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from taiseilib.common import (
|
||||
run_main,
|
||||
update_text_file,
|
||||
)
|
||||
|
||||
import re, argparse, itertools
|
||||
from pathlib import Path
|
||||
|
||||
regex_glcall = re.compile(r'(gl[A-Z][a-zA-Z0-9]+)\(|ts(gl[A-Z][a-zA-Z0-9]+)')
|
||||
regex_glproto_template = r'(^GL_?API(?:CALL)?\s+([a-zA-Z_0-9\s]+?\**)\s*((?:GL_?)?APIENTRY)\s+%s\s*\(\s*(.*?)\s*\)\s*;)'
|
||||
|
||||
|
||||
def write_header(args):
|
||||
header = args.header
|
||||
srcdir = args.dir
|
||||
glfuncs = set(args.functions or [])
|
||||
glheaders = set(args.gl_headers or [])
|
||||
|
||||
for h in glheaders:
|
||||
print("Using", h)
|
||||
|
||||
glheaders = '\n'.join(h.read_text() for h in glheaders)
|
||||
|
||||
for src in srcdir.glob('**/*.c'):
|
||||
for func in filter(None, itertools.chain(*regex_glcall.findall(src.read_text()))):
|
||||
glfuncs.add(func)
|
||||
|
||||
glfuncs = sorted(glfuncs)
|
||||
|
||||
typedefs = []
|
||||
prototypes = []
|
||||
|
||||
for func in glfuncs:
|
||||
try:
|
||||
proto, rtype, callconv, params = re.findall(regex_glproto_template % func, glheaders, re.DOTALL|re.MULTILINE)[0]
|
||||
except IndexError:
|
||||
print("Function '%s' not found in the GL headers. Either it really does not exist, or this script is bugged. Update aborted." % func)
|
||||
exit(1)
|
||||
|
||||
proto = re.sub(r'\s+', ' ', proto, re.DOTALL|re.MULTILINE)
|
||||
params = ', '.join(re.split(r',\s*', params))
|
||||
|
||||
typename = 'ts%s_ptr' % func
|
||||
typedef = 'typedef %s (%s *%s)(%s);' % (rtype, callconv, typename, params)
|
||||
|
||||
typedefs.append(typedef)
|
||||
prototypes.append(proto)
|
||||
|
||||
print('Found %-50s: %s' % (func, proto))
|
||||
|
||||
text = header.read_text()
|
||||
|
||||
subs = {
|
||||
'gldefs': '#define GLDEFS \\\n' + ' \\\n'.join('GLDEF(%s, ts%s, ts%s_ptr)' % (f, f, f) for f in glfuncs),
|
||||
'undefs': '\n'.join('#undef %s' % f for f in glfuncs),
|
||||
'redefs': '\n'.join('#define %s ts%s' % (f, f) for f in glfuncs),
|
||||
'reversedefs': '\n'.join('#define ts%s %s' % (f, f) for f in glfuncs),
|
||||
'typedefs': '\n'.join(typedefs),
|
||||
'protos': '\n'.join(prototypes),
|
||||
}
|
||||
|
||||
for key, val in subs.items():
|
||||
text = re.sub(
|
||||
r'(// @BEGIN:%s@)(.*?)(// @END:%s@)' % (key, key),
|
||||
r'\1\n%s\n\3' % val,
|
||||
text,
|
||||
flags=re.DOTALL|re.MULTILINE
|
||||
)
|
||||
|
||||
update_text_file(str(header), text)
|
||||
|
||||
def main(args):
|
||||
parser = argparse.ArgumentParser(description='Update a header file with prototypes of OpenGL functions used by all files in a directory', prog=args[0])
|
||||
|
||||
parser.add_argument('dir',
|
||||
help='Directory containing the source files to look for OpenGL calls in',
|
||||
type=Path,
|
||||
)
|
||||
|
||||
parser.add_argument('header',
|
||||
help='Header file to modify',
|
||||
type=Path,
|
||||
)
|
||||
|
||||
parser.add_argument('--gl-header', '-H',
|
||||
help='Header to look up functions in; may be specified multiple times',
|
||||
type=Path,
|
||||
dest='gl_headers',
|
||||
action='append',
|
||||
)
|
||||
|
||||
parser.add_argument('--function', '-f',
|
||||
help='Include this function even if a direct call was not found in the source files; may be specified multiple times',
|
||||
action='append',
|
||||
dest='functions',
|
||||
)
|
||||
|
||||
write_header(parser.parse_args(args[1:]))
|
||||
|
||||
if __name__ == '__main__':
|
||||
run_main(main)
|
|
@ -142,6 +142,8 @@ else
|
|||
)
|
||||
endif
|
||||
|
||||
taisei_deps += renderer_deps
|
||||
|
||||
if macos_app_bundle
|
||||
taisei_exe_name = 'Taisei'
|
||||
else
|
||||
|
|
|
@ -6,3 +6,5 @@ r_common_src = files(
|
|||
'state.c',
|
||||
'models.c',
|
||||
)
|
||||
|
||||
r_common_libdeps = []
|
||||
|
|
|
@ -10,3 +10,4 @@ r_gl33_src = files(
|
|||
)
|
||||
|
||||
r_gl33_deps = ['glcommon']
|
||||
r_gl33_libdeps = r_glcommon_libdeps
|
||||
|
|
|
@ -4,17 +4,4 @@ r_glcommon_src = files(
|
|||
'debug.c',
|
||||
)
|
||||
|
||||
headers_args = []
|
||||
|
||||
foreach header : gl_headers
|
||||
headers_args += ['-H', header]
|
||||
endforeach
|
||||
|
||||
run_target('update-gl-header',
|
||||
command: [
|
||||
gen_opengl_header_command,
|
||||
join_paths(meson.current_source_dir(), '..'),
|
||||
files('opengl.h'),
|
||||
headers_args,
|
||||
]
|
||||
)
|
||||
r_glcommon_libdeps = [dep_glad]
|
||||
|
|
|
@ -13,13 +13,7 @@
|
|||
|
||||
struct glext_s glext;
|
||||
|
||||
#ifndef LINK_TO_LIBGL
|
||||
#define GLDEF(glname,tsname,typename) typename tsname = NULL;
|
||||
GLDEFS
|
||||
#undef GLDEF
|
||||
#endif
|
||||
|
||||
typedef void (*tsglproc_ptr)(void);
|
||||
typedef void (*glad_glproc_ptr)(void);
|
||||
|
||||
static const char *const ext_vendor_table[] = {
|
||||
#define TSGL_EXT_VENDOR(v) [_TSGL_EXTVNUM_##v] = #v,
|
||||
|
@ -55,38 +49,6 @@ static ext_flag_t glcommon_ext_flag(const char *ext) {
|
|||
log_fatal("Unknown vendor '%s' in extension string %s", vendor, ext);
|
||||
}
|
||||
|
||||
#ifndef LINK_TO_LIBGL
|
||||
static tsglproc_ptr glcommon_proc_address(const char *name) {
|
||||
void *addr = SDL_GL_GetProcAddress(name);
|
||||
|
||||
if(!addr) {
|
||||
log_warn("SDL_GL_GetProcAddress(\"%s\") failed: %s", name, SDL_GetError());
|
||||
}
|
||||
|
||||
// shut up a stupid warning about conversion between data pointers and function pointers
|
||||
// yes, such a conversion is not allowed by the standard, but when several major APIs
|
||||
// (POSIX and SDL to name a few) require casting void* to a function pointer, that says something.
|
||||
return *(tsglproc_ptr*)&addr;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void glcommon_gl_version(char *major, char *minor) {
|
||||
// the glGetIntegerv way only works in >=3.0 contexts, so...
|
||||
|
||||
const char *vstr = (const char*)glGetString(GL_VERSION);
|
||||
|
||||
if(!vstr) {
|
||||
*major = 1;
|
||||
*minor = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
const char *dot = strchr(vstr, '.');
|
||||
|
||||
*major = atoi(vstr);
|
||||
*minor = atoi(dot+1);
|
||||
}
|
||||
|
||||
ext_flag_t glcommon_check_extension(const char *ext) {
|
||||
const char *overrides = env_get("TAISEI_GL_EXT_OVERRIDES", "");
|
||||
ext_flag_t flag = glcommon_ext_flag(ext);
|
||||
|
@ -132,9 +94,9 @@ ext_flag_t glcommon_require_extension(const char *ext) {
|
|||
static void glcommon_ext_debug_output(void) {
|
||||
if(
|
||||
GL_ATLEAST(4, 3)
|
||||
&& (glext.DebugMessageCallback = tsglDebugMessageCallback)
|
||||
&& (glext.DebugMessageControl = tsglDebugMessageControl)
|
||||
&& (glext.ObjectLabel = tsglObjectLabel)
|
||||
&& (glext.DebugMessageCallback = glad_glDebugMessageCallback)
|
||||
&& (glext.DebugMessageControl = glad_glDebugMessageControl)
|
||||
&& (glext.ObjectLabel = glad_glObjectLabel)
|
||||
) {
|
||||
glext.debug_output = TSGL_EXTFLAG_NATIVE;
|
||||
log_info("Using core functionality");
|
||||
|
@ -143,18 +105,18 @@ static void glcommon_ext_debug_output(void) {
|
|||
|
||||
if(glext.version.is_es) {
|
||||
if((glext.debug_output = glcommon_check_extension("GL_KHR_debug"))
|
||||
&& (glext.DebugMessageCallback = tsglDebugMessageCallbackKHR)
|
||||
&& (glext.DebugMessageControl = tsglDebugMessageControlKHR)
|
||||
&& (glext.ObjectLabel = tsglObjectLabelKHR)
|
||||
&& (glext.DebugMessageCallback = glad_glDebugMessageCallbackKHR)
|
||||
&& (glext.DebugMessageControl = glad_glDebugMessageControlKHR)
|
||||
&& (glext.ObjectLabel = glad_glObjectLabelKHR)
|
||||
) {
|
||||
log_info("Using GL_KHR_debug");
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if((glext.debug_output = glcommon_check_extension("GL_KHR_debug"))
|
||||
&& (glext.DebugMessageCallback = tsglDebugMessageCallback)
|
||||
&& (glext.DebugMessageControl = tsglDebugMessageControl)
|
||||
&& (glext.ObjectLabel = tsglObjectLabel)
|
||||
&& (glext.DebugMessageCallback = glad_glDebugMessageCallback)
|
||||
&& (glext.DebugMessageControl = glad_glDebugMessageControl)
|
||||
&& (glext.ObjectLabel = glad_glObjectLabel)
|
||||
) {
|
||||
log_info("Using GL_KHR_debug");
|
||||
return;
|
||||
|
@ -162,8 +124,8 @@ static void glcommon_ext_debug_output(void) {
|
|||
}
|
||||
|
||||
if((glext.debug_output = glcommon_check_extension("GL_ARB_debug_output"))
|
||||
&& (glext.DebugMessageCallback = tsglDebugMessageCallbackARB)
|
||||
&& (glext.DebugMessageControl = tsglDebugMessageControlARB)
|
||||
&& (glext.DebugMessageCallback = glad_glDebugMessageCallbackARB)
|
||||
&& (glext.DebugMessageControl = glad_glDebugMessageControlARB)
|
||||
) {
|
||||
log_info("Using GL_ARB_debug_output");
|
||||
return;
|
||||
|
@ -176,8 +138,8 @@ static void glcommon_ext_debug_output(void) {
|
|||
static void glcommon_ext_base_instance(void) {
|
||||
if(
|
||||
GL_ATLEAST(4, 2)
|
||||
&& (glext.DrawArraysInstancedBaseInstance = tsglDrawArraysInstancedBaseInstance)
|
||||
&& (glext.DrawElementsInstancedBaseInstance = tsglDrawElementsInstancedBaseInstance)
|
||||
&& (glext.DrawArraysInstancedBaseInstance = glad_glDrawArraysInstancedBaseInstance)
|
||||
&& (glext.DrawElementsInstancedBaseInstance = glad_glDrawElementsInstancedBaseInstance)
|
||||
) {
|
||||
glext.base_instance = TSGL_EXTFLAG_NATIVE;
|
||||
log_info("Using core functionality");
|
||||
|
@ -185,16 +147,16 @@ static void glcommon_ext_base_instance(void) {
|
|||
}
|
||||
|
||||
if((glext.base_instance = glcommon_check_extension("GL_ARB_base_instance"))
|
||||
&& (glext.DrawArraysInstancedBaseInstance = tsglDrawArraysInstancedBaseInstance)
|
||||
&& (glext.DrawElementsInstancedBaseInstance = tsglDrawElementsInstancedBaseInstance)
|
||||
&& (glext.DrawArraysInstancedBaseInstance = glad_glDrawArraysInstancedBaseInstance)
|
||||
&& (glext.DrawElementsInstancedBaseInstance = glad_glDrawElementsInstancedBaseInstance)
|
||||
) {
|
||||
log_info("Using GL_ARB_base_instance");
|
||||
return;
|
||||
}
|
||||
|
||||
if((glext.base_instance = glcommon_check_extension("GL_EXT_base_instance"))
|
||||
&& (glext.DrawArraysInstancedBaseInstance = tsglDrawArraysInstancedBaseInstanceEXT)
|
||||
&& (glext.DrawElementsInstancedBaseInstance = tsglDrawElementsInstancedBaseInstanceEXT)
|
||||
&& (glext.DrawArraysInstancedBaseInstance = glad_glDrawArraysInstancedBaseInstanceEXT)
|
||||
&& (glext.DrawElementsInstancedBaseInstance = glad_glDrawElementsInstancedBaseInstanceEXT)
|
||||
) {
|
||||
log_info("Using GL_EXT_base_instance");
|
||||
return;
|
||||
|
@ -258,9 +220,9 @@ static void glcommon_ext_depth_texture(void) {
|
|||
static void glcommon_ext_instanced_arrays(void) {
|
||||
if(
|
||||
GL_ATLEAST(3, 3)
|
||||
&& (glext.DrawArraysInstanced = tsglDrawArraysInstanced)
|
||||
&& (glext.DrawElementsInstanced = tsglDrawElementsInstanced)
|
||||
&& (glext.VertexAttribDivisor = tsglVertexAttribDivisor)
|
||||
&& (glext.DrawArraysInstanced = glad_glDrawArraysInstanced)
|
||||
&& (glext.DrawElementsInstanced = glad_glDrawElementsInstanced)
|
||||
&& (glext.VertexAttribDivisor = glad_glVertexAttribDivisor)
|
||||
) {
|
||||
glext.instanced_arrays = TSGL_EXTFLAG_NATIVE;
|
||||
log_info("Using core functionality");
|
||||
|
@ -268,38 +230,38 @@ static void glcommon_ext_instanced_arrays(void) {
|
|||
}
|
||||
|
||||
if((glext.instanced_arrays = glcommon_check_extension("GL_ARB_instanced_arrays"))
|
||||
&& (glext.DrawArraysInstanced = tsglDrawArraysInstancedARB)
|
||||
&& (glext.DrawElementsInstanced = tsglDrawElementsInstancedARB)
|
||||
&& (glext.VertexAttribDivisor = tsglVertexAttribDivisorARB)
|
||||
&& (glext.DrawArraysInstanced = glad_glDrawArraysInstancedARB)
|
||||
&& (glext.DrawElementsInstanced = glad_glDrawElementsInstancedARB)
|
||||
&& (glext.VertexAttribDivisor = glad_glVertexAttribDivisorARB)
|
||||
) {
|
||||
log_info("Using GL_ARB_instanced_arrays");
|
||||
log_info("Using GL_ARB_instanced_arrays (GL_ARB_draw_instanced assumed)");
|
||||
return;
|
||||
}
|
||||
|
||||
if((glext.instanced_arrays = glcommon_check_extension("GL_EXT_instanced_arrays"))
|
||||
&& (glext.DrawArraysInstanced = tsglDrawArraysInstancedEXT)
|
||||
&& (glext.DrawElementsInstanced = tsglDrawElementsInstancedEXT)
|
||||
&& (glext.VertexAttribDivisor = tsglVertexAttribDivisorEXT)
|
||||
&& (glext.DrawArraysInstanced = glad_glDrawArraysInstancedEXT)
|
||||
&& (glext.DrawElementsInstanced = glad_glDrawElementsInstancedEXT)
|
||||
&& (glext.VertexAttribDivisor = glad_glVertexAttribDivisorEXT)
|
||||
) {
|
||||
log_info("Using GL_EXT_instanced_arrays");
|
||||
return;
|
||||
}
|
||||
|
||||
if((glext.instanced_arrays = glcommon_check_extension("GL_ANGLE_instanced_arrays"))
|
||||
&& (glext.DrawArraysInstanced = tsglDrawArraysInstancedANGLE)
|
||||
&& (glext.DrawElementsInstanced = tsglDrawElementsInstancedANGLE)
|
||||
&& (glext.VertexAttribDivisor = tsglVertexAttribDivisorANGLE)
|
||||
&& (glext.DrawArraysInstanced = glad_glDrawArraysInstancedANGLE)
|
||||
&& (glext.DrawElementsInstanced = glad_glDrawElementsInstancedANGLE)
|
||||
&& (glext.VertexAttribDivisor = glad_glVertexAttribDivisorANGLE)
|
||||
) {
|
||||
log_info("Using GL_ANGLE_instanced_arrays");
|
||||
return;
|
||||
}
|
||||
|
||||
if((glext.instanced_arrays = glcommon_check_extension("GL_NV_instanced_arrays"))
|
||||
&& (glext.DrawArraysInstanced = tsglDrawArraysInstancedNV)
|
||||
&& (glext.DrawElementsInstanced = tsglDrawElementsInstancedNV)
|
||||
&& (glext.VertexAttribDivisor = tsglVertexAttribDivisorNV)
|
||||
&& (glext.DrawArraysInstanced = glad_glDrawArraysInstancedNV)
|
||||
&& (glext.DrawElementsInstanced = glad_glDrawElementsInstancedNV)
|
||||
&& (glext.VertexAttribDivisor = glad_glVertexAttribDivisorNV)
|
||||
) {
|
||||
log_info("Using GL_NV_instanced_arrays");
|
||||
log_info("Using GL_NV_instanced_arrays (GL_NV_draw_instanced assumed)");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -310,7 +272,7 @@ static void glcommon_ext_instanced_arrays(void) {
|
|||
static void glcommon_ext_draw_buffers(void) {
|
||||
if(
|
||||
(GL_ATLEAST(2, 0) || GLES_ATLEAST(3, 0))
|
||||
&& (glext.DrawBuffers = tsglDrawBuffers)
|
||||
&& (glext.DrawBuffers = glad_glDrawBuffers)
|
||||
) {
|
||||
glext.draw_buffers = TSGL_EXTFLAG_NATIVE;
|
||||
log_info("Using core functionality");
|
||||
|
@ -318,14 +280,14 @@ static void glcommon_ext_draw_buffers(void) {
|
|||
}
|
||||
|
||||
if((glext.instanced_arrays = glcommon_check_extension("GL_ARB_draw_buffers"))
|
||||
&& (glext.DrawBuffers = tsglDrawBuffersARB)
|
||||
&& (glext.DrawBuffers = glad_glDrawBuffersARB)
|
||||
) {
|
||||
log_info("Using GL_ARB_draw_buffers");
|
||||
return;
|
||||
}
|
||||
|
||||
if((glext.instanced_arrays = glcommon_check_extension("GL_EXT_draw_buffers"))
|
||||
&& (glext.DrawBuffers = tsglDrawBuffersEXT)
|
||||
&& (glext.DrawBuffers = glad_glDrawBuffersEXT)
|
||||
) {
|
||||
log_info("Using GL_EXT_draw_buffers");
|
||||
return;
|
||||
|
@ -337,7 +299,8 @@ static void glcommon_ext_draw_buffers(void) {
|
|||
|
||||
void glcommon_check_extensions(void) {
|
||||
memset(&glext, 0, sizeof(glext));
|
||||
glcommon_gl_version(&glext.version.major, &glext.version.minor);
|
||||
glext.version.major = GLVersion.major;
|
||||
glext.version.minor = GLVersion.minor;
|
||||
|
||||
const char *glslv = (const char*)glGetString(GL_SHADING_LANGUAGE_VERSION);
|
||||
const char *glv = (const char*)glGetString(GL_VERSION);
|
||||
|
@ -384,7 +347,6 @@ void glcommon_check_extensions(void) {
|
|||
}
|
||||
|
||||
void glcommon_load_library(void) {
|
||||
#ifndef LINK_TO_LIBGL
|
||||
const char *lib = env_get("TAISEI_LIBGL", "");
|
||||
|
||||
if(!*lib) {
|
||||
|
@ -394,19 +356,26 @@ void glcommon_load_library(void) {
|
|||
if(SDL_GL_LoadLibrary(lib) < 0) {
|
||||
log_fatal("SDL_GL_LoadLibrary() failed: %s", SDL_GetError());
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void glcommon_unload_library(void) {
|
||||
#ifndef LINK_TO_LIBGL
|
||||
SDL_GL_UnloadLibrary();
|
||||
#endif
|
||||
}
|
||||
|
||||
void glcommon_load_functions(void) {
|
||||
#ifndef LINK_TO_LIBGL
|
||||
#define GLDEF(glname,tsname,typename) tsname = (typename)glcommon_proc_address(#glname);
|
||||
GLDEFS
|
||||
#undef GLDEF
|
||||
#endif
|
||||
int profile;
|
||||
|
||||
if(SDL_GL_GetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, &profile) < 0) {
|
||||
log_fatal("SDL_GL_GetAttribute() failed: %s", SDL_GetError());
|
||||
}
|
||||
|
||||
if(profile == SDL_GL_CONTEXT_PROFILE_ES) {
|
||||
if(!gladLoadGLES2Loader(SDL_GL_GetProcAddress)) {
|
||||
log_fatal("Failed to load OpenGL ES functions");
|
||||
}
|
||||
} else {
|
||||
if(!gladLoadGLLoader(SDL_GL_GetProcAddress)) {
|
||||
log_fatal("Failed to load OpenGL functions");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,8 +9,7 @@
|
|||
#pragma once
|
||||
#include "taisei.h"
|
||||
|
||||
#include <SDL_platform.h>
|
||||
#include <SDL_opengl.h>
|
||||
#include "glad/glad.h"
|
||||
|
||||
#include "assert.h"
|
||||
|
||||
|
@ -49,655 +48,12 @@ void glcommon_unload_library(void);
|
|||
ext_flag_t glcommon_check_extension(const char *ext);
|
||||
ext_flag_t glcommon_require_extension(const char *ext);
|
||||
|
||||
//
|
||||
// XXX: This is a real mess. We probably should have completely separate headers
|
||||
// for GL and GLES stuff, somehow, while still letting the GL and GLES backends
|
||||
// share most of the code. Currently, it is assumed that GL and GLES use the same
|
||||
// calling convention, and the pointers to equivalent API functions are compatible.
|
||||
//
|
||||
|
||||
#ifndef GLAPIENTRY
|
||||
#define GLAPIENTRY
|
||||
#endif
|
||||
|
||||
#ifndef GL_APIENTRY
|
||||
#define GL_APIENTRY GLAPIENTRY
|
||||
#endif
|
||||
|
||||
#ifndef APIENTRY
|
||||
#define APIENTRY GLAPIENTRY
|
||||
#endif
|
||||
|
||||
#if defined(DEBUG) && defined(TAISEI_BUILDCONF_DEBUG_OPENGL)
|
||||
#define DEBUG_GL_DEFAULT 1
|
||||
#else
|
||||
#define DEBUG_GL_DEFAULT 0
|
||||
#endif
|
||||
|
||||
//
|
||||
// XXX: SDL headers are old. Maybe depend on the system GLES headers instead?
|
||||
//
|
||||
|
||||
typedef void (GL_APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
|
||||
|
||||
/*
|
||||
*
|
||||
* From here on it's mostly generated code (by the embedded python script)
|
||||
*
|
||||
*/
|
||||
|
||||
// @BEGIN:typedefs@
|
||||
typedef void (APIENTRY *tsglActiveTexture_ptr)(GLenum texture);
|
||||
typedef void (APIENTRY *tsglAttachShader_ptr)(GLuint program, GLuint shader);
|
||||
typedef void (APIENTRY *tsglBindBuffer_ptr)(GLenum target, GLuint buffer);
|
||||
typedef void (APIENTRY *tsglBindFramebuffer_ptr)(GLenum target, GLuint framebuffer);
|
||||
typedef void (GL_APIENTRY *tsglBindTexture_ptr)(GLenum target, GLuint texture);
|
||||
typedef void (APIENTRY *tsglBindVertexArray_ptr)(GLuint array);
|
||||
typedef void (APIENTRY *tsglBlendEquationSeparate_ptr)(GLenum modeRGB, GLenum modeAlpha);
|
||||
typedef void (APIENTRY *tsglBlendFuncSeparate_ptr)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
typedef void (APIENTRY *tsglBufferData_ptr)(GLenum target, GLsizeiptr size, const void *data, GLenum usage);
|
||||
typedef void (APIENTRY *tsglBufferSubData_ptr)(GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
typedef void (GL_APIENTRY *tsglClear_ptr)(GLbitfield mask);
|
||||
typedef void (GL_APIENTRY *tsglClearColor_ptr)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
typedef void (APIENTRY *tsglCompileShader_ptr)(GLuint shader);
|
||||
typedef GLuint (APIENTRY *tsglCreateProgram_ptr)(void);
|
||||
typedef GLuint (APIENTRY *tsglCreateShader_ptr)(GLenum type);
|
||||
typedef void (GL_APIENTRY *tsglCullFace_ptr)(GLenum mode);
|
||||
typedef void (APIENTRY *tsglDebugMessageCallback_ptr)(GLDEBUGPROC callback, const void *userParam);
|
||||
typedef void (APIENTRY *tsglDebugMessageCallbackARB_ptr)(GLDEBUGPROCARB callback, const void *userParam);
|
||||
typedef void (GL_APIENTRY *tsglDebugMessageCallbackKHR_ptr)(GLDEBUGPROCKHR callback, const void *userParam);
|
||||
typedef void (APIENTRY *tsglDebugMessageControl_ptr)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
|
||||
typedef void (APIENTRY *tsglDebugMessageControlARB_ptr)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
|
||||
typedef void (GL_APIENTRY *tsglDebugMessageControlKHR_ptr)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
|
||||
typedef void (APIENTRY *tsglDeleteBuffers_ptr)(GLsizei n, const GLuint *buffers);
|
||||
typedef void (APIENTRY *tsglDeleteFramebuffers_ptr)(GLsizei n, const GLuint *framebuffers);
|
||||
typedef void (APIENTRY *tsglDeleteProgram_ptr)(GLuint program);
|
||||
typedef void (APIENTRY *tsglDeleteShader_ptr)(GLuint shader);
|
||||
typedef void (GL_APIENTRY *tsglDeleteTextures_ptr)(GLsizei n, const GLuint *textures);
|
||||
typedef void (APIENTRY *tsglDeleteVertexArrays_ptr)(GLsizei n, const GLuint *arrays);
|
||||
typedef void (GL_APIENTRY *tsglDepthFunc_ptr)(GLenum func);
|
||||
typedef void (GL_APIENTRY *tsglDepthMask_ptr)(GLboolean flag);
|
||||
typedef void (GL_APIENTRY *tsglDisable_ptr)(GLenum cap);
|
||||
typedef void (APIENTRY *tsglDisableVertexAttribArray_ptr)(GLuint index);
|
||||
typedef void (GL_APIENTRY *tsglDrawArrays_ptr)(GLenum mode, GLint first, GLsizei count);
|
||||
typedef void (APIENTRY *tsglDrawArraysInstanced_ptr)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
|
||||
typedef void (GL_APIENTRY *tsglDrawArraysInstancedANGLE_ptr)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
|
||||
typedef void (APIENTRY *tsglDrawArraysInstancedARB_ptr)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
|
||||
typedef void (APIENTRY *tsglDrawArraysInstancedBaseInstance_ptr)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
|
||||
typedef void (GL_APIENTRY *tsglDrawArraysInstancedBaseInstanceEXT_ptr)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
|
||||
typedef void (GL_APIENTRY *tsglDrawArraysInstancedEXT_ptr)(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
|
||||
typedef void (GL_APIENTRY *tsglDrawArraysInstancedNV_ptr)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
|
||||
typedef void (APIENTRY *tsglDrawBuffers_ptr)(GLsizei n, const GLenum *bufs);
|
||||
typedef void (APIENTRY *tsglDrawBuffersARB_ptr)(GLsizei n, const GLenum *bufs);
|
||||
typedef void (GL_APIENTRY *tsglDrawBuffersEXT_ptr)(GLsizei n, const GLenum *bufs);
|
||||
typedef void (GL_APIENTRY *tsglDrawElements_ptr)(GLenum mode, GLsizei count, GLenum type, const void *indices);
|
||||
typedef void (APIENTRY *tsglDrawElementsInstanced_ptr)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
|
||||
typedef void (GL_APIENTRY *tsglDrawElementsInstancedANGLE_ptr)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
|
||||
typedef void (APIENTRY *tsglDrawElementsInstancedARB_ptr)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
|
||||
typedef void (APIENTRY *tsglDrawElementsInstancedBaseInstance_ptr)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
|
||||
typedef void (GL_APIENTRY *tsglDrawElementsInstancedBaseInstanceEXT_ptr)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
|
||||
typedef void (GL_APIENTRY *tsglDrawElementsInstancedEXT_ptr)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
|
||||
typedef void (GL_APIENTRY *tsglDrawElementsInstancedNV_ptr)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
|
||||
typedef void (GL_APIENTRY *tsglEnable_ptr)(GLenum cap);
|
||||
typedef void (APIENTRY *tsglEnableVertexAttribArray_ptr)(GLuint index);
|
||||
typedef void (APIENTRY *tsglFramebufferTexture2D_ptr)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
typedef void (APIENTRY *tsglGenBuffers_ptr)(GLsizei n, GLuint *buffers);
|
||||
typedef void (APIENTRY *tsglGenFramebuffers_ptr)(GLsizei n, GLuint *framebuffers);
|
||||
typedef void (GL_APIENTRY *tsglGenTextures_ptr)(GLsizei n, GLuint *textures);
|
||||
typedef void (APIENTRY *tsglGenVertexArrays_ptr)(GLsizei n, GLuint *arrays);
|
||||
typedef void (APIENTRY *tsglGetActiveUniform_ptr)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
typedef void (GL_APIENTRY *tsglGetIntegerv_ptr)(GLenum pname, GLint *data);
|
||||
typedef void (APIENTRY *tsglGetProgramInfoLog_ptr)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (APIENTRY *tsglGetProgramiv_ptr)(GLuint program, GLenum pname, GLint *params);
|
||||
typedef void (APIENTRY *tsglGetShaderInfoLog_ptr)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
typedef void (APIENTRY *tsglGetShaderiv_ptr)(GLuint shader, GLenum pname, GLint *params);
|
||||
typedef const GLubyte * (GL_APIENTRY *tsglGetString_ptr)(GLenum name);
|
||||
typedef const GLubyte * (APIENTRY *tsglGetStringi_ptr)(GLenum name, GLuint index);
|
||||
typedef GLint (APIENTRY *tsglGetUniformLocation_ptr)(GLuint program, const GLchar *name);
|
||||
typedef void (APIENTRY *tsglLinkProgram_ptr)(GLuint program);
|
||||
typedef void (APIENTRY *tsglObjectLabel_ptr)(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
|
||||
typedef void (GL_APIENTRY *tsglObjectLabelKHR_ptr)(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
|
||||
typedef void (GL_APIENTRY *tsglPixelStorei_ptr)(GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRY *tsglReadBuffer_ptr)(GLenum src);
|
||||
typedef void (GL_APIENTRY *tsglReadPixels_ptr)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
|
||||
typedef void (APIENTRY *tsglShaderSource_ptr)(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
|
||||
typedef void (GL_APIENTRY *tsglTexImage2D_ptr)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (GL_APIENTRY *tsglTexParameterf_ptr)(GLenum target, GLenum pname, GLfloat param);
|
||||
typedef void (GL_APIENTRY *tsglTexParameteri_ptr)(GLenum target, GLenum pname, GLint param);
|
||||
typedef void (GL_APIENTRY *tsglTexSubImage2D_ptr)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
typedef void (APIENTRY *tsglUniform1fv_ptr)(GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (APIENTRY *tsglUniform1iv_ptr)(GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (APIENTRY *tsglUniform2fv_ptr)(GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (APIENTRY *tsglUniform2iv_ptr)(GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (APIENTRY *tsglUniform3fv_ptr)(GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (APIENTRY *tsglUniform3iv_ptr)(GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (APIENTRY *tsglUniform4fv_ptr)(GLint location, GLsizei count, const GLfloat *value);
|
||||
typedef void (APIENTRY *tsglUniform4iv_ptr)(GLint location, GLsizei count, const GLint *value);
|
||||
typedef void (APIENTRY *tsglUniformMatrix3fv_ptr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (APIENTRY *tsglUniformMatrix4fv_ptr)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
typedef void (APIENTRY *tsglUseProgram_ptr)(GLuint program);
|
||||
typedef void (APIENTRY *tsglVertexAttribDivisor_ptr)(GLuint index, GLuint divisor);
|
||||
typedef void (GL_APIENTRY *tsglVertexAttribDivisorANGLE_ptr)(GLuint index, GLuint divisor);
|
||||
typedef void (APIENTRY *tsglVertexAttribDivisorARB_ptr)(GLuint index, GLuint divisor);
|
||||
typedef void (GL_APIENTRY *tsglVertexAttribDivisorEXT_ptr)(GLuint index, GLuint divisor);
|
||||
typedef void (GL_APIENTRY *tsglVertexAttribDivisorNV_ptr)(GLuint index, GLuint divisor);
|
||||
typedef void (APIENTRY *tsglVertexAttribIPointer_ptr)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
|
||||
typedef void (APIENTRY *tsglVertexAttribPointer_ptr)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
|
||||
typedef void (GL_APIENTRY *tsglViewport_ptr)(GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
// @END:typedefs@
|
||||
|
||||
// @BEGIN:undefs@
|
||||
#undef glActiveTexture
|
||||
#undef glAttachShader
|
||||
#undef glBindBuffer
|
||||
#undef glBindFramebuffer
|
||||
#undef glBindTexture
|
||||
#undef glBindVertexArray
|
||||
#undef glBlendEquationSeparate
|
||||
#undef glBlendFuncSeparate
|
||||
#undef glBufferData
|
||||
#undef glBufferSubData
|
||||
#undef glClear
|
||||
#undef glClearColor
|
||||
#undef glCompileShader
|
||||
#undef glCreateProgram
|
||||
#undef glCreateShader
|
||||
#undef glCullFace
|
||||
#undef glDebugMessageCallback
|
||||
#undef glDebugMessageCallbackARB
|
||||
#undef glDebugMessageCallbackKHR
|
||||
#undef glDebugMessageControl
|
||||
#undef glDebugMessageControlARB
|
||||
#undef glDebugMessageControlKHR
|
||||
#undef glDeleteBuffers
|
||||
#undef glDeleteFramebuffers
|
||||
#undef glDeleteProgram
|
||||
#undef glDeleteShader
|
||||
#undef glDeleteTextures
|
||||
#undef glDeleteVertexArrays
|
||||
#undef glDepthFunc
|
||||
#undef glDepthMask
|
||||
#undef glDisable
|
||||
#undef glDisableVertexAttribArray
|
||||
#undef glDrawArrays
|
||||
#undef glDrawArraysInstanced
|
||||
#undef glDrawArraysInstancedANGLE
|
||||
#undef glDrawArraysInstancedARB
|
||||
#undef glDrawArraysInstancedBaseInstance
|
||||
#undef glDrawArraysInstancedBaseInstanceEXT
|
||||
#undef glDrawArraysInstancedEXT
|
||||
#undef glDrawArraysInstancedNV
|
||||
#undef glDrawBuffers
|
||||
#undef glDrawBuffersARB
|
||||
#undef glDrawBuffersEXT
|
||||
#undef glDrawElements
|
||||
#undef glDrawElementsInstanced
|
||||
#undef glDrawElementsInstancedANGLE
|
||||
#undef glDrawElementsInstancedARB
|
||||
#undef glDrawElementsInstancedBaseInstance
|
||||
#undef glDrawElementsInstancedBaseInstanceEXT
|
||||
#undef glDrawElementsInstancedEXT
|
||||
#undef glDrawElementsInstancedNV
|
||||
#undef glEnable
|
||||
#undef glEnableVertexAttribArray
|
||||
#undef glFramebufferTexture2D
|
||||
#undef glGenBuffers
|
||||
#undef glGenFramebuffers
|
||||
#undef glGenTextures
|
||||
#undef glGenVertexArrays
|
||||
#undef glGetActiveUniform
|
||||
#undef glGetIntegerv
|
||||
#undef glGetProgramInfoLog
|
||||
#undef glGetProgramiv
|
||||
#undef glGetShaderInfoLog
|
||||
#undef glGetShaderiv
|
||||
#undef glGetString
|
||||
#undef glGetStringi
|
||||
#undef glGetUniformLocation
|
||||
#undef glLinkProgram
|
||||
#undef glObjectLabel
|
||||
#undef glObjectLabelKHR
|
||||
#undef glPixelStorei
|
||||
#undef glReadBuffer
|
||||
#undef glReadPixels
|
||||
#undef glShaderSource
|
||||
#undef glTexImage2D
|
||||
#undef glTexParameterf
|
||||
#undef glTexParameteri
|
||||
#undef glTexSubImage2D
|
||||
#undef glUniform1fv
|
||||
#undef glUniform1iv
|
||||
#undef glUniform2fv
|
||||
#undef glUniform2iv
|
||||
#undef glUniform3fv
|
||||
#undef glUniform3iv
|
||||
#undef glUniform4fv
|
||||
#undef glUniform4iv
|
||||
#undef glUniformMatrix3fv
|
||||
#undef glUniformMatrix4fv
|
||||
#undef glUseProgram
|
||||
#undef glVertexAttribDivisor
|
||||
#undef glVertexAttribDivisorANGLE
|
||||
#undef glVertexAttribDivisorARB
|
||||
#undef glVertexAttribDivisorEXT
|
||||
#undef glVertexAttribDivisorNV
|
||||
#undef glVertexAttribIPointer
|
||||
#undef glVertexAttribPointer
|
||||
#undef glViewport
|
||||
// @END:undefs@
|
||||
|
||||
#ifndef LINK_TO_LIBGL
|
||||
// @BEGIN:redefs@
|
||||
#define glActiveTexture tsglActiveTexture
|
||||
#define glAttachShader tsglAttachShader
|
||||
#define glBindBuffer tsglBindBuffer
|
||||
#define glBindFramebuffer tsglBindFramebuffer
|
||||
#define glBindTexture tsglBindTexture
|
||||
#define glBindVertexArray tsglBindVertexArray
|
||||
#define glBlendEquationSeparate tsglBlendEquationSeparate
|
||||
#define glBlendFuncSeparate tsglBlendFuncSeparate
|
||||
#define glBufferData tsglBufferData
|
||||
#define glBufferSubData tsglBufferSubData
|
||||
#define glClear tsglClear
|
||||
#define glClearColor tsglClearColor
|
||||
#define glCompileShader tsglCompileShader
|
||||
#define glCreateProgram tsglCreateProgram
|
||||
#define glCreateShader tsglCreateShader
|
||||
#define glCullFace tsglCullFace
|
||||
#define glDebugMessageCallback tsglDebugMessageCallback
|
||||
#define glDebugMessageCallbackARB tsglDebugMessageCallbackARB
|
||||
#define glDebugMessageCallbackKHR tsglDebugMessageCallbackKHR
|
||||
#define glDebugMessageControl tsglDebugMessageControl
|
||||
#define glDebugMessageControlARB tsglDebugMessageControlARB
|
||||
#define glDebugMessageControlKHR tsglDebugMessageControlKHR
|
||||
#define glDeleteBuffers tsglDeleteBuffers
|
||||
#define glDeleteFramebuffers tsglDeleteFramebuffers
|
||||
#define glDeleteProgram tsglDeleteProgram
|
||||
#define glDeleteShader tsglDeleteShader
|
||||
#define glDeleteTextures tsglDeleteTextures
|
||||
#define glDeleteVertexArrays tsglDeleteVertexArrays
|
||||
#define glDepthFunc tsglDepthFunc
|
||||
#define glDepthMask tsglDepthMask
|
||||
#define glDisable tsglDisable
|
||||
#define glDisableVertexAttribArray tsglDisableVertexAttribArray
|
||||
#define glDrawArrays tsglDrawArrays
|
||||
#define glDrawArraysInstanced tsglDrawArraysInstanced
|
||||
#define glDrawArraysInstancedANGLE tsglDrawArraysInstancedANGLE
|
||||
#define glDrawArraysInstancedARB tsglDrawArraysInstancedARB
|
||||
#define glDrawArraysInstancedBaseInstance tsglDrawArraysInstancedBaseInstance
|
||||
#define glDrawArraysInstancedBaseInstanceEXT tsglDrawArraysInstancedBaseInstanceEXT
|
||||
#define glDrawArraysInstancedEXT tsglDrawArraysInstancedEXT
|
||||
#define glDrawArraysInstancedNV tsglDrawArraysInstancedNV
|
||||
#define glDrawBuffers tsglDrawBuffers
|
||||
#define glDrawBuffersARB tsglDrawBuffersARB
|
||||
#define glDrawBuffersEXT tsglDrawBuffersEXT
|
||||
#define glDrawElements tsglDrawElements
|
||||
#define glDrawElementsInstanced tsglDrawElementsInstanced
|
||||
#define glDrawElementsInstancedANGLE tsglDrawElementsInstancedANGLE
|
||||
#define glDrawElementsInstancedARB tsglDrawElementsInstancedARB
|
||||
#define glDrawElementsInstancedBaseInstance tsglDrawElementsInstancedBaseInstance
|
||||
#define glDrawElementsInstancedBaseInstanceEXT tsglDrawElementsInstancedBaseInstanceEXT
|
||||
#define glDrawElementsInstancedEXT tsglDrawElementsInstancedEXT
|
||||
#define glDrawElementsInstancedNV tsglDrawElementsInstancedNV
|
||||
#define glEnable tsglEnable
|
||||
#define glEnableVertexAttribArray tsglEnableVertexAttribArray
|
||||
#define glFramebufferTexture2D tsglFramebufferTexture2D
|
||||
#define glGenBuffers tsglGenBuffers
|
||||
#define glGenFramebuffers tsglGenFramebuffers
|
||||
#define glGenTextures tsglGenTextures
|
||||
#define glGenVertexArrays tsglGenVertexArrays
|
||||
#define glGetActiveUniform tsglGetActiveUniform
|
||||
#define glGetIntegerv tsglGetIntegerv
|
||||
#define glGetProgramInfoLog tsglGetProgramInfoLog
|
||||
#define glGetProgramiv tsglGetProgramiv
|
||||
#define glGetShaderInfoLog tsglGetShaderInfoLog
|
||||
#define glGetShaderiv tsglGetShaderiv
|
||||
#define glGetString tsglGetString
|
||||
#define glGetStringi tsglGetStringi
|
||||
#define glGetUniformLocation tsglGetUniformLocation
|
||||
#define glLinkProgram tsglLinkProgram
|
||||
#define glObjectLabel tsglObjectLabel
|
||||
#define glObjectLabelKHR tsglObjectLabelKHR
|
||||
#define glPixelStorei tsglPixelStorei
|
||||
#define glReadBuffer tsglReadBuffer
|
||||
#define glReadPixels tsglReadPixels
|
||||
#define glShaderSource tsglShaderSource
|
||||
#define glTexImage2D tsglTexImage2D
|
||||
#define glTexParameterf tsglTexParameterf
|
||||
#define glTexParameteri tsglTexParameteri
|
||||
#define glTexSubImage2D tsglTexSubImage2D
|
||||
#define glUniform1fv tsglUniform1fv
|
||||
#define glUniform1iv tsglUniform1iv
|
||||
#define glUniform2fv tsglUniform2fv
|
||||
#define glUniform2iv tsglUniform2iv
|
||||
#define glUniform3fv tsglUniform3fv
|
||||
#define glUniform3iv tsglUniform3iv
|
||||
#define glUniform4fv tsglUniform4fv
|
||||
#define glUniform4iv tsglUniform4iv
|
||||
#define glUniformMatrix3fv tsglUniformMatrix3fv
|
||||
#define glUniformMatrix4fv tsglUniformMatrix4fv
|
||||
#define glUseProgram tsglUseProgram
|
||||
#define glVertexAttribDivisor tsglVertexAttribDivisor
|
||||
#define glVertexAttribDivisorANGLE tsglVertexAttribDivisorANGLE
|
||||
#define glVertexAttribDivisorARB tsglVertexAttribDivisorARB
|
||||
#define glVertexAttribDivisorEXT tsglVertexAttribDivisorEXT
|
||||
#define glVertexAttribDivisorNV tsglVertexAttribDivisorNV
|
||||
#define glVertexAttribIPointer tsglVertexAttribIPointer
|
||||
#define glVertexAttribPointer tsglVertexAttribPointer
|
||||
#define glViewport tsglViewport
|
||||
// @END:redefs@
|
||||
#endif // !LINK_TO_LIBGL
|
||||
|
||||
#ifndef LINK_TO_LIBGL
|
||||
// @BEGIN:gldefs@
|
||||
#define GLDEFS \
|
||||
GLDEF(glActiveTexture, tsglActiveTexture, tsglActiveTexture_ptr) \
|
||||
GLDEF(glAttachShader, tsglAttachShader, tsglAttachShader_ptr) \
|
||||
GLDEF(glBindBuffer, tsglBindBuffer, tsglBindBuffer_ptr) \
|
||||
GLDEF(glBindFramebuffer, tsglBindFramebuffer, tsglBindFramebuffer_ptr) \
|
||||
GLDEF(glBindTexture, tsglBindTexture, tsglBindTexture_ptr) \
|
||||
GLDEF(glBindVertexArray, tsglBindVertexArray, tsglBindVertexArray_ptr) \
|
||||
GLDEF(glBlendEquationSeparate, tsglBlendEquationSeparate, tsglBlendEquationSeparate_ptr) \
|
||||
GLDEF(glBlendFuncSeparate, tsglBlendFuncSeparate, tsglBlendFuncSeparate_ptr) \
|
||||
GLDEF(glBufferData, tsglBufferData, tsglBufferData_ptr) \
|
||||
GLDEF(glBufferSubData, tsglBufferSubData, tsglBufferSubData_ptr) \
|
||||
GLDEF(glClear, tsglClear, tsglClear_ptr) \
|
||||
GLDEF(glClearColor, tsglClearColor, tsglClearColor_ptr) \
|
||||
GLDEF(glCompileShader, tsglCompileShader, tsglCompileShader_ptr) \
|
||||
GLDEF(glCreateProgram, tsglCreateProgram, tsglCreateProgram_ptr) \
|
||||
GLDEF(glCreateShader, tsglCreateShader, tsglCreateShader_ptr) \
|
||||
GLDEF(glCullFace, tsglCullFace, tsglCullFace_ptr) \
|
||||
GLDEF(glDebugMessageCallback, tsglDebugMessageCallback, tsglDebugMessageCallback_ptr) \
|
||||
GLDEF(glDebugMessageCallbackARB, tsglDebugMessageCallbackARB, tsglDebugMessageCallbackARB_ptr) \
|
||||
GLDEF(glDebugMessageCallbackKHR, tsglDebugMessageCallbackKHR, tsglDebugMessageCallbackKHR_ptr) \
|
||||
GLDEF(glDebugMessageControl, tsglDebugMessageControl, tsglDebugMessageControl_ptr) \
|
||||
GLDEF(glDebugMessageControlARB, tsglDebugMessageControlARB, tsglDebugMessageControlARB_ptr) \
|
||||
GLDEF(glDebugMessageControlKHR, tsglDebugMessageControlKHR, tsglDebugMessageControlKHR_ptr) \
|
||||
GLDEF(glDeleteBuffers, tsglDeleteBuffers, tsglDeleteBuffers_ptr) \
|
||||
GLDEF(glDeleteFramebuffers, tsglDeleteFramebuffers, tsglDeleteFramebuffers_ptr) \
|
||||
GLDEF(glDeleteProgram, tsglDeleteProgram, tsglDeleteProgram_ptr) \
|
||||
GLDEF(glDeleteShader, tsglDeleteShader, tsglDeleteShader_ptr) \
|
||||
GLDEF(glDeleteTextures, tsglDeleteTextures, tsglDeleteTextures_ptr) \
|
||||
GLDEF(glDeleteVertexArrays, tsglDeleteVertexArrays, tsglDeleteVertexArrays_ptr) \
|
||||
GLDEF(glDepthFunc, tsglDepthFunc, tsglDepthFunc_ptr) \
|
||||
GLDEF(glDepthMask, tsglDepthMask, tsglDepthMask_ptr) \
|
||||
GLDEF(glDisable, tsglDisable, tsglDisable_ptr) \
|
||||
GLDEF(glDisableVertexAttribArray, tsglDisableVertexAttribArray, tsglDisableVertexAttribArray_ptr) \
|
||||
GLDEF(glDrawArrays, tsglDrawArrays, tsglDrawArrays_ptr) \
|
||||
GLDEF(glDrawArraysInstanced, tsglDrawArraysInstanced, tsglDrawArraysInstanced_ptr) \
|
||||
GLDEF(glDrawArraysInstancedANGLE, tsglDrawArraysInstancedANGLE, tsglDrawArraysInstancedANGLE_ptr) \
|
||||
GLDEF(glDrawArraysInstancedARB, tsglDrawArraysInstancedARB, tsglDrawArraysInstancedARB_ptr) \
|
||||
GLDEF(glDrawArraysInstancedBaseInstance, tsglDrawArraysInstancedBaseInstance, tsglDrawArraysInstancedBaseInstance_ptr) \
|
||||
GLDEF(glDrawArraysInstancedBaseInstanceEXT, tsglDrawArraysInstancedBaseInstanceEXT, tsglDrawArraysInstancedBaseInstanceEXT_ptr) \
|
||||
GLDEF(glDrawArraysInstancedEXT, tsglDrawArraysInstancedEXT, tsglDrawArraysInstancedEXT_ptr) \
|
||||
GLDEF(glDrawArraysInstancedNV, tsglDrawArraysInstancedNV, tsglDrawArraysInstancedNV_ptr) \
|
||||
GLDEF(glDrawBuffers, tsglDrawBuffers, tsglDrawBuffers_ptr) \
|
||||
GLDEF(glDrawBuffersARB, tsglDrawBuffersARB, tsglDrawBuffersARB_ptr) \
|
||||
GLDEF(glDrawBuffersEXT, tsglDrawBuffersEXT, tsglDrawBuffersEXT_ptr) \
|
||||
GLDEF(glDrawElements, tsglDrawElements, tsglDrawElements_ptr) \
|
||||
GLDEF(glDrawElementsInstanced, tsglDrawElementsInstanced, tsglDrawElementsInstanced_ptr) \
|
||||
GLDEF(glDrawElementsInstancedANGLE, tsglDrawElementsInstancedANGLE, tsglDrawElementsInstancedANGLE_ptr) \
|
||||
GLDEF(glDrawElementsInstancedARB, tsglDrawElementsInstancedARB, tsglDrawElementsInstancedARB_ptr) \
|
||||
GLDEF(glDrawElementsInstancedBaseInstance, tsglDrawElementsInstancedBaseInstance, tsglDrawElementsInstancedBaseInstance_ptr) \
|
||||
GLDEF(glDrawElementsInstancedBaseInstanceEXT, tsglDrawElementsInstancedBaseInstanceEXT, tsglDrawElementsInstancedBaseInstanceEXT_ptr) \
|
||||
GLDEF(glDrawElementsInstancedEXT, tsglDrawElementsInstancedEXT, tsglDrawElementsInstancedEXT_ptr) \
|
||||
GLDEF(glDrawElementsInstancedNV, tsglDrawElementsInstancedNV, tsglDrawElementsInstancedNV_ptr) \
|
||||
GLDEF(glEnable, tsglEnable, tsglEnable_ptr) \
|
||||
GLDEF(glEnableVertexAttribArray, tsglEnableVertexAttribArray, tsglEnableVertexAttribArray_ptr) \
|
||||
GLDEF(glFramebufferTexture2D, tsglFramebufferTexture2D, tsglFramebufferTexture2D_ptr) \
|
||||
GLDEF(glGenBuffers, tsglGenBuffers, tsglGenBuffers_ptr) \
|
||||
GLDEF(glGenFramebuffers, tsglGenFramebuffers, tsglGenFramebuffers_ptr) \
|
||||
GLDEF(glGenTextures, tsglGenTextures, tsglGenTextures_ptr) \
|
||||
GLDEF(glGenVertexArrays, tsglGenVertexArrays, tsglGenVertexArrays_ptr) \
|
||||
GLDEF(glGetActiveUniform, tsglGetActiveUniform, tsglGetActiveUniform_ptr) \
|
||||
GLDEF(glGetIntegerv, tsglGetIntegerv, tsglGetIntegerv_ptr) \
|
||||
GLDEF(glGetProgramInfoLog, tsglGetProgramInfoLog, tsglGetProgramInfoLog_ptr) \
|
||||
GLDEF(glGetProgramiv, tsglGetProgramiv, tsglGetProgramiv_ptr) \
|
||||
GLDEF(glGetShaderInfoLog, tsglGetShaderInfoLog, tsglGetShaderInfoLog_ptr) \
|
||||
GLDEF(glGetShaderiv, tsglGetShaderiv, tsglGetShaderiv_ptr) \
|
||||
GLDEF(glGetString, tsglGetString, tsglGetString_ptr) \
|
||||
GLDEF(glGetStringi, tsglGetStringi, tsglGetStringi_ptr) \
|
||||
GLDEF(glGetUniformLocation, tsglGetUniformLocation, tsglGetUniformLocation_ptr) \
|
||||
GLDEF(glLinkProgram, tsglLinkProgram, tsglLinkProgram_ptr) \
|
||||
GLDEF(glObjectLabel, tsglObjectLabel, tsglObjectLabel_ptr) \
|
||||
GLDEF(glObjectLabelKHR, tsglObjectLabelKHR, tsglObjectLabelKHR_ptr) \
|
||||
GLDEF(glPixelStorei, tsglPixelStorei, tsglPixelStorei_ptr) \
|
||||
GLDEF(glReadBuffer, tsglReadBuffer, tsglReadBuffer_ptr) \
|
||||
GLDEF(glReadPixels, tsglReadPixels, tsglReadPixels_ptr) \
|
||||
GLDEF(glShaderSource, tsglShaderSource, tsglShaderSource_ptr) \
|
||||
GLDEF(glTexImage2D, tsglTexImage2D, tsglTexImage2D_ptr) \
|
||||
GLDEF(glTexParameterf, tsglTexParameterf, tsglTexParameterf_ptr) \
|
||||
GLDEF(glTexParameteri, tsglTexParameteri, tsglTexParameteri_ptr) \
|
||||
GLDEF(glTexSubImage2D, tsglTexSubImage2D, tsglTexSubImage2D_ptr) \
|
||||
GLDEF(glUniform1fv, tsglUniform1fv, tsglUniform1fv_ptr) \
|
||||
GLDEF(glUniform1iv, tsglUniform1iv, tsglUniform1iv_ptr) \
|
||||
GLDEF(glUniform2fv, tsglUniform2fv, tsglUniform2fv_ptr) \
|
||||
GLDEF(glUniform2iv, tsglUniform2iv, tsglUniform2iv_ptr) \
|
||||
GLDEF(glUniform3fv, tsglUniform3fv, tsglUniform3fv_ptr) \
|
||||
GLDEF(glUniform3iv, tsglUniform3iv, tsglUniform3iv_ptr) \
|
||||
GLDEF(glUniform4fv, tsglUniform4fv, tsglUniform4fv_ptr) \
|
||||
GLDEF(glUniform4iv, tsglUniform4iv, tsglUniform4iv_ptr) \
|
||||
GLDEF(glUniformMatrix3fv, tsglUniformMatrix3fv, tsglUniformMatrix3fv_ptr) \
|
||||
GLDEF(glUniformMatrix4fv, tsglUniformMatrix4fv, tsglUniformMatrix4fv_ptr) \
|
||||
GLDEF(glUseProgram, tsglUseProgram, tsglUseProgram_ptr) \
|
||||
GLDEF(glVertexAttribDivisor, tsglVertexAttribDivisor, tsglVertexAttribDivisor_ptr) \
|
||||
GLDEF(glVertexAttribDivisorANGLE, tsglVertexAttribDivisorANGLE, tsglVertexAttribDivisorANGLE_ptr) \
|
||||
GLDEF(glVertexAttribDivisorARB, tsglVertexAttribDivisorARB, tsglVertexAttribDivisorARB_ptr) \
|
||||
GLDEF(glVertexAttribDivisorEXT, tsglVertexAttribDivisorEXT, tsglVertexAttribDivisorEXT_ptr) \
|
||||
GLDEF(glVertexAttribDivisorNV, tsglVertexAttribDivisorNV, tsglVertexAttribDivisorNV_ptr) \
|
||||
GLDEF(glVertexAttribIPointer, tsglVertexAttribIPointer, tsglVertexAttribIPointer_ptr) \
|
||||
GLDEF(glVertexAttribPointer, tsglVertexAttribPointer, tsglVertexAttribPointer_ptr) \
|
||||
GLDEF(glViewport, tsglViewport, tsglViewport_ptr)
|
||||
// @END:gldefs@
|
||||
|
||||
#define GLDEF(glname,tsname,typename) extern typename tsname;
|
||||
GLDEFS
|
||||
#undef GLDEF
|
||||
|
||||
#endif // !LINK_TO_LIBGL
|
||||
|
||||
#ifdef LINK_TO_LIBGL
|
||||
// @BEGIN:protos@
|
||||
GLAPI void APIENTRY glActiveTexture (GLenum texture);
|
||||
GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader);
|
||||
GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer);
|
||||
GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
|
||||
GL_APICALL void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
|
||||
GLAPI void APIENTRY glBindVertexArray (GLuint array);
|
||||
GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
|
||||
GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
|
||||
GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const void *data, GLenum usage);
|
||||
GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const void *data);
|
||||
GL_APICALL void GL_APIENTRY glClear (GLbitfield mask);
|
||||
GL_APICALL void GL_APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
|
||||
GLAPI void APIENTRY glCompileShader (GLuint shader);
|
||||
GLAPI GLuint APIENTRY glCreateProgram (void);
|
||||
GLAPI GLuint APIENTRY glCreateShader (GLenum type);
|
||||
GL_APICALL void GL_APIENTRY glCullFace (GLenum mode);
|
||||
GLAPI void APIENTRY glDebugMessageCallback (GLDEBUGPROC callback, const void *userParam);
|
||||
GLAPI void APIENTRY glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const void *userParam);
|
||||
GL_APICALL void GL_APIENTRY glDebugMessageCallbackKHR (GLDEBUGPROCKHR callback, const void *userParam);
|
||||
GLAPI void APIENTRY glDebugMessageControl (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
|
||||
GLAPI void APIENTRY glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
|
||||
GL_APICALL void GL_APIENTRY glDebugMessageControlKHR (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
|
||||
GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
|
||||
GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers);
|
||||
GLAPI void APIENTRY glDeleteProgram (GLuint program);
|
||||
GLAPI void APIENTRY glDeleteShader (GLuint shader);
|
||||
GL_APICALL void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
|
||||
GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays);
|
||||
GL_APICALL void GL_APIENTRY glDepthFunc (GLenum func);
|
||||
GL_APICALL void GL_APIENTRY glDepthMask (GLboolean flag);
|
||||
GL_APICALL void GL_APIENTRY glDisable (GLenum cap);
|
||||
GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index);
|
||||
GL_APICALL void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
|
||||
GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
|
||||
GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
|
||||
GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
|
||||
GLAPI void APIENTRY glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
|
||||
GL_APICALL void GL_APIENTRY glDrawArraysInstancedBaseInstanceEXT (GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
|
||||
GL_APICALL void GL_APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount);
|
||||
GL_APICALL void GL_APIENTRY glDrawArraysInstancedNV (GLenum mode, GLint first, GLsizei count, GLsizei primcount);
|
||||
GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs);
|
||||
GLAPI void APIENTRY glDrawBuffersARB (GLsizei n, const GLenum *bufs);
|
||||
GL_APICALL void GL_APIENTRY glDrawBuffersEXT (GLsizei n, const GLenum *bufs);
|
||||
GL_APICALL void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const void *indices);
|
||||
GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount);
|
||||
GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
|
||||
GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
|
||||
GLAPI void APIENTRY glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
|
||||
GL_APICALL void GL_APIENTRY glDrawElementsInstancedBaseInstanceEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance);
|
||||
GL_APICALL void GL_APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
|
||||
GL_APICALL void GL_APIENTRY glDrawElementsInstancedNV (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount);
|
||||
GL_APICALL void GL_APIENTRY glEnable (GLenum cap);
|
||||
GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index);
|
||||
GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||
GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
|
||||
GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers);
|
||||
GL_APICALL void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures);
|
||||
GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays);
|
||||
GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
|
||||
GL_APICALL void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *data);
|
||||
GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params);
|
||||
GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
|
||||
GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params);
|
||||
GL_APICALL const GLubyte *GL_APIENTRY glGetString (GLenum name);
|
||||
GLAPI const GLubyte *APIENTRY glGetStringi (GLenum name, GLuint index);
|
||||
GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name);
|
||||
GLAPI void APIENTRY glLinkProgram (GLuint program);
|
||||
GLAPI void APIENTRY glObjectLabel (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
|
||||
GL_APICALL void GL_APIENTRY glObjectLabelKHR (GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
|
||||
GL_APICALL void GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
|
||||
GL_APICALL void GL_APIENTRY glReadBuffer (GLenum src);
|
||||
GL_APICALL void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels);
|
||||
GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length);
|
||||
GL_APICALL void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
|
||||
GL_APICALL void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
|
||||
GL_APICALL void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
|
||||
GL_APICALL void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
|
||||
GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value);
|
||||
GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value);
|
||||
GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value);
|
||||
GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value);
|
||||
GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value);
|
||||
GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
|
||||
GLAPI void APIENTRY glUseProgram (GLuint program);
|
||||
GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE (GLuint index, GLuint divisor);
|
||||
GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribDivisorEXT (GLuint index, GLuint divisor);
|
||||
GL_APICALL void GL_APIENTRY glVertexAttribDivisorNV (GLuint index, GLuint divisor);
|
||||
GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer);
|
||||
GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
|
||||
GL_APICALL void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
|
||||
// @END:protos@
|
||||
|
||||
// @BEGIN:reversedefs@
|
||||
#define tsglActiveTexture glActiveTexture
|
||||
#define tsglAttachShader glAttachShader
|
||||
#define tsglBindBuffer glBindBuffer
|
||||
#define tsglBindFramebuffer glBindFramebuffer
|
||||
#define tsglBindTexture glBindTexture
|
||||
#define tsglBindVertexArray glBindVertexArray
|
||||
#define tsglBlendEquationSeparate glBlendEquationSeparate
|
||||
#define tsglBlendFuncSeparate glBlendFuncSeparate
|
||||
#define tsglBufferData glBufferData
|
||||
#define tsglBufferSubData glBufferSubData
|
||||
#define tsglClear glClear
|
||||
#define tsglClearColor glClearColor
|
||||
#define tsglCompileShader glCompileShader
|
||||
#define tsglCreateProgram glCreateProgram
|
||||
#define tsglCreateShader glCreateShader
|
||||
#define tsglCullFace glCullFace
|
||||
#define tsglDebugMessageCallback glDebugMessageCallback
|
||||
#define tsglDebugMessageCallbackARB glDebugMessageCallbackARB
|
||||
#define tsglDebugMessageCallbackKHR glDebugMessageCallbackKHR
|
||||
#define tsglDebugMessageControl glDebugMessageControl
|
||||
#define tsglDebugMessageControlARB glDebugMessageControlARB
|
||||
#define tsglDebugMessageControlKHR glDebugMessageControlKHR
|
||||
#define tsglDeleteBuffers glDeleteBuffers
|
||||
#define tsglDeleteFramebuffers glDeleteFramebuffers
|
||||
#define tsglDeleteProgram glDeleteProgram
|
||||
#define tsglDeleteShader glDeleteShader
|
||||
#define tsglDeleteTextures glDeleteTextures
|
||||
#define tsglDeleteVertexArrays glDeleteVertexArrays
|
||||
#define tsglDepthFunc glDepthFunc
|
||||
#define tsglDepthMask glDepthMask
|
||||
#define tsglDisable glDisable
|
||||
#define tsglDisableVertexAttribArray glDisableVertexAttribArray
|
||||
#define tsglDrawArrays glDrawArrays
|
||||
#define tsglDrawArraysInstanced glDrawArraysInstanced
|
||||
#define tsglDrawArraysInstancedANGLE glDrawArraysInstancedANGLE
|
||||
#define tsglDrawArraysInstancedARB glDrawArraysInstancedARB
|
||||
#define tsglDrawArraysInstancedBaseInstance glDrawArraysInstancedBaseInstance
|
||||
#define tsglDrawArraysInstancedBaseInstanceEXT glDrawArraysInstancedBaseInstanceEXT
|
||||
#define tsglDrawArraysInstancedEXT glDrawArraysInstancedEXT
|
||||
#define tsglDrawArraysInstancedNV glDrawArraysInstancedNV
|
||||
#define tsglDrawBuffers glDrawBuffers
|
||||
#define tsglDrawBuffersARB glDrawBuffersARB
|
||||
#define tsglDrawBuffersEXT glDrawBuffersEXT
|
||||
#define tsglDrawElements glDrawElements
|
||||
#define tsglDrawElementsInstanced glDrawElementsInstanced
|
||||
#define tsglDrawElementsInstancedANGLE glDrawElementsInstancedANGLE
|
||||
#define tsglDrawElementsInstancedARB glDrawElementsInstancedARB
|
||||
#define tsglDrawElementsInstancedBaseInstance glDrawElementsInstancedBaseInstance
|
||||
#define tsglDrawElementsInstancedBaseInstanceEXT glDrawElementsInstancedBaseInstanceEXT
|
||||
#define tsglDrawElementsInstancedEXT glDrawElementsInstancedEXT
|
||||
#define tsglDrawElementsInstancedNV glDrawElementsInstancedNV
|
||||
#define tsglEnable glEnable
|
||||
#define tsglEnableVertexAttribArray glEnableVertexAttribArray
|
||||
#define tsglFramebufferTexture2D glFramebufferTexture2D
|
||||
#define tsglGenBuffers glGenBuffers
|
||||
#define tsglGenFramebuffers glGenFramebuffers
|
||||
#define tsglGenTextures glGenTextures
|
||||
#define tsglGenVertexArrays glGenVertexArrays
|
||||
#define tsglGetActiveUniform glGetActiveUniform
|
||||
#define tsglGetIntegerv glGetIntegerv
|
||||
#define tsglGetProgramInfoLog glGetProgramInfoLog
|
||||
#define tsglGetProgramiv glGetProgramiv
|
||||
#define tsglGetShaderInfoLog glGetShaderInfoLog
|
||||
#define tsglGetShaderiv glGetShaderiv
|
||||
#define tsglGetString glGetString
|
||||
#define tsglGetStringi glGetStringi
|
||||
#define tsglGetUniformLocation glGetUniformLocation
|
||||
#define tsglLinkProgram glLinkProgram
|
||||
#define tsglObjectLabel glObjectLabel
|
||||
#define tsglObjectLabelKHR glObjectLabelKHR
|
||||
#define tsglPixelStorei glPixelStorei
|
||||
#define tsglReadBuffer glReadBuffer
|
||||
#define tsglReadPixels glReadPixels
|
||||
#define tsglShaderSource glShaderSource
|
||||
#define tsglTexImage2D glTexImage2D
|
||||
#define tsglTexParameterf glTexParameterf
|
||||
#define tsglTexParameteri glTexParameteri
|
||||
#define tsglTexSubImage2D glTexSubImage2D
|
||||
#define tsglUniform1fv glUniform1fv
|
||||
#define tsglUniform1iv glUniform1iv
|
||||
#define tsglUniform2fv glUniform2fv
|
||||
#define tsglUniform2iv glUniform2iv
|
||||
#define tsglUniform3fv glUniform3fv
|
||||
#define tsglUniform3iv glUniform3iv
|
||||
#define tsglUniform4fv glUniform4fv
|
||||
#define tsglUniform4iv glUniform4iv
|
||||
#define tsglUniformMatrix3fv glUniformMatrix3fv
|
||||
#define tsglUniformMatrix4fv glUniformMatrix4fv
|
||||
#define tsglUseProgram glUseProgram
|
||||
#define tsglVertexAttribDivisor glVertexAttribDivisor
|
||||
#define tsglVertexAttribDivisorANGLE glVertexAttribDivisorANGLE
|
||||
#define tsglVertexAttribDivisorARB glVertexAttribDivisorARB
|
||||
#define tsglVertexAttribDivisorEXT glVertexAttribDivisorEXT
|
||||
#define tsglVertexAttribDivisorNV glVertexAttribDivisorNV
|
||||
#define tsglVertexAttribIPointer glVertexAttribIPointer
|
||||
#define tsglVertexAttribPointer glVertexAttribPointer
|
||||
#define tsglViewport glViewport
|
||||
// @END:reversedefs@
|
||||
#endif // LINK_TO_LIBGL
|
||||
|
||||
struct glext_s {
|
||||
struct {
|
||||
char major;
|
||||
|
@ -716,29 +72,29 @@ struct glext_s {
|
|||
// debug_output
|
||||
//
|
||||
|
||||
tsglDebugMessageControl_ptr DebugMessageControl;
|
||||
PFNGLDEBUGMESSAGECONTROLKHRPROC DebugMessageControl;
|
||||
#undef glDebugMessageControl
|
||||
#define glDebugMessageControl (glext.DebugMessageControl)
|
||||
|
||||
tsglDebugMessageCallback_ptr DebugMessageCallback;
|
||||
PFNGLDEBUGMESSAGECALLBACKKHRPROC DebugMessageCallback;
|
||||
#undef glDebugMessageCallback
|
||||
#define glDebugMessageCallback (glext.DebugMessageCallback)
|
||||
|
||||
tsglObjectLabel_ptr ObjectLabel;
|
||||
PFNGLOBJECTLABELPROC ObjectLabel;
|
||||
#undef glObjectLabel
|
||||
#define glObjectLabel (glext.ObjectLabel)
|
||||
|
||||
// instanced_arrays
|
||||
|
||||
tsglDrawArraysInstanced_ptr DrawArraysInstanced;
|
||||
PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced;
|
||||
#undef glDrawArraysInstanced
|
||||
#define glDrawArraysInstanced (glext.DrawArraysInstanced)
|
||||
|
||||
tsglDrawElementsInstanced_ptr DrawElementsInstanced;
|
||||
PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced;
|
||||
#undef glDrawElementsInstanced
|
||||
#define glDrawElementsInstanced (glext.DrawElementsInstanced)
|
||||
|
||||
tsglVertexAttribDivisor_ptr VertexAttribDivisor;
|
||||
PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor;
|
||||
#undef glVertexAttribDivisor
|
||||
#define glVertexAttribDivisor (glext.VertexAttribDivisor)
|
||||
|
||||
|
@ -746,11 +102,11 @@ struct glext_s {
|
|||
// base_instance
|
||||
//
|
||||
|
||||
tsglDrawArraysInstancedBaseInstance_ptr DrawArraysInstancedBaseInstance;
|
||||
PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance;
|
||||
#undef glDrawArraysInstancedBaseInstance
|
||||
#define glDrawArraysInstancedBaseInstance (glext.DrawArraysInstancedBaseInstance)
|
||||
|
||||
tsglDrawElementsInstancedBaseInstance_ptr DrawElementsInstancedBaseInstance;
|
||||
PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance;
|
||||
#undef glDrawElementsInstancedBaseInstance
|
||||
#define glDrawElementsInstancedBaseInstance (glext.DrawElementsInstancedBaseInstance)
|
||||
|
||||
|
@ -758,7 +114,7 @@ struct glext_s {
|
|||
// draw_buffers
|
||||
//
|
||||
|
||||
tsglDrawBuffers_ptr DrawBuffers;
|
||||
PFNGLDRAWBUFFERSPROC DrawBuffers;
|
||||
#undef glDrawBuffers
|
||||
#define glDrawBuffers (glext.DrawBuffers)
|
||||
};
|
||||
|
|
|
@ -4,3 +4,4 @@ r_gles20_src = files(
|
|||
)
|
||||
|
||||
r_gles20_deps = ['gl33'] + r_gl33_deps
|
||||
r_gles20_libdeps = r_gl33_libdeps
|
||||
|
|
|
@ -3,3 +3,4 @@ r_gles30_src = files(
|
|||
)
|
||||
|
||||
r_gles30_deps = ['gles20'] + r_gles20_deps
|
||||
r_gles30_libdeps = r_gles20_libdeps
|
||||
|
|
|
@ -3,6 +3,8 @@ renderer_src = files(
|
|||
'api.c',
|
||||
)
|
||||
|
||||
renderer_deps = []
|
||||
|
||||
subdir('common')
|
||||
subdir('glcommon')
|
||||
|
||||
|
@ -23,6 +25,8 @@ foreach m : modules
|
|||
renderer_src += get_variable('r_@0@_src'.format(m))
|
||||
r_macro += ['R(@0@)'.format(m)]
|
||||
needed_deps += get_variable('r_@0@_deps'.format(m))
|
||||
included_deps += [m]
|
||||
renderer_deps += get_variable('r_@0@_libdeps'.format(m))
|
||||
endif
|
||||
endforeach
|
||||
|
||||
|
@ -30,6 +34,7 @@ foreach dep : needed_deps
|
|||
if not included_deps.contains(dep)
|
||||
included_deps += [dep]
|
||||
renderer_src += get_variable('r_@0@_src'.format(dep))
|
||||
renderer_deps += get_variable('r_@0@_libdeps'.format(dep))
|
||||
endif
|
||||
endforeach
|
||||
|
||||
|
|
|
@ -4,3 +4,4 @@ r_null_src = files(
|
|||
)
|
||||
|
||||
r_null_deps = []
|
||||
r_null_libdeps = []
|
||||
|
|
282
subprojects/glad/include/KHR/khrplatform.h
Normal file
282
subprojects/glad/include/KHR/khrplatform.h
Normal file
|
@ -0,0 +1,282 @@
|
|||
#ifndef __khrplatform_h_
|
||||
#define __khrplatform_h_
|
||||
|
||||
/*
|
||||
** Copyright (c) 2008-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Permission is hereby granted, free of charge, to any person obtaining a
|
||||
** copy of this software and/or associated documentation files (the
|
||||
** "Materials"), to deal in the Materials without restriction, including
|
||||
** without limitation the rights to use, copy, modify, merge, publish,
|
||||
** distribute, sublicense, and/or sell copies of the Materials, and to
|
||||
** permit persons to whom the Materials are furnished to do so, subject to
|
||||
** the following conditions:
|
||||
**
|
||||
** The above copyright notice and this permission notice shall be included
|
||||
** in all copies or substantial portions of the Materials.
|
||||
**
|
||||
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
|
||||
*/
|
||||
|
||||
/* Khronos platform-specific types and definitions.
|
||||
*
|
||||
* The master copy of khrplatform.h is maintained in the Khronos EGL
|
||||
* Registry repository at https://github.com/KhronosGroup/EGL-Registry
|
||||
* The last semantic modification to khrplatform.h was at commit ID:
|
||||
* 67a3e0864c2d75ea5287b9f3d2eb74a745936692
|
||||
*
|
||||
* Adopters may modify this file to suit their platform. Adopters are
|
||||
* encouraged to submit platform specific modifications to the Khronos
|
||||
* group so that they can be included in future versions of this file.
|
||||
* Please submit changes by filing pull requests or issues on
|
||||
* the EGL Registry repository linked above.
|
||||
*
|
||||
*
|
||||
* See the Implementer's Guidelines for information about where this file
|
||||
* should be located on your system and for more details of its use:
|
||||
* http://www.khronos.org/registry/implementers_guide.pdf
|
||||
*
|
||||
* This file should be included as
|
||||
* #include <KHR/khrplatform.h>
|
||||
* by Khronos client API header files that use its types and defines.
|
||||
*
|
||||
* The types in khrplatform.h should only be used to define API-specific types.
|
||||
*
|
||||
* Types defined in khrplatform.h:
|
||||
* khronos_int8_t signed 8 bit
|
||||
* khronos_uint8_t unsigned 8 bit
|
||||
* khronos_int16_t signed 16 bit
|
||||
* khronos_uint16_t unsigned 16 bit
|
||||
* khronos_int32_t signed 32 bit
|
||||
* khronos_uint32_t unsigned 32 bit
|
||||
* khronos_int64_t signed 64 bit
|
||||
* khronos_uint64_t unsigned 64 bit
|
||||
* khronos_intptr_t signed same number of bits as a pointer
|
||||
* khronos_uintptr_t unsigned same number of bits as a pointer
|
||||
* khronos_ssize_t signed size
|
||||
* khronos_usize_t unsigned size
|
||||
* khronos_float_t signed 32 bit floating point
|
||||
* khronos_time_ns_t unsigned 64 bit time in nanoseconds
|
||||
* khronos_utime_nanoseconds_t unsigned time interval or absolute time in
|
||||
* nanoseconds
|
||||
* khronos_stime_nanoseconds_t signed time interval in nanoseconds
|
||||
* khronos_boolean_enum_t enumerated boolean type. This should
|
||||
* only be used as a base type when a client API's boolean type is
|
||||
* an enum. Client APIs which use an integer or other type for
|
||||
* booleans cannot use this as the base type for their boolean.
|
||||
*
|
||||
* Tokens defined in khrplatform.h:
|
||||
*
|
||||
* KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
|
||||
*
|
||||
* KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
|
||||
* KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
|
||||
*
|
||||
* Calling convention macros defined in this file:
|
||||
* KHRONOS_APICALL
|
||||
* KHRONOS_APIENTRY
|
||||
* KHRONOS_APIATTRIBUTES
|
||||
*
|
||||
* These may be used in function prototypes as:
|
||||
*
|
||||
* KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
|
||||
* int arg1,
|
||||
* int arg2) KHRONOS_APIATTRIBUTES;
|
||||
*/
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Definition of KHRONOS_APICALL
|
||||
*-------------------------------------------------------------------------
|
||||
* This precedes the return type of the function in the function prototype.
|
||||
*/
|
||||
#if defined(_WIN32) && !defined(__SCITECH_SNAP__)
|
||||
# define KHRONOS_APICALL __declspec(dllimport)
|
||||
#elif defined (__SYMBIAN32__)
|
||||
# define KHRONOS_APICALL IMPORT_C
|
||||
#elif defined(__ANDROID__)
|
||||
# define KHRONOS_APICALL __attribute__((visibility("default")))
|
||||
#else
|
||||
# define KHRONOS_APICALL
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Definition of KHRONOS_APIENTRY
|
||||
*-------------------------------------------------------------------------
|
||||
* This follows the return type of the function and precedes the function
|
||||
* name in the function prototype.
|
||||
*/
|
||||
#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
|
||||
/* Win32 but not WinCE */
|
||||
# define KHRONOS_APIENTRY __stdcall
|
||||
#else
|
||||
# define KHRONOS_APIENTRY
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Definition of KHRONOS_APIATTRIBUTES
|
||||
*-------------------------------------------------------------------------
|
||||
* This follows the closing parenthesis of the function prototype arguments.
|
||||
*/
|
||||
#if defined (__ARMCC_2__)
|
||||
#define KHRONOS_APIATTRIBUTES __softfp
|
||||
#else
|
||||
#define KHRONOS_APIATTRIBUTES
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* basic type definitions
|
||||
*-----------------------------------------------------------------------*/
|
||||
#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
|
||||
|
||||
|
||||
/*
|
||||
* Using <stdint.h>
|
||||
*/
|
||||
#include <stdint.h>
|
||||
typedef int32_t khronos_int32_t;
|
||||
typedef uint32_t khronos_uint32_t;
|
||||
typedef int64_t khronos_int64_t;
|
||||
typedef uint64_t khronos_uint64_t;
|
||||
#define KHRONOS_SUPPORT_INT64 1
|
||||
#define KHRONOS_SUPPORT_FLOAT 1
|
||||
|
||||
#elif defined(__VMS ) || defined(__sgi)
|
||||
|
||||
/*
|
||||
* Using <inttypes.h>
|
||||
*/
|
||||
#include <inttypes.h>
|
||||
typedef int32_t khronos_int32_t;
|
||||
typedef uint32_t khronos_uint32_t;
|
||||
typedef int64_t khronos_int64_t;
|
||||
typedef uint64_t khronos_uint64_t;
|
||||
#define KHRONOS_SUPPORT_INT64 1
|
||||
#define KHRONOS_SUPPORT_FLOAT 1
|
||||
|
||||
#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
|
||||
|
||||
/*
|
||||
* Win32
|
||||
*/
|
||||
typedef __int32 khronos_int32_t;
|
||||
typedef unsigned __int32 khronos_uint32_t;
|
||||
typedef __int64 khronos_int64_t;
|
||||
typedef unsigned __int64 khronos_uint64_t;
|
||||
#define KHRONOS_SUPPORT_INT64 1
|
||||
#define KHRONOS_SUPPORT_FLOAT 1
|
||||
|
||||
#elif defined(__sun__) || defined(__digital__)
|
||||
|
||||
/*
|
||||
* Sun or Digital
|
||||
*/
|
||||
typedef int khronos_int32_t;
|
||||
typedef unsigned int khronos_uint32_t;
|
||||
#if defined(__arch64__) || defined(_LP64)
|
||||
typedef long int khronos_int64_t;
|
||||
typedef unsigned long int khronos_uint64_t;
|
||||
#else
|
||||
typedef long long int khronos_int64_t;
|
||||
typedef unsigned long long int khronos_uint64_t;
|
||||
#endif /* __arch64__ */
|
||||
#define KHRONOS_SUPPORT_INT64 1
|
||||
#define KHRONOS_SUPPORT_FLOAT 1
|
||||
|
||||
#elif 0
|
||||
|
||||
/*
|
||||
* Hypothetical platform with no float or int64 support
|
||||
*/
|
||||
typedef int khronos_int32_t;
|
||||
typedef unsigned int khronos_uint32_t;
|
||||
#define KHRONOS_SUPPORT_INT64 0
|
||||
#define KHRONOS_SUPPORT_FLOAT 0
|
||||
|
||||
#else
|
||||
|
||||
/*
|
||||
* Generic fallback
|
||||
*/
|
||||
#include <stdint.h>
|
||||
typedef int32_t khronos_int32_t;
|
||||
typedef uint32_t khronos_uint32_t;
|
||||
typedef int64_t khronos_int64_t;
|
||||
typedef uint64_t khronos_uint64_t;
|
||||
#define KHRONOS_SUPPORT_INT64 1
|
||||
#define KHRONOS_SUPPORT_FLOAT 1
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Types that are (so far) the same on all platforms
|
||||
*/
|
||||
typedef signed char khronos_int8_t;
|
||||
typedef unsigned char khronos_uint8_t;
|
||||
typedef signed short int khronos_int16_t;
|
||||
typedef unsigned short int khronos_uint16_t;
|
||||
|
||||
/*
|
||||
* Types that differ between LLP64 and LP64 architectures - in LLP64,
|
||||
* pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
|
||||
* to be the only LLP64 architecture in current use.
|
||||
*/
|
||||
#ifdef _WIN64
|
||||
typedef signed long long int khronos_intptr_t;
|
||||
typedef unsigned long long int khronos_uintptr_t;
|
||||
typedef signed long long int khronos_ssize_t;
|
||||
typedef unsigned long long int khronos_usize_t;
|
||||
#else
|
||||
typedef signed long int khronos_intptr_t;
|
||||
typedef unsigned long int khronos_uintptr_t;
|
||||
typedef signed long int khronos_ssize_t;
|
||||
typedef unsigned long int khronos_usize_t;
|
||||
#endif
|
||||
|
||||
#if KHRONOS_SUPPORT_FLOAT
|
||||
/*
|
||||
* Float type
|
||||
*/
|
||||
typedef float khronos_float_t;
|
||||
#endif
|
||||
|
||||
#if KHRONOS_SUPPORT_INT64
|
||||
/* Time types
|
||||
*
|
||||
* These types can be used to represent a time interval in nanoseconds or
|
||||
* an absolute Unadjusted System Time. Unadjusted System Time is the number
|
||||
* of nanoseconds since some arbitrary system event (e.g. since the last
|
||||
* time the system booted). The Unadjusted System Time is an unsigned
|
||||
* 64 bit value that wraps back to 0 every 584 years. Time intervals
|
||||
* may be either signed or unsigned.
|
||||
*/
|
||||
typedef khronos_uint64_t khronos_utime_nanoseconds_t;
|
||||
typedef khronos_int64_t khronos_stime_nanoseconds_t;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Dummy value used to pad enum types to 32 bits.
|
||||
*/
|
||||
#ifndef KHRONOS_MAX_ENUM
|
||||
#define KHRONOS_MAX_ENUM 0x7FFFFFFF
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Enumerated boolean type
|
||||
*
|
||||
* Values other than zero should be considered to be true. Therefore
|
||||
* comparisons should not be made against KHRONOS_TRUE.
|
||||
*/
|
||||
typedef enum {
|
||||
KHRONOS_FALSE = 0,
|
||||
KHRONOS_TRUE = 1,
|
||||
KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
|
||||
} khronos_boolean_enum_t;
|
||||
|
||||
#endif /* __khrplatform_h_ */
|
2756
subprojects/glad/include/glad/glad.h
Normal file
2756
subprojects/glad/include/glad/glad.h
Normal file
File diff suppressed because it is too large
Load diff
59
subprojects/glad/meson.build
Normal file
59
subprojects/glad/meson.build
Normal file
|
@ -0,0 +1,59 @@
|
|||
project('glad', 'c')
|
||||
|
||||
glad_profile = 'core'
|
||||
glad_api = ['gl=3.3', 'gles2=3.0']
|
||||
glad_extensions = [
|
||||
'GL_ANGLE_depth_texture',
|
||||
'GL_ANGLE_instanced_arrays',
|
||||
'GL_ARB_base_instance',
|
||||
'GL_ARB_debug_output',
|
||||
'GL_ARB_depth_texture',
|
||||
'GL_ARB_draw_buffers',
|
||||
'GL_ARB_draw_instanced',
|
||||
'GL_ARB_instanced_arrays',
|
||||
'GL_ARB_pixel_buffer_object',
|
||||
'GL_ATI_draw_buffers',
|
||||
'GL_EXT_base_instance',
|
||||
'GL_EXT_draw_buffers',
|
||||
'GL_EXT_draw_instanced',
|
||||
'GL_EXT_instanced_arrays',
|
||||
'GL_EXT_pixel_buffer_object',
|
||||
'GL_KHR_debug',
|
||||
'GL_NV_draw_instanced',
|
||||
'GL_NV_instanced_arrays',
|
||||
'GL_NV_pixel_buffer_object',
|
||||
'GL_OES_depth_texture',
|
||||
'GL_SGIX_depth_texture',
|
||||
]
|
||||
|
||||
glad_program = find_program('glad', required : false)
|
||||
|
||||
glad_args = [
|
||||
'--profile', glad_profile,
|
||||
'--api', ','.join(glad_api),
|
||||
'--generator', 'c',
|
||||
'--spec', 'gl',
|
||||
'--extensions', ','.join(glad_extensions),
|
||||
'--no-loader',
|
||||
'--out-path', meson.current_source_dir(),
|
||||
]
|
||||
|
||||
glad_sources = []
|
||||
glad_includes = include_directories('include')
|
||||
|
||||
subdir('src')
|
||||
|
||||
glad_lib = static_library('glad', glad_sources,
|
||||
install : not meson.is_subproject(),
|
||||
build_by_default : not meson.is_subproject(),
|
||||
include_directories : glad_includes,
|
||||
)
|
||||
|
||||
glad_dep = declare_dependency(
|
||||
include_directories : glad_includes,
|
||||
link_with : glad_lib
|
||||
)
|
||||
|
||||
run_target('gen-gl-loader',
|
||||
command : [glad_program, glad_args],
|
||||
)
|
1564
subprojects/glad/src/glad.c
Normal file
1564
subprojects/glad/src/glad.c
Normal file
File diff suppressed because it is too large
Load diff
3
subprojects/glad/src/meson.build
Normal file
3
subprojects/glad/src/meson.build
Normal file
|
@ -0,0 +1,3 @@
|
|||
|
||||
glad_sources += files('glad.c')
|
||||
|
Loading…
Reference in a new issue