mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-26 02:18:40 +02:00
301 lines
14 KiB
Modula-2
301 lines
14 KiB
Modula-2
# This is the definition file for all GL extension stuff
|
|
|
|
%COPY_INTERFACE
|
|
// -------------------------------------------------------
|
|
// GL extensions constants
|
|
// -------------------------------------------------------
|
|
|
|
const
|
|
// GL_EXT_blend_minmax and GL_EXT_blend_color
|
|
GL_CONSTANT_COLOR_EXT = $8001;
|
|
GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
|
|
GL_CONSTANT_ALPHA_EXT = $8003;
|
|
GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
|
|
GL_BLEND_EQUATION_EXT = $8009;
|
|
GL_MIN_EXT = $8007;
|
|
GL_MAX_EXT = $8008;
|
|
GL_FUNC_ADD_EXT = $8006;
|
|
GL_FUNC_SUBTRACT_EXT = $800A;
|
|
GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
|
|
GL_BLEND_COLOR_EXT = $8005;
|
|
|
|
// GL_EXT_polygon_offset
|
|
GL_POLYGON_OFFSET_EXT = $8037;
|
|
GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
|
|
GL_POLYGON_OFFSET_BIAS_EXT = $8039;
|
|
|
|
// GL_EXT_vertex_array
|
|
GL_VERTEX_ARRAY_EXT = $8074;
|
|
GL_NORMAL_ARRAY_EXT = $8075;
|
|
GL_COLOR_ARRAY_EXT = $8076;
|
|
GL_INDEX_ARRAY_EXT = $8077;
|
|
GL_TEXTURE_COORD_ARRAY_EXT = $8078;
|
|
GL_EDGE_FLAG_ARRAY_EXT = $8079;
|
|
GL_VERTEX_ARRAY_SIZE_EXT = $807A;
|
|
GL_VERTEX_ARRAY_TYPE_EXT = $807B;
|
|
GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
|
|
GL_VERTEX_ARRAY_COUNT_EXT = $807D;
|
|
GL_NORMAL_ARRAY_TYPE_EXT = $807E;
|
|
GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
|
|
GL_NORMAL_ARRAY_COUNT_EXT = $8080;
|
|
GL_COLOR_ARRAY_SIZE_EXT = $8081;
|
|
GL_COLOR_ARRAY_TYPE_EXT = $8082;
|
|
GL_COLOR_ARRAY_STRIDE_EXT = $8083;
|
|
GL_COLOR_ARRAY_COUNT_EXT = $8084;
|
|
GL_INDEX_ARRAY_TYPE_EXT = $8085;
|
|
GL_INDEX_ARRAY_STRIDE_EXT = $8086;
|
|
GL_INDEX_ARRAY_COUNT_EXT = $8087;
|
|
GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
|
|
GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
|
|
GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
|
|
GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
|
|
GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
|
|
GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
|
|
GL_VERTEX_ARRAY_POINTER_EXT = $808E;
|
|
GL_NORMAL_ARRAY_POINTER_EXT = $808F;
|
|
GL_COLOR_ARRAY_POINTER_EXT = $8090;
|
|
GL_INDEX_ARRAY_POINTER_EXT = $8091;
|
|
GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
|
|
GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
|
|
|
|
// GL_EXT_texture_object
|
|
GL_TEXTURE_PRIORITY_EXT = $8066;
|
|
GL_TEXTURE_RESIDENT_EXT = $8067;
|
|
GL_TEXTURE_1D_BINDING_EXT = $8068;
|
|
GL_TEXTURE_2D_BINDING_EXT = $8069;
|
|
|
|
// GL_EXT_texture3D
|
|
GL_PACK_SKIP_IMAGES_EXT = $806B;
|
|
GL_PACK_IMAGE_HEIGHT_EXT = $806C;
|
|
GL_UNPACK_SKIP_IMAGES_EXT = $806D;
|
|
GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
|
|
GL_TEXTURE_3D_EXT = $806F;
|
|
GL_PROXY_TEXTURE_3D_EXT = $8070;
|
|
GL_TEXTURE_DEPTH_EXT = $8071;
|
|
GL_TEXTURE_WRAP_R_EXT = $8072;
|
|
GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
|
|
GL_TEXTURE_3D_BINDING_EXT = $806A;
|
|
|
|
// GL_EXT_paletted_texture
|
|
GL_TABLE_TOO_LARGE_EXT = $8031;
|
|
GL_COLOR_TABLE_FORMAT_EXT = $80D8;
|
|
GL_COLOR_TABLE_WIDTH_EXT = $80D9;
|
|
GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
|
|
GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
|
|
GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
|
|
GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
|
|
GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
|
|
GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
|
|
GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
|
|
GL_COLOR_INDEX1_EXT = $80E2;
|
|
GL_COLOR_INDEX2_EXT = $80E3;
|
|
GL_COLOR_INDEX4_EXT = $80E4;
|
|
GL_COLOR_INDEX8_EXT = $80E5;
|
|
GL_COLOR_INDEX12_EXT = $80E6;
|
|
GL_COLOR_INDEX16_EXT = $80E7;
|
|
|
|
// GL_EXT_shared_texture_palette
|
|
GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
|
|
|
|
// GL_EXT_point_parameters
|
|
GL_POINT_SIZE_MIN_EXT = $8126;
|
|
GL_POINT_SIZE_MAX_EXT = $8127;
|
|
GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
|
|
GL_DISTANCE_ATTENUATION_EXT = $8129;
|
|
|
|
// GL_EXT_rescale_normal
|
|
GL_RESCALE_NORMAL_EXT = $803A;
|
|
|
|
// GL_EXT_abgr
|
|
GL_ABGR_EXT = $8000;
|
|
|
|
// GL_SGIS_multitexture
|
|
GL_SELECTED_TEXTURE_SGIS = $835C;
|
|
GL_SELECTED_TEXTURE_COORD_SET_SGIS = $835D;
|
|
GL_MAX_TEXTURES_SGIS = $835E;
|
|
GL_TEXTURE0_SGIS = $835F;
|
|
GL_TEXTURE1_SGIS = $8360;
|
|
GL_TEXTURE2_SGIS = $8361;
|
|
GL_TEXTURE3_SGIS = $8362;
|
|
GL_TEXTURE_COORD_SET_SOURCE_SGIS = $8363;
|
|
|
|
// GL_EXT_multitexture
|
|
GL_SELECTED_TEXTURE_EXT = $83C0;
|
|
GL_SELECTED_TEXTURE_COORD_SET_EXT = $83C1;
|
|
GL_SELECTED_TEXTURE_TRANSFORM_EXT = $83C2;
|
|
GL_MAX_TEXTURES_EXT = $83C3;
|
|
GL_MAX_TEXTURE_COORD_SETS_EXT = $83C4;
|
|
GL_TEXTURE_ENV_COORD_SET_EXT = $83C5;
|
|
GL_TEXTURE0_EXT = $83C6;
|
|
GL_TEXTURE1_EXT = $83C7;
|
|
GL_TEXTURE2_EXT = $83C8;
|
|
GL_TEXTURE3_EXT = $83C9;
|
|
|
|
// GL_SGIS_texture_edge_clamp
|
|
GL_CLAMP_TO_EDGE_SGIS = $812F;
|
|
|
|
|
|
// -------------------------------------------------------
|
|
// GL Extension Procedures
|
|
// -------------------------------------------------------
|
|
|
|
var
|
|
%END
|
|
|
|
|
|
#=====================================================================
|
|
# Procedures and functions
|
|
#=====================================================================
|
|
|
|
%PROCS
|
|
// === 1.0 Extensions ===
|
|
|
|
// GL_EXT_blend_minmax
|
|
glBlendEquationEXT: procedure(mode: GLenum);
|
|
|
|
// GL_EXT_blend_color
|
|
glBlendColorEXT: procedure(red, green, blue, alpha: GLclampf);
|
|
|
|
// GL_EXT_polygon_offset
|
|
glPolygonOffsetEXT: procedure(factor, bias: Single);
|
|
|
|
// GL_EXT_vertex_array
|
|
glVertexPointerEXT: procedure(size: LongInt; AType: GLenum; stride, count: LongInt; var ptr);
|
|
glNormalPointerEXT: procedure(AType: GLenum; stride, count: LongInt; var ptr);
|
|
glColorPointerEXT: procedure(size: LongInt; AType: GLenum; stride, count: LongInt; var ptr);
|
|
glIndexPointerEXT: procedure(AType: GLenum; stride, count: LongInt; var ptr);
|
|
glTexCoordPointerEXT: procedure(size: LongInt; AType: GLenum; stride, count: LongInt; var ptr);
|
|
glEdgeFlagPointerEXT: procedure(stride, count: LongInt; var ptr: Boolean);
|
|
glGetPointervEXT: procedure(pname: GLenum; var params: Pointer);
|
|
glArrayElementEXT: procedure(i: LongInt);
|
|
glDrawArraysEXT: procedure(mode: GLEnum; first, count: LongInt);
|
|
|
|
// GL_EXT_texture_object
|
|
glGenTexturesEXT: procedure(n: LongInt; var textures: LongWord);
|
|
glDeleteTexturesEXT: procedure(n: LongInt; var textures: LongWord);
|
|
glBindTextureEXT: procedure(target: GLenum; texture: LongWord);
|
|
glPrioritizeTexturesEXT: procedure(n: LongInt; var textures: LongWord; var priorities: GLClampf);
|
|
glAreTexturesResidentEXT: function(n: LongInt; var textures: LongWord; var residences: Boolean): Boolean;
|
|
glIsTextureEXT: function(texture: LongWord): Boolean;
|
|
|
|
// GL_EXT_texture3D
|
|
glTexImage3DEXT: procedure(target: GLenum; level: LongInt; internalFormat: GLenum; width, height, depth, border: LongInt; format, AType: GLenum; var pixels);
|
|
glTexSubImage3DEXT: procedure(target: GLenum; level, xoffset, yoffset, zoffset, width, height, depth: LongInt; format, AType: GLenum; var pixels);
|
|
glCopyTexSubImage3DEXT: procedure(target: GLenum; level, xoffset, yoffset, zoffset, x, y, width, height: LongInt);
|
|
|
|
// GL_EXT_color_table
|
|
glColorTableEXT: procedure(target, internalformat: GLenum; width: LongInt; format, AType: GLenum; var table);
|
|
glColorSubTableEXT: procedure(target: GLenum; start, count: LongInt; format, AType: GLEnum; var data);
|
|
glGetColorTableEXT: procedure(target, format, AType: GLenum; var table);
|
|
glGetColorTableParameterfvEXT: procedure(target, pname: GLenum; var params: Single);
|
|
glGetColorTableParameterivEXT: procedure(target, pname: GLenum; var params: LongInt);
|
|
|
|
// GL_SGIS_multitexture
|
|
glMultiTexCoord1dSGIS: procedure(target: GLenum; s: Double);
|
|
glMultiTexCoord1dvSGIS: procedure(target: GLenum; var v: Double);
|
|
glMultiTexCoord1fSGIS: procedure(target: GLenum; s: Single);
|
|
glMultiTexCoord1fvSGIS: procedure(target: GLenum; var v: Single);
|
|
glMultiTexCoord1iSGIS: procedure(target: GLenum; s: LongInt);
|
|
glMultiTexCoord1ivSGIS: procedure(target: GLenum; var v: LongInt);
|
|
glMultiTexCoord1sSGIS: procedure(target: GLenum; s: ShortInt);
|
|
glMultiTexCoord1svSGIS: procedure(target: GLenum; var v: ShortInt);
|
|
glMultiTexCoord2dSGIS: procedure(target: GLenum; s, t: Double);
|
|
glMultiTexCoord2dvSGIS: procedure(target: GLenum; var v: Double);
|
|
glMultiTexCoord2fSGIS: procedure(target: GLenum; s, t: Single);
|
|
glMultiTexCoord2fvSGIS: procedure(target: GLenum; var v: Single);
|
|
glMultiTexCoord2iSGIS: procedure(target: GLenum; s, t: LongInt);
|
|
glMultiTexCoord2ivSGIS: procedure(target: GLenum; var v: LongInt);
|
|
glMultiTexCoord2sSGIS: procedure(target: GLenum; s, t: ShortInt);
|
|
glMultiTexCoord2svSGIS: procedure(target: GLenum; var v: ShortInt);
|
|
glMultiTexCoord3dSGIS: procedure(target: GLenum; s, t, r: Double);
|
|
glMultiTexCoord3dvSGIS: procedure(target: GLenum; var v: Double);
|
|
glMultiTexCoord3fSGIS: procedure(target: GLenum; s, t, r: Single);
|
|
glMultiTexCoord3fvSGIS: procedure(target: GLenum; var v: Single);
|
|
glMultiTexCoord3iSGIS: procedure(target: GLenum; s, t, r: LongInt);
|
|
glMultiTexCoord3ivSGIS: procedure(target: GLenum; var v: LongInt);
|
|
glMultiTexCoord3sSGIS: procedure(target: GLenum; s, t, r: ShortInt);
|
|
glMultiTexCoord3svSGIS: procedure(target: GLenum; var v: ShortInt);
|
|
glMultiTexCoord4dSGIS: procedure(target: GLenum; s, t, r, q: Double);
|
|
glMultiTexCoord4dvSGIS: procedure(target: GLenum; var v: Double);
|
|
glMultiTexCoord4fSGIS: procedure(target: GLenum; s, t, r, q: Single);
|
|
glMultiTexCoord4fvSGIS: procedure(target: GLenum; var v: Single);
|
|
glMultiTexCoord4iSGIS: procedure(target: GLenum; s, t, r, q: LongInt);
|
|
glMultiTexCoord4ivSGIS: procedure(target: GLenum; var v: LongInt);
|
|
glMultiTexCoord4sSGIS: procedure(target: GLenum; s, t, r, q: ShortInt);
|
|
glMultiTexCoord4svSGIS: procedure(target: GLenum; var v: ShortInt);
|
|
glMultiTexCoordPointerSGIS: procedure(target: GLenum; size: LongInt; AType: GLEnum; stride: LongInt; var APointer);
|
|
glSelectTextureSGIS: procedure(target: GLenum);
|
|
glSelectTextureCoordSetSGIS: procedure(target: GLenum);
|
|
|
|
// GL_EXT_multitexture
|
|
glMultiTexCoord1dEXT: procedure(target: GLenum; s: Double);
|
|
glMultiTexCoord1dvEXT: procedure(target: GLenum; var v: Double);
|
|
glMultiTexCoord1fEXT: procedure(target: GLenum; s: Single);
|
|
glMultiTexCoord1fvEXT: procedure(target: GLenum; var v: Single);
|
|
glMultiTexCoord1iEXT: procedure(target: GLenum; s: LongInt);
|
|
glMultiTexCoord1ivEXT: procedure(target: GLenum; var v: LongInt);
|
|
glMultiTexCoord1sEXT: procedure(target: GLenum; s: ShortInt);
|
|
glMultiTexCoord1svEXT: procedure(target: GLenum; var v: ShortInt);
|
|
glMultiTexCoord2dEXT: procedure(target: GLenum; s, t: Double);
|
|
glMultiTexCoord2dvEXT: procedure(target: GLenum; var v: Double);
|
|
glMultiTexCoord2fEXT: procedure(target: GLenum; s, t: Single);
|
|
glMultiTexCoord2fvEXT: procedure(target: GLenum; var v: Single);
|
|
glMultiTexCoord2iEXT: procedure(target: GLenum; s, t: LongInt);
|
|
glMultiTexCoord2ivEXT: procedure(target: GLenum; var v: LongInt);
|
|
glMultiTexCoord2sEXT: procedure(target: GLenum; s, t: ShortInt);
|
|
glMultiTexCoord2svEXT: procedure(target: GLenum; var v: ShortInt);
|
|
glMultiTexCoord3dEXT: procedure(target: GLenum; s, t, r: Double);
|
|
glMultiTexCoord3dvEXT: procedure(target: GLenum; var v: Double);
|
|
glMultiTexCoord3fEXT: procedure(target: GLenum; s, t, r: Single);
|
|
glMultiTexCoord3fvEXT: procedure(target: GLenum; var v: Single);
|
|
glMultiTexCoord3iEXT: procedure(target: GLenum; s, t, r: LongInt);
|
|
glMultiTexCoord3ivEXT: procedure(target: GLenum; var v: LongInt);
|
|
glMultiTexCoord3sEXT: procedure(target: GLenum; s, t, r: ShortInt);
|
|
glMultiTexCoord3svEXT: procedure(target: GLenum; var v: ShortInt);
|
|
glMultiTexCoord4dEXT: procedure(target: GLenum; s, t, r, q: Double);
|
|
glMultiTexCoord4dvEXT: procedure(target: GLenum; var v: Double);
|
|
glMultiTexCoord4fEXT: procedure(target: GLenum; s, t, r, q: Single);
|
|
glMultiTexCoord4fvEXT: procedure(target: GLenum; var v: Single);
|
|
glMultiTexCoord4iEXT: procedure(target: GLenum; s, t, r, q: LongInt);
|
|
glMultiTexCoord4ivEXT: procedure(target: GLenum; var v: LongInt);
|
|
glMultiTexCoord4sEXT: procedure(target: GLenum; s, t, r, q: ShortInt);
|
|
glMultiTexCoord4svEXT: procedure(target: GLenum; var v: ShortInt);
|
|
glInterleavedTextureCoordSetsEXT: procedure(factor: LongInt);
|
|
glSelectTextureEXT: procedure(target: GLenum);
|
|
glSelectTextureCoordSetEXT: procedure(target: GLenum);
|
|
glSelectTextureTransformEXT: procedure(target: GLenum);
|
|
|
|
// GL_EXT_point_parameters
|
|
glPointParameterfEXT: procedure(pname: GLenum; param: Single);
|
|
glPointParameterfvEXT: procedure(pname: GLenum; var params: Single);
|
|
|
|
// GL_MESA_window_pos
|
|
glWindowPos2iMESA: procedure(x, y: LongInt);
|
|
glWindowPos2sMESA: procedure(x, y: ShortInt);
|
|
glWindowPos2fMESA: procedure(x, y: Single);
|
|
glWindowPos2dMESA: procedure(x, y: Double);
|
|
glWindowPos2ivMESA: procedure(var p: LongInt);
|
|
glWindowPos2svMESA: procedure(var p: ShortInt);
|
|
glWindowPos2fvMESA: procedure(var p: Single);
|
|
glWindowPos2dvMESA: procedure(var p: Double);
|
|
glWindowPos3iMESA: procedure(x, y, z: LongInt);
|
|
glWindowPos3sMESA: procedure(x, y, z: ShortInt);
|
|
glWindowPos3fMESA: procedure(x, y, z: Single);
|
|
glWindowPos3dMESA: procedure(x, y, z: Double);
|
|
glWindowPos3ivMESA: procedure(var p: LongInt);
|
|
glWindowPos3svMESA: procedure(var p: ShortInt);
|
|
glWindowPos3fvMESA: procedure(var p: Single);
|
|
glWindowPos3dvMESA: procedure(var p: Double);
|
|
glWindowPos4iMESA: procedure(x, y, z, w: LongInt);
|
|
glWindowPos4sMESA: procedure(x, y, z, w: ShortInt);
|
|
glWindowPos4fMESA: procedure(x, y, z, w: Single);
|
|
glWindowPos4dMESA: procedure(x, y, z, w: Double);
|
|
glWindowPos4ivMESA: procedure(var p: LongInt);
|
|
glWindowPos4svMESA: procedure(var p: ShortInt);
|
|
glWindowPos4fvMESA: procedure(var p: Single);
|
|
glWindowPos4dvMESA: procedure(var p: Double);
|
|
|
|
// GL_MESA_resize_buffers
|
|
glResizeBuffersMESA: procedure;
|
|
%END
|