unit GLext; (************************************************** * OpenGL extension loading library * * Generated by MetaGLext, written by Tom Nuydens * * (tom@delphi3d.net -- http://www.delphi3d.net * **************************************************) //*** Generated on 2/22/2005 interface uses Windows, SysUtils, GL; // Not present in Windows.pas. function wglGetProcAddress(proc: PChar): Pointer; stdcall; external 'OpenGL32.dll'; // Test if the given extension name is present in the given extension string. function glext_ExtensionSupported(const extension: String; const searchIn: String): Boolean; // Load the extension with the given name. function glext_LoadExtension(ext: String): Boolean; // Some types that were introduced by extensions: type GLintptrARB = Integer; PGLintptrARB = ^GLintptrARB; GLsizeiptrARB = Integer; PGLsizeiptrARB = ^GLsizeiptrARB; GLcharARB = Char; PGLcharARB = ^GLcharARB; GLhandleARB = Cardinal; PGLhandleARB = ^GLhandleARB; GLintptr = Integer; PGLintptr = ^GLintptr; GLsizeiptr = Integer; PGLsizeiptr = ^GLsizeiptr; GLchar = Char; PGLchar = ^GLchar; //***** GL_version_1_2 *****// const GL_UNSIGNED_BYTE_3_3_2 = $8032; GL_UNSIGNED_SHORT_4_4_4_4 = $8033; GL_UNSIGNED_SHORT_5_5_5_1 = $8034; GL_UNSIGNED_INT_8_8_8_8 = $8035; GL_UNSIGNED_INT_10_10_10_2 = $8036; GL_RESCALE_NORMAL = $803A; GL_UNSIGNED_BYTE_2_3_3_REV = $8362; GL_UNSIGNED_SHORT_5_6_5 = $8363; GL_UNSIGNED_SHORT_5_6_5_REV = $8364; GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365; GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366; GL_UNSIGNED_INT_8_8_8_8_REV = $8367; GL_UNSIGNED_INT_2_10_10_10_REV = $8368; GL_BGR = $80E0; GL_BGRA = $80E1; GL_MAX_ELEMENTS_VERTICES = $80E8; GL_MAX_ELEMENTS_INDICES = $80E9; GL_CLAMP_TO_EDGE = $812F; GL_TEXTURE_MIN_LOD = $813A; GL_TEXTURE_MAX_LOD = $813B; GL_TEXTURE_BASE_LEVEL = $813C; GL_TEXTURE_MAX_LEVEL = $813D; GL_LIGHT_MODEL_COLOR_CONTROL = $81F8; GL_SINGLE_COLOR = $81F9; GL_SEPARATE_SPECULAR_COLOR = $81FA; GL_SMOOTH_POINT_SIZE_RANGE = $0B12; GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13; GL_SMOOTH_LINE_WIDTH_RANGE = $0B22; GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23; GL_ALIASED_POINT_SIZE_RANGE = $846D; GL_ALIASED_LINE_WIDTH_RANGE = $846E; GL_PACK_SKIP_IMAGES = $806B; GL_PACK_IMAGE_HEIGHT = $806C; GL_UNPACK_SKIP_IMAGES = $806D; GL_UNPACK_IMAGE_HEIGHT = $806E; GL_TEXTURE_3D = $806F; GL_PROXY_TEXTURE_3D = $8070; GL_TEXTURE_DEPTH = $8071; GL_TEXTURE_WRAP_R = $8072; GL_MAX_3D_TEXTURE_SIZE = $8073; var glDrawRangeElements: procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall = nil; glTexImage3D: procedure(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); stdcall = nil; glTexSubImage3D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); stdcall = nil; glCopyTexSubImage3D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall = nil; function Load_GL_version_1_2: Boolean; //***** GL_ARB_imaging *****// const GL_CONSTANT_COLOR = $8001; GL_ONE_MINUS_CONSTANT_COLOR = $8002; GL_CONSTANT_ALPHA = $8003; GL_ONE_MINUS_CONSTANT_ALPHA = $8004; GL_BLEND_COLOR = $8005; GL_FUNC_ADD = $8006; GL_MIN = $8007; GL_MAX = $8008; GL_BLEND_EQUATION = $8009; GL_FUNC_SUBTRACT = $800A; GL_FUNC_REVERSE_SUBTRACT = $800B; GL_CONVOLUTION_1D = $8010; GL_CONVOLUTION_2D = $8011; GL_SEPARABLE_2D = $8012; GL_CONVOLUTION_BORDER_MODE = $8013; GL_CONVOLUTION_FILTER_SCALE = $8014; GL_CONVOLUTION_FILTER_BIAS = $8015; GL_REDUCE = $8016; GL_CONVOLUTION_FORMAT = $8017; GL_CONVOLUTION_WIDTH = $8018; GL_CONVOLUTION_HEIGHT = $8019; GL_MAX_CONVOLUTION_WIDTH = $801A; GL_MAX_CONVOLUTION_HEIGHT = $801B; GL_POST_CONVOLUTION_RED_SCALE = $801C; GL_POST_CONVOLUTION_GREEN_SCALE = $801D; GL_POST_CONVOLUTION_BLUE_SCALE = $801E; GL_POST_CONVOLUTION_ALPHA_SCALE = $801F; GL_POST_CONVOLUTION_RED_BIAS = $8020; GL_POST_CONVOLUTION_GREEN_BIAS = $8021; GL_POST_CONVOLUTION_BLUE_BIAS = $8022; GL_POST_CONVOLUTION_ALPHA_BIAS = $8023; GL_HISTOGRAM = $8024; GL_PROXY_HISTOGRAM = $8025; GL_HISTOGRAM_WIDTH = $8026; GL_HISTOGRAM_FORMAT = $8027; GL_HISTOGRAM_RED_SIZE = $8028; GL_HISTOGRAM_GREEN_SIZE = $8029; GL_HISTOGRAM_BLUE_SIZE = $802A; GL_HISTOGRAM_ALPHA_SIZE = $802B; GL_HISTOGRAM_LUMINANCE_SIZE = $802C; GL_HISTOGRAM_SINK = $802D; GL_MINMAX = $802E; GL_MINMAX_FORMAT = $802F; GL_MINMAX_SINK = $8030; GL_TABLE_TOO_LARGE = $8031; GL_COLOR_MATRIX = $80B1; GL_COLOR_MATRIX_STACK_DEPTH = $80B2; GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3; GL_POST_COLOR_MATRIX_RED_SCALE = $80B4; GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5; GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6; GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7; GL_POST_COLOR_MATRIX_RED_BIAS = $80B8; GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9; GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA; GL_POST_COLOR_MATIX_ALPHA_BIAS = $80BB; GL_COLOR_TABLE = $80D0; GL_POST_CONVOLUTION_COLOR_TABLE = $80D1; GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2; GL_PROXY_COLOR_TABLE = $80D3; GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4; GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5; GL_COLOR_TABLE_SCALE = $80D6; GL_COLOR_TABLE_BIAS = $80D7; GL_COLOR_TABLE_FORMAT = $80D8; GL_COLOR_TABLE_WIDTH = $80D9; GL_COLOR_TABLE_RED_SIZE = $80DA; GL_COLOR_TABLE_GREEN_SIZE = $80DB; GL_COLOR_TABLE_BLUE_SIZE = $80DC; GL_COLOR_TABLE_ALPHA_SIZE = $80DD; GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE; GL_COLOR_TABLE_INTENSITY_SIZE = $80DF; GL_IGNORE_BORDER = $8150; GL_CONSTANT_BORDER = $8151; GL_WRAP_BORDER = $8152; GL_REPLICATE_BORDER = $8153; GL_CONVOLUTION_BORDER_COLOR = $8154; var glColorTable: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); stdcall = nil; glColorTableParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil; glColorTableParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall = nil; glCopyColorTable: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall = nil; glGetColorTable: procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); stdcall = nil; glGetColorTableParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; glGetColorTableParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glColorSubTable: procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); stdcall = nil; glCopyColorSubTable: procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); stdcall = nil; glConvolutionFilter1D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); stdcall = nil; glConvolutionFilter2D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); stdcall = nil; glConvolutionParameterf: procedure(target: GLenum; pname: GLenum; params: GLfloat); stdcall = nil; glConvolutionParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil; glConvolutionParameteri: procedure(target: GLenum; pname: GLenum; params: GLint); stdcall = nil; glConvolutionParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall = nil; glCopyConvolutionFilter1D: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall = nil; glCopyConvolutionFilter2D: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall = nil; glGetConvolutionFilter: procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); stdcall = nil; glGetConvolutionParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; glGetConvolutionParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetSeparableFilter: procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); stdcall = nil; glSeparableFilter2D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: PGLvoid; const column: PGLvoid); stdcall = nil; glGetHistogram: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); stdcall = nil; glGetHistogramParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; glGetHistogramParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetMinmax: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); stdcall = nil; glGetMinmaxParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; glGetMinmaxParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glHistogram: procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); stdcall = nil; glMinmax: procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); stdcall = nil; glResetHistogram: procedure(target: GLenum); stdcall = nil; glResetMinmax: procedure(target: GLenum); stdcall = nil; glBlendEquation: procedure(mode: GLenum); stdcall = nil; glBlendColor: procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); stdcall = nil; function Load_GL_ARB_imaging: Boolean; //***** GL_version_1_3 *****// const GL_TEXTURE0 = $84C0; GL_TEXTURE1 = $84C1; GL_TEXTURE2 = $84C2; GL_TEXTURE3 = $84C3; GL_TEXTURE4 = $84C4; GL_TEXTURE5 = $84C5; GL_TEXTURE6 = $84C6; GL_TEXTURE7 = $84C7; GL_TEXTURE8 = $84C8; GL_TEXTURE9 = $84C9; GL_TEXTURE10 = $84CA; GL_TEXTURE11 = $84CB; GL_TEXTURE12 = $84CC; GL_TEXTURE13 = $84CD; GL_TEXTURE14 = $84CE; GL_TEXTURE15 = $84CF; GL_TEXTURE16 = $84D0; GL_TEXTURE17 = $84D1; GL_TEXTURE18 = $84D2; GL_TEXTURE19 = $84D3; GL_TEXTURE20 = $84D4; GL_TEXTURE21 = $84D5; GL_TEXTURE22 = $84D6; GL_TEXTURE23 = $84D7; GL_TEXTURE24 = $84D8; GL_TEXTURE25 = $84D9; GL_TEXTURE26 = $84DA; GL_TEXTURE27 = $84DB; GL_TEXTURE28 = $84DC; GL_TEXTURE29 = $84DD; GL_TEXTURE30 = $84DE; GL_TEXTURE31 = $84DF; GL_ACTIVE_TEXTURE = $84E0; GL_CLIENT_ACTIVE_TEXTURE = $84E1; GL_MAX_TEXTURE_UNITS = $84E2; GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3; GL_TRANSPOSE_PROJECTION_MATRIX = $84E4; GL_TRANSPOSE_TEXTURE_MATRIX = $84E5; GL_TRANSPOSE_COLOR_MATRIX = $84E6; GL_MULTISAMPLE = $809D; GL_SAMPLE_ALPHA_TO_COVERAGE = $809E; GL_SAMPLE_ALPHA_TO_ONE = $809F; GL_SAMPLE_COVERAGE = $80A0; GL_SAMPLE_BUFFERS = $80A8; GL_SAMPLES = $80A9; GL_SAMPLE_COVERAGE_VALUE = $80AA; GL_SAMPLE_COVERAGE_INVERT = $80AB; GL_MULTISAMPLE_BIT = $20000000; GL_NORMAL_MAP = $8511; GL_REFLECTION_MAP = $8512; GL_TEXTURE_CUBE_MAP = $8513; GL_TEXTURE_BINDING_CUBE_MAP = $8514; GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515; GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516; GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517; GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518; GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519; GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A; GL_PROXY_TEXTURE_CUBE_MAP = $851B; GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C; GL_COMPRESSED_ALPHA = $84E9; GL_COMPRESSED_LUMINANCE = $84EA; GL_COMPRESSED_LUMINANCE_ALPHA = $84EB; GL_COMPRESSED_INTENSITY = $84EC; GL_COMPRESSED_RGB = $84ED; GL_COMPRESSED_RGBA = $84EE; GL_TEXTURE_COMPRESSION_HINT = $84EF; GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0; GL_TEXTURE_COMPRESSED = $86A1; GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2; GL_COMPRESSED_TEXTURE_FORMATS = $86A3; GL_CLAMP_TO_BORDER = $812D; GL_CLAMP_TO_BORDER_SGIS = $812D; GL_COMBINE = $8570; GL_COMBINE_RGB = $8571; GL_COMBINE_ALPHA = $8572; GL_SOURCE0_RGB = $8580; GL_SOURCE1_RGB = $8581; GL_SOURCE2_RGB = $8582; GL_SOURCE0_ALPHA = $8588; GL_SOURCE1_ALPHA = $8589; GL_SOURCE2_ALPHA = $858A; GL_OPERAND0_RGB = $8590; GL_OPERAND1_RGB = $8591; GL_OPERAND2_RGB = $8592; GL_OPERAND0_ALPHA = $8598; GL_OPERAND1_ALPHA = $8599; GL_OPERAND2_ALPHA = $859A; GL_RGB_SCALE = $8573; GL_ADD_SIGNED = $8574; GL_INTERPOLATE = $8575; GL_SUBTRACT = $84E7; GL_CONSTANT = $8576; GL_PRIMARY_COLOR = $8577; GL_PREVIOUS = $8578; GL_DOT3_RGB = $86AE; GL_DOT3_RGBA = $86AF; var glActiveTexture: procedure(texture: GLenum); stdcall = nil; glClientActiveTexture: procedure(texture: GLenum); stdcall = nil; glMultiTexCoord1d: procedure(target: GLenum; s: GLdouble); stdcall = nil; glMultiTexCoord1dv: procedure(target: GLenum; const v: PGLdouble); stdcall = nil; glMultiTexCoord1f: procedure(target: GLenum; s: GLfloat); stdcall = nil; glMultiTexCoord1fv: procedure(target: GLenum; const v: PGLfloat); stdcall = nil; glMultiTexCoord1i: procedure(target: GLenum; s: GLint); stdcall = nil; glMultiTexCoord1iv: procedure(target: GLenum; const v: PGLint); stdcall = nil; glMultiTexCoord1s: procedure(target: GLenum; s: GLshort); stdcall = nil; glMultiTexCoord1sv: procedure(target: GLenum; const v: PGLshort); stdcall = nil; glMultiTexCoord2d: procedure(target: GLenum; s: GLdouble; t: GLdouble); stdcall = nil; glMultiTexCoord2dv: procedure(target: GLenum; const v: PGLdouble); stdcall = nil; glMultiTexCoord2f: procedure(target: GLenum; s: GLfloat; t: GLfloat); stdcall = nil; glMultiTexCoord2fv: procedure(target: GLenum; const v: PGLfloat); stdcall = nil; glMultiTexCoord2i: procedure(target: GLenum; s: GLint; t: GLint); stdcall = nil; glMultiTexCoord2iv: procedure(target: GLenum; const v: PGLint); stdcall = nil; glMultiTexCoord2s: procedure(target: GLenum; s: GLshort; t: GLshort); stdcall = nil; glMultiTexCoord2sv: procedure(target: GLenum; const v: PGLshort); stdcall = nil; glMultiTexCoord3d: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); stdcall = nil; glMultiTexCoord3dv: procedure(target: GLenum; const v: PGLdouble); stdcall = nil; glMultiTexCoord3f: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); stdcall = nil; glMultiTexCoord3fv: procedure(target: GLenum; const v: PGLfloat); stdcall = nil; glMultiTexCoord3i: procedure(target: GLenum; s: GLint; t: GLint; r: GLint); stdcall = nil; glMultiTexCoord3iv: procedure(target: GLenum; const v: PGLint); stdcall = nil; glMultiTexCoord3s: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); stdcall = nil; glMultiTexCoord3sv: procedure(target: GLenum; const v: PGLshort); stdcall = nil; glMultiTexCoord4d: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); stdcall = nil; glMultiTexCoord4dv: procedure(target: GLenum; const v: PGLdouble); stdcall = nil; glMultiTexCoord4f: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); stdcall = nil; glMultiTexCoord4fv: procedure(target: GLenum; const v: PGLfloat); stdcall = nil; glMultiTexCoord4i: procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); stdcall = nil; glMultiTexCoord4iv: procedure(target: GLenum; const v: PGLint); stdcall = nil; glMultiTexCoord4s: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); stdcall = nil; glMultiTexCoord4sv: procedure(target: GLenum; const v: PGLshort); stdcall = nil; glLoadTransposeMatrixf: procedure(const m: PGLfloat); stdcall = nil; glLoadTransposeMatrixd: procedure(const m: PGLdouble); stdcall = nil; glMultTransposeMatrixf: procedure(const m: PGLfloat); stdcall = nil; glMultTransposeMatrixd: procedure(const m: PGLdouble); stdcall = nil; glSampleCoverage: procedure(value: GLclampf; invert: GLboolean); stdcall = nil; glCompressedTexImage3D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glCompressedTexImage2D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glCompressedTexImage1D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glCompressedTexSubImage3D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glCompressedTexSubImage2D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glCompressedTexSubImage1D: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glGetCompressedTexImage: procedure(target: GLenum; level: GLint; img: PGLvoid); stdcall = nil; function Load_GL_version_1_3: Boolean; //***** GL_ARB_multitexture *****// const GL_TEXTURE0_ARB = $84C0; GL_TEXTURE1_ARB = $84C1; GL_TEXTURE2_ARB = $84C2; GL_TEXTURE3_ARB = $84C3; GL_TEXTURE4_ARB = $84C4; GL_TEXTURE5_ARB = $84C5; GL_TEXTURE6_ARB = $84C6; GL_TEXTURE7_ARB = $84C7; GL_TEXTURE8_ARB = $84C8; GL_TEXTURE9_ARB = $84C9; GL_TEXTURE10_ARB = $84CA; GL_TEXTURE11_ARB = $84CB; GL_TEXTURE12_ARB = $84CC; GL_TEXTURE13_ARB = $84CD; GL_TEXTURE14_ARB = $84CE; GL_TEXTURE15_ARB = $84CF; GL_TEXTURE16_ARB = $84D0; GL_TEXTURE17_ARB = $84D1; GL_TEXTURE18_ARB = $84D2; GL_TEXTURE19_ARB = $84D3; GL_TEXTURE20_ARB = $84D4; GL_TEXTURE21_ARB = $84D5; GL_TEXTURE22_ARB = $84D6; GL_TEXTURE23_ARB = $84D7; GL_TEXTURE24_ARB = $84D8; GL_TEXTURE25_ARB = $84D9; GL_TEXTURE26_ARB = $84DA; GL_TEXTURE27_ARB = $84DB; GL_TEXTURE28_ARB = $84DC; GL_TEXTURE29_ARB = $84DD; GL_TEXTURE30_ARB = $84DE; GL_TEXTURE31_ARB = $84DF; GL_ACTIVE_TEXTURE_ARB = $84E0; GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1; GL_MAX_TEXTURE_UNITS_ARB = $84E2; var glActiveTextureARB: procedure(texture: GLenum); stdcall = nil; glClientActiveTextureARB: procedure(texture: GLenum); stdcall = nil; glMultiTexCoord1dARB: procedure(target: GLenum; s: GLdouble); stdcall = nil; glMultiTexCoord1dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall = nil; glMultiTexCoord1fARB: procedure(target: GLenum; s: GLfloat); stdcall = nil; glMultiTexCoord1fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall = nil; glMultiTexCoord1iARB: procedure(target: GLenum; s: GLint); stdcall = nil; glMultiTexCoord1ivARB: procedure(target: GLenum; const v: PGLint); stdcall = nil; glMultiTexCoord1sARB: procedure(target: GLenum; s: GLshort); stdcall = nil; glMultiTexCoord1svARB: procedure(target: GLenum; const v: PGLshort); stdcall = nil; glMultiTexCoord2dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble); stdcall = nil; glMultiTexCoord2dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall = nil; glMultiTexCoord2fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat); stdcall = nil; glMultiTexCoord2fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall = nil; glMultiTexCoord2iARB: procedure(target: GLenum; s: GLint; t: GLint); stdcall = nil; glMultiTexCoord2ivARB: procedure(target: GLenum; const v: PGLint); stdcall = nil; glMultiTexCoord2sARB: procedure(target: GLenum; s: GLshort; t: GLshort); stdcall = nil; glMultiTexCoord2svARB: procedure(target: GLenum; const v: PGLshort); stdcall = nil; glMultiTexCoord3dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); stdcall = nil; glMultiTexCoord3dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall = nil; glMultiTexCoord3fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); stdcall = nil; glMultiTexCoord3fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall = nil; glMultiTexCoord3iARB: procedure(target: GLenum; s: GLint; t: GLint; r: GLint); stdcall = nil; glMultiTexCoord3ivARB: procedure(target: GLenum; const v: PGLint); stdcall = nil; glMultiTexCoord3sARB: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); stdcall = nil; glMultiTexCoord3svARB: procedure(target: GLenum; const v: PGLshort); stdcall = nil; glMultiTexCoord4dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); stdcall = nil; glMultiTexCoord4dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall = nil; glMultiTexCoord4fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); stdcall = nil; glMultiTexCoord4fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall = nil; glMultiTexCoord4iARB: procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); stdcall = nil; glMultiTexCoord4ivARB: procedure(target: GLenum; const v: PGLint); stdcall = nil; glMultiTexCoord4sARB: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); stdcall = nil; glMultiTexCoord4svARB: procedure(target: GLenum; const v: PGLshort); stdcall = nil; function Load_GL_ARB_multitexture: Boolean; //***** GL_ARB_transpose_matrix *****// const GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3; GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4; GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5; GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6; var glLoadTransposeMatrixfARB: procedure(m: PGLfloat); stdcall = nil; glLoadTransposeMatrixdARB: procedure(m: PGLdouble); stdcall = nil; glMultTransposeMatrixfARB: procedure(m: PGLfloat); stdcall = nil; glMultTransposeMatrixdARB: procedure(m: PGLdouble); stdcall = nil; function Load_GL_ARB_transpose_matrix: Boolean; //***** GL_ARB_multisample *****// const WGL_SAMPLE_BUFFERS_ARB = $2041; WGL_SAMPLES_ARB = $2042; GL_MULTISAMPLE_ARB = $809D; GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E; GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F; GL_SAMPLE_COVERAGE_ARB = $80A0; GL_MULTISAMPLE_BIT_ARB = $20000000; GL_SAMPLE_BUFFERS_ARB = $80A8; GL_SAMPLES_ARB = $80A9; GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA; GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB; var glSampleCoverageARB: procedure(value: GLclampf; invert: GLboolean); stdcall = nil; function Load_GL_ARB_multisample: Boolean; //***** GL_ARB_texture_env_add *****// function Load_GL_ARB_texture_env_add: Boolean; //***** WGL_ARB_extensions_string *****// var wglGetExtensionsStringARB: function(hdc: HDC): Pchar; stdcall = nil; function Load_WGL_ARB_extensions_string: Boolean; //***** WGL_ARB_buffer_region *****// const WGL_FRONT_COLOR_BUFFER_BIT_ARB = $0001; WGL_BACK_COLOR_BUFFER_BIT_ARB = $0002; WGL_DEPTH_BUFFER_BIT_ARB = $0004; WGL_STENCIL_BUFFER_BIT_ARB = $0008; var wglCreateBufferRegionARB: function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall = nil; wglDeleteBufferRegionARB: procedure(hRegion: THandle); stdcall = nil; wglSaveBufferRegionARB: function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): BOOL; stdcall = nil; wglRestoreBufferRegionARB: function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): BOOL; stdcall = nil; function Load_WGL_ARB_buffer_region: Boolean; //***** GL_ARB_texture_cube_map *****// const GL_NORMAL_MAP_ARB = $8511; GL_REFLECTION_MAP_ARB = $8512; GL_TEXTURE_CUBE_MAP_ARB = $8513; GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514; GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515; GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516; GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517; GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518; GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519; GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A; GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B; GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C; function Load_GL_ARB_texture_cube_map: Boolean; //***** GL_ARB_depth_texture *****// const GL_DEPTH_COMPONENT16_ARB = $81A5; GL_DEPTH_COMPONENT24_ARB = $81A6; GL_DEPTH_COMPONENT32_ARB = $81A7; GL_TEXTURE_DEPTH_SIZE_ARB = $884A; GL_DEPTH_TEXTURE_MODE_ARB = $884B; function Load_GL_ARB_depth_texture: Boolean; //***** GL_ARB_point_parameters *****// const GL_POINT_SIZE_MIN_ARB = $8126; GL_POINT_SIZE_MAX_ARB = $8127; GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128; GL_POINT_DISTANCE_ATTENUATION_ARB = $8129; var glPointParameterfARB: procedure(pname: GLenum; param: GLfloat); stdcall = nil; glPointParameterfvARB: procedure(pname: GLenum; params: PGLfloat); stdcall = nil; function Load_GL_ARB_point_parameters: Boolean; //***** GL_ARB_shadow *****// const GL_TEXTURE_COMPARE_MODE_ARB = $884C; GL_TEXTURE_COMPARE_FUNC_ARB = $884D; GL_COMPARE_R_TO_TEXTURE_ARB = $884E; function Load_GL_ARB_shadow: Boolean; //***** GL_ARB_shadow_ambient *****// const GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF; function Load_GL_ARB_shadow_ambient: Boolean; //***** GL_ARB_texture_border_clamp *****// const GL_CLAMP_TO_BORDER_ARB = $812D; function Load_GL_ARB_texture_border_clamp: Boolean; //***** GL_ARB_texture_compression *****// const GL_COMPRESSED_ALPHA_ARB = $84E9; GL_COMPRESSED_LUMINANCE_ARB = $84EA; GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB; GL_COMPRESSED_INTENSITY_ARB = $84EC; GL_COMPRESSED_RGB_ARB = $84ED; GL_COMPRESSED_RGBA_ARB = $84EE; GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF; GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0; GL_TEXTURE_COMPRESSED_ARB = $86A1; GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2; GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3; var glCompressedTexImage3DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glCompressedTexImage2DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glCompressedTexImage1DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glCompressedTexSubImage3DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glCompressedTexSubImage2DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glCompressedTexSubImage1DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); stdcall = nil; glGetCompressedTexImageARB: procedure(target: GLenum; lod: GLint; img: PGLvoid); stdcall = nil; function Load_GL_ARB_texture_compression: Boolean; //***** GL_ARB_texture_env_combine *****// const GL_COMBINE_ARB = $8570; GL_COMBINE_RGB_ARB = $8571; GL_COMBINE_ALPHA_ARB = $8572; GL_SOURCE0_RGB_ARB = $8580; GL_SOURCE1_RGB_ARB = $8581; GL_SOURCE2_RGB_ARB = $8582; GL_SOURCE0_ALPHA_ARB = $8588; GL_SOURCE1_ALPHA_ARB = $8589; GL_SOURCE2_ALPHA_ARB = $858A; GL_OPERAND0_RGB_ARB = $8590; GL_OPERAND1_RGB_ARB = $8591; GL_OPERAND2_RGB_ARB = $8592; GL_OPERAND0_ALPHA_ARB = $8598; GL_OPERAND1_ALPHA_ARB = $8599; GL_OPERAND2_ALPHA_ARB = $859A; GL_RGB_SCALE_ARB = $8573; GL_ADD_SIGNED_ARB = $8574; GL_INTERPOLATE_ARB = $8575; GL_SUBTRACT_ARB = $84E7; GL_CONSTANT_ARB = $8576; GL_PRIMARY_COLOR_ARB = $8577; GL_PREVIOUS_ARB = $8578; function Load_GL_ARB_texture_env_combine: Boolean; //***** GL_ARB_texture_env_crossbar *****// function Load_GL_ARB_texture_env_crossbar: Boolean; //***** GL_ARB_texture_env_dot3 *****// const GL_DOT3_RGB_ARB = $86AE; GL_DOT3_RGBA_ARB = $86AF; function Load_GL_ARB_texture_env_dot3: Boolean; //***** GL_ARB_texture_mirrored_repeat *****// const GL_MIRRORED_REPEAT_ARB = $8370; function Load_GL_ARB_texture_mirrored_repeat: Boolean; //***** GL_ARB_vertex_blend *****// const GL_MAX_VERTEX_UNITS_ARB = $86A4; GL_ACTIVE_VERTEX_UNITS_ARB = $86A5; GL_WEIGHT_SUM_UNITY_ARB = $86A6; GL_VERTEX_BLEND_ARB = $86A7; GL_MODELVIEW0_ARB = $1700; GL_MODELVIEW1_ARB = $850A; GL_MODELVIEW2_ARB = $8722; GL_MODELVIEW3_ARB = $8723; GL_MODELVIEW4_ARB = $8724; GL_MODELVIEW5_ARB = $8725; GL_MODELVIEW6_ARB = $8726; GL_MODELVIEW7_ARB = $8727; GL_MODELVIEW8_ARB = $8728; GL_MODELVIEW9_ARB = $8729; GL_MODELVIEW10_ARB = $872A; GL_MODELVIEW11_ARB = $872B; GL_MODELVIEW12_ARB = $872C; GL_MODELVIEW13_ARB = $872D; GL_MODELVIEW14_ARB = $872E; GL_MODELVIEW15_ARB = $872F; GL_MODELVIEW16_ARB = $8730; GL_MODELVIEW17_ARB = $8731; GL_MODELVIEW18_ARB = $8732; GL_MODELVIEW19_ARB = $8733; GL_MODELVIEW20_ARB = $8734; GL_MODELVIEW21_ARB = $8735; GL_MODELVIEW22_ARB = $8736; GL_MODELVIEW23_ARB = $8737; GL_MODELVIEW24_ARB = $8738; GL_MODELVIEW25_ARB = $8739; GL_MODELVIEW26_ARB = $873A; GL_MODELVIEW27_ARB = $873B; GL_MODELVIEW28_ARB = $873C; GL_MODELVIEW29_ARB = $873D; GL_MODELVIEW30_ARB = $873E; GL_MODELVIEW31_ARB = $873F; GL_CURRENT_WEIGHT_ARB = $86A8; GL_WEIGHT_ARRAY_TYPE_ARB = $86A9; GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA; GL_WEIGHT_ARRAY_SIZE_ARB = $86AB; GL_WEIGHT_ARRAY_POINTER_ARB = $86AC; GL_WEIGHT_ARRAY_ARB = $86AD; var glWeightbvARB: procedure(size: GLint; weights: PGLbyte); stdcall = nil; glWeightsvARB: procedure(size: GLint; weights: PGLshort); stdcall = nil; glWeightivARB: procedure(size: GLint; weights: PGLint); stdcall = nil; glWeightfvARB: procedure(size: GLint; weights: PGLfloat); stdcall = nil; glWeightdvARB: procedure(size: GLint; weights: PGLdouble); stdcall = nil; glWeightvARB: procedure(size: GLint; weights: PGLdouble); stdcall = nil; glWeightubvARB: procedure(size: GLint; weights: PGLubyte); stdcall = nil; glWeightusvARB: procedure(size: GLint; weights: PGLushort); stdcall = nil; glWeightuivARB: procedure(size: GLint; weights: PGLuint); stdcall = nil; glWeightPointerARB: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall = nil; glVertexBlendARB: procedure(count: GLint); stdcall = nil; function Load_GL_ARB_vertex_blend: Boolean; //***** GL_ARB_vertex_program *****// const GL_VERTEX_PROGRAM_ARB = $8620; GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642; GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643; GL_COLOR_SUM_ARB = $8458; GL_PROGRAM_FORMAT_ASCII_ARB = $8875; GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622; GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623; GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624; GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625; GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A; GL_CURRENT_VERTEX_ATTRIB_ARB = $8626; GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645; GL_PROGRAM_LENGTH_ARB = $8627; GL_PROGRAM_FORMAT_ARB = $8876; GL_PROGRAM_BINDING_ARB = $8677; GL_PROGRAM_INSTRUCTIONS_ARB = $88A0; GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1; GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2; GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3; GL_PROGRAM_TEMPORARIES_ARB = $88A4; GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5; GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6; GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7; GL_PROGRAM_PARAMETERS_ARB = $88A8; GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9; GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA; GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB; GL_PROGRAM_ATTRIBS_ARB = $88AC; GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD; GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE; GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF; GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0; GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1; GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2; GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3; GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4; GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5; GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6; GL_PROGRAM_STRING_ARB = $8628; GL_PROGRAM_ERROR_POSITION_ARB = $864B; GL_CURRENT_MATRIX_ARB = $8641; GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7; GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640; GL_MAX_VERTEX_ATTRIBS_ARB = $8869; GL_MAX_PROGRAM_MATRICES_ARB = $862F; GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E; GL_PROGRAM_ERROR_STRING_ARB = $8874; GL_MATRIX0_ARB = $88C0; GL_MATRIX1_ARB = $88C1; GL_MATRIX2_ARB = $88C2; GL_MATRIX3_ARB = $88C3; GL_MATRIX4_ARB = $88C4; GL_MATRIX5_ARB = $88C5; GL_MATRIX6_ARB = $88C6; GL_MATRIX7_ARB = $88C7; GL_MATRIX8_ARB = $88C8; GL_MATRIX9_ARB = $88C9; GL_MATRIX10_ARB = $88CA; GL_MATRIX11_ARB = $88CB; GL_MATRIX12_ARB = $88CC; GL_MATRIX13_ARB = $88CD; GL_MATRIX14_ARB = $88CE; GL_MATRIX15_ARB = $88CF; GL_MATRIX16_ARB = $88D0; GL_MATRIX17_ARB = $88D1; GL_MATRIX18_ARB = $88D2; GL_MATRIX19_ARB = $88D3; GL_MATRIX20_ARB = $88D4; GL_MATRIX21_ARB = $88D5; GL_MATRIX22_ARB = $88D6; GL_MATRIX23_ARB = $88D7; GL_MATRIX24_ARB = $88D8; GL_MATRIX25_ARB = $88D9; GL_MATRIX26_ARB = $88DA; GL_MATRIX27_ARB = $88DB; GL_MATRIX28_ARB = $88DC; GL_MATRIX29_ARB = $88DD; GL_MATRIX30_ARB = $88DE; GL_MATRIX31_ARB = $88DF; var glVertexAttrib1sARB: procedure(index: GLuint; x: GLshort); stdcall = nil; glVertexAttrib1fARB: procedure(index: GLuint; x: GLfloat); stdcall = nil; glVertexAttrib1dARB: procedure(index: GLuint; x: GLdouble); stdcall = nil; glVertexAttrib2sARB: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall = nil; glVertexAttrib2fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall = nil; glVertexAttrib2dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall = nil; glVertexAttrib3sARB: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall = nil; glVertexAttrib3fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glVertexAttrib3dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil; glVertexAttrib4sARB: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall = nil; glVertexAttrib4fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil; glVertexAttrib4dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil; glVertexAttrib4NubARB: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall = nil; glVertexAttrib1svARB: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib1fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib1dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib2svARB: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib2fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib2dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib3svARB: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib3fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib3dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib4bvARB: procedure(index: GLuint; const v: PGLbyte); stdcall = nil; glVertexAttrib4svARB: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib4ivARB: procedure(index: GLuint; const v: PGLint); stdcall = nil; glVertexAttrib4ubvARB: procedure(index: GLuint; const v: PGLubyte); stdcall = nil; glVertexAttrib4usvARB: procedure(index: GLuint; const v: PGLushort); stdcall = nil; glVertexAttrib4uivARB: procedure(index: GLuint; const v: PGLuint); stdcall = nil; glVertexAttrib4fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib4dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib4NbvARB: procedure(index: GLuint; const v: PGLbyte); stdcall = nil; glVertexAttrib4NsvARB: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib4NivARB: procedure(index: GLuint; const v: PGLint); stdcall = nil; glVertexAttrib4NubvARB: procedure(index: GLuint; const v: PGLubyte); stdcall = nil; glVertexAttrib4NusvARB: procedure(index: GLuint; const v: PGLushort); stdcall = nil; glVertexAttrib4NuivARB: procedure(index: GLuint; const v: PGLuint); stdcall = nil; glVertexAttribPointerARB: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const pointer: PGLvoid); stdcall = nil; glEnableVertexAttribArrayARB: procedure(index: GLuint); stdcall = nil; glDisableVertexAttribArrayARB: procedure(index: GLuint); stdcall = nil; glProgramStringARB: procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); stdcall = nil; glBindProgramARB: procedure(target: GLenum; _program: GLuint); stdcall = nil; glDeleteProgramsARB: procedure(n: GLsizei; const programs: PGLuint); stdcall = nil; glGenProgramsARB: procedure(n: GLsizei; programs: PGLuint); stdcall = nil; glProgramEnvParameter4dARB: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil; glProgramEnvParameter4dvARB: procedure(target: GLenum; index: GLuint; const params: PGLdouble); stdcall = nil; glProgramEnvParameter4fARB: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil; glProgramEnvParameter4fvARB: procedure(target: GLenum; index: GLuint; const params: PGLfloat); stdcall = nil; glProgramLocalParameter4dARB: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil; glProgramLocalParameter4dvARB: procedure(target: GLenum; index: GLuint; const params: PGLdouble); stdcall = nil; glProgramLocalParameter4fARB: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil; glProgramLocalParameter4fvARB: procedure(target: GLenum; index: GLuint; const params: PGLfloat); stdcall = nil; glGetProgramEnvParameterdvARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); stdcall = nil; glGetProgramEnvParameterfvARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); stdcall = nil; glGetProgramLocalParameterdvARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); stdcall = nil; glGetProgramLocalParameterfvARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); stdcall = nil; glGetProgramivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetProgramStringARB: procedure(target: GLenum; pname: GLenum; _string: PGLvoid); stdcall = nil; glGetVertexAttribdvARB: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall = nil; glGetVertexAttribfvARB: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil; glGetVertexAttribivARB: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetVertexAttribPointervARB: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); stdcall = nil; glIsProgramARB: function(_program: GLuint): GLboolean; stdcall = nil; function Load_GL_ARB_vertex_program: Boolean; //***** GL_ARB_window_pos *****// var glWindowPos2dARB: procedure(x: GLdouble; y: GLdouble); stdcall = nil; glWindowPos2fARB: procedure(x: GLfloat; y: GLfloat); stdcall = nil; glWindowPos2iARB: procedure(x: GLint; y: GLint); stdcall = nil; glWindowPos2sARB: procedure(x: GLshort; y: GLshort); stdcall = nil; glWindowPos2dvARB: procedure(const p: PGLdouble); stdcall = nil; glWindowPos2fvARB: procedure(const p: PGLfloat); stdcall = nil; glWindowPos2ivARB: procedure(const p: PGLint); stdcall = nil; glWindowPos2svARB: procedure(const p: PGLshort); stdcall = nil; glWindowPos3dARB: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil; glWindowPos3fARB: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glWindowPos3iARB: procedure(x: GLint; y: GLint; z: GLint); stdcall = nil; glWindowPos3sARB: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall = nil; glWindowPos3dvARB: procedure(const p: PGLdouble); stdcall = nil; glWindowPos3fvARB: procedure(const p: PGLfloat); stdcall = nil; glWindowPos3ivARB: procedure(const p: PGLint); stdcall = nil; glWindowPos3svARB: procedure(const p: PGLshort); stdcall = nil; function Load_GL_ARB_window_pos: Boolean; //***** GL_EXT_422_pixels *****// const GL_422_EXT = $80CC; GL_422_REV_EXT = $80CD; GL_422_AVERAGE_EXT = $80CE; GL_422_REV_AVERAGE_EXT = $80CF; function Load_GL_EXT_422_pixels: Boolean; //***** GL_EXT_abgr *****// const GL_ABGR_EXT = $8000; function Load_GL_EXT_abgr: Boolean; //***** GL_EXT_bgra *****// const GL_BGR_EXT = $80E0; GL_BGRA_EXT = $80E1; function Load_GL_EXT_bgra: Boolean; //***** GL_EXT_blend_color *****// const 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_COLOR_EXT = $8005; var glBlendColorEXT: procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); stdcall = nil; function Load_GL_EXT_blend_color: Boolean; //***** GL_EXT_blend_func_separate *****// const GL_BLEND_DST_RGB_EXT = $80C8; GL_BLEND_SRC_RGB_EXT = $80C9; GL_BLEND_DST_ALPHA_EXT = $80CA; GL_BLEND_SRC_ALPHA_EXT = $80CB; var glBlendFuncSeparateEXT: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); stdcall = nil; function Load_GL_EXT_blend_func_separate: Boolean; //***** GL_EXT_blend_logic_op *****// function Load_GL_EXT_blend_logic_op: Boolean; //***** GL_EXT_blend_minmax *****// const GL_FUNC_ADD_EXT = $8006; GL_MIN_EXT = $8007; GL_MAX_EXT = $8008; GL_BLEND_EQUATION_EXT = $8009; var glBlendEquationEXT: procedure(mode: GLenum); stdcall = nil; function Load_GL_EXT_blend_minmax: Boolean; //***** GL_EXT_blend_subtract *****// const GL_FUNC_SUBTRACT_EXT = $800A; GL_FUNC_REVERSE_SUBTRACT_EXT = $800B; function Load_GL_EXT_blend_subtract: Boolean; //***** GL_EXT_clip_volume_hint *****// const GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0; function Load_GL_EXT_clip_volume_hint: Boolean; //***** GL_EXT_color_subtable *****// var glColorSubTableEXT: procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); stdcall = nil; glCopyColorSubTableEXT: procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); stdcall = nil; function Load_GL_EXT_color_subtable: Boolean; //***** GL_EXT_compiled_vertex_array *****// const GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8; GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9; var glLockArraysEXT: procedure(first: GLint; count: GLsizei); stdcall = nil; glUnlockArraysEXT: procedure(); stdcall = nil; function Load_GL_EXT_compiled_vertex_array: Boolean; //***** GL_EXT_convolution *****// const GL_CONVOLUTION_1D_EXT = $8010; GL_CONVOLUTION_2D_EXT = $8011; GL_SEPARABLE_2D_EXT = $8012; GL_CONVOLUTION_BORDER_MODE_EXT = $8013; GL_CONVOLUTION_FILTER_SCALE_EXT = $8014; GL_CONVOLUTION_FILTER_BIAS_EXT = $8015; GL_REDUCE_EXT = $8016; GL_CONVOLUTION_FORMAT_EXT = $8017; GL_CONVOLUTION_WIDTH_EXT = $8018; GL_CONVOLUTION_HEIGHT_EXT = $8019; GL_MAX_CONVOLUTION_WIDTH_EXT = $801A; GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B; GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C; GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D; GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E; GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F; GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020; GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021; GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022; GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023; var glConvolutionFilter1DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); stdcall = nil; glConvolutionFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); stdcall = nil; glCopyConvolutionFilter1DEXT: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall = nil; glCopyConvolutionFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall = nil; glGetConvolutionFilterEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); stdcall = nil; glSeparableFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: PGLvoid; const column: PGLvoid); stdcall = nil; glGetSeparableFilterEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); stdcall = nil; glConvolutionParameteriEXT: procedure(target: GLenum; pname: GLenum; param: GLint); stdcall = nil; glConvolutionParameterivEXT: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall = nil; glConvolutionParameterfEXT: procedure(target: GLenum; pname: GLenum; param: GLfloat); stdcall = nil; glConvolutionParameterfvEXT: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil; glGetConvolutionParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetConvolutionParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; function Load_GL_EXT_convolution: Boolean; //***** GL_EXT_histogram *****// const GL_HISTOGRAM_EXT = $8024; GL_PROXY_HISTOGRAM_EXT = $8025; GL_HISTOGRAM_WIDTH_EXT = $8026; GL_HISTOGRAM_FORMAT_EXT = $8027; GL_HISTOGRAM_RED_SIZE_EXT = $8028; GL_HISTOGRAM_GREEN_SIZE_EXT = $8029; GL_HISTOGRAM_BLUE_SIZE_EXT = $802A; GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B; GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C; GL_HISTOGRAM_SINK_EXT = $802D; GL_MINMAX_EXT = $802E; GL_MINMAX_FORMAT_EXT = $802F; GL_MINMAX_SINK_EXT = $8030; var glHistogramEXT: procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); stdcall = nil; glResetHistogramEXT: procedure(target: GLenum); stdcall = nil; glGetHistogramEXT: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); stdcall = nil; glGetHistogramParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetHistogramParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; glMinmaxEXT: procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); stdcall = nil; glResetMinmaxEXT: procedure(target: GLenum); stdcall = nil; glGetMinmaxEXT: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); stdcall = nil; glGetMinmaxParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetMinmaxParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; function Load_GL_EXT_histogram: Boolean; //***** GL_EXT_multi_draw_arrays *****// var glMultiDrawArraysEXT: procedure(mode: GLenum; first: PGLint; count: PGLsizei; primcount: GLsizei); stdcall = nil; glMultiDrawElementsEXT: procedure(mode: GLenum; count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); stdcall = nil; function Load_GL_EXT_multi_draw_arrays: Boolean; //***** GL_EXT_packed_pixels *****// const GL_UNSIGNED_BYTE_3_3_2_EXT = $8032; GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033; GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034; GL_UNSIGNED_INT_8_8_8_8_EXT = $8035; GL_UNSIGNED_INT_10_10_10_2_EXT = $8036; function Load_GL_EXT_packed_pixels: Boolean; //***** GL_EXT_paletted_texture *****// const 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_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_TEXTURE_1D = $0DE0; GL_TEXTURE_2D = $0DE1; GL_TEXTURE_3D_EXT = $806F; // GL_TEXTURE_CUBE_MAP_ARB { already defined } GL_PROXY_TEXTURE_1D = $8063; GL_PROXY_TEXTURE_2D = $8064; GL_PROXY_TEXTURE_3D_EXT = $8070; // GL_PROXY_TEXTURE_CUBE_MAP_ARB { already defined } // GL_TEXTURE_1D { already defined } // GL_TEXTURE_2D { already defined } // GL_TEXTURE_3D_EXT { already defined } // GL_TEXTURE_CUBE_MAP_ARB { already defined } var glColorTableEXT: procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); stdcall = nil; // glColorSubTableEXT { already defined } glGetColorTableEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); stdcall = nil; glGetColorTableParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetColorTableParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; function Load_GL_EXT_paletted_texture: Boolean; //***** GL_EXT_point_parameters *****// const GL_POINT_SIZE_MIN_EXT = $8126; GL_POINT_SIZE_MAX_EXT = $8127; GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128; GL_DISTANCE_ATTENUATION_EXT = $8129; var glPointParameterfEXT: procedure(pname: GLenum; param: GLfloat); stdcall = nil; glPointParameterfvEXT: procedure(pname: GLenum; params: PGLfloat); stdcall = nil; function Load_GL_EXT_point_parameters: Boolean; //***** GL_EXT_polygon_offset *****// const GL_POLYGON_OFFSET_EXT = $8037; GL_POLYGON_OFFSET_FACTOR_EXT = $8038; GL_POLYGON_OFFSET_BIAS_EXT = $8039; var glPolygonOffsetEXT: procedure(factor: GLfloat; bias: GLfloat); stdcall = nil; function Load_GL_EXT_polygon_offset: Boolean; //***** GL_EXT_separate_specular_color *****// const GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8; GL_SINGLE_COLOR_EXT = $81F9; GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA; function Load_GL_EXT_separate_specular_color: Boolean; //***** GL_EXT_shadow_funcs *****// function Load_GL_EXT_shadow_funcs: Boolean; //***** GL_EXT_shared_texture_palette *****// const GL_SHARED_TEXTURE_PALETTE_EXT = $81FB; function Load_GL_EXT_shared_texture_palette: Boolean; //***** GL_EXT_stencil_two_side *****// const GL_STENCIL_TEST_TWO_SIDE_EXT = $8910; GL_ACTIVE_STENCIL_FACE_EXT = $8911; var glActiveStencilFaceEXT: procedure(face: GLenum); stdcall = nil; function Load_GL_EXT_stencil_two_side: Boolean; //***** GL_EXT_stencil_wrap *****// const GL_INCR_WRAP_EXT = $8507; GL_DECR_WRAP_EXT = $8508; function Load_GL_EXT_stencil_wrap: Boolean; //***** GL_EXT_subtexture *****// var glTexSubImage1DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); stdcall = nil; glTexSubImage2DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); stdcall = nil; glTexSubImage3DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); stdcall = nil; function Load_GL_EXT_subtexture: Boolean; //***** GL_EXT_texture3D *****// const 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 { already defined } // GL_PROXY_TEXTURE_3D_EXT { already defined } GL_TEXTURE_DEPTH_EXT = $8071; GL_TEXTURE_WRAP_R_EXT = $8072; GL_MAX_3D_TEXTURE_SIZE_EXT = $8073; var glTexImage3DEXT: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); stdcall = nil; function Load_GL_EXT_texture3D: Boolean; //***** GL_EXT_texture_compression_s3tc *****// const GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0; GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1; GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2; GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3; function Load_GL_EXT_texture_compression_s3tc: Boolean; //***** GL_EXT_texture_env_add *****// function Load_GL_EXT_texture_env_add: Boolean; //***** GL_EXT_texture_env_combine *****// const GL_COMBINE_EXT = $8570; GL_COMBINE_RGB_EXT = $8571; GL_COMBINE_ALPHA_EXT = $8572; GL_SOURCE0_RGB_EXT = $8580; GL_SOURCE1_RGB_EXT = $8581; GL_SOURCE2_RGB_EXT = $8582; GL_SOURCE0_ALPHA_EXT = $8588; GL_SOURCE1_ALPHA_EXT = $8589; GL_SOURCE2_ALPHA_EXT = $858A; GL_OPERAND0_RGB_EXT = $8590; GL_OPERAND1_RGB_EXT = $8591; GL_OPERAND2_RGB_EXT = $8592; GL_OPERAND0_ALPHA_EXT = $8598; GL_OPERAND1_ALPHA_EXT = $8599; GL_OPERAND2_ALPHA_EXT = $859A; GL_RGB_SCALE_EXT = $8573; GL_ADD_SIGNED_EXT = $8574; GL_INTERPOLATE_EXT = $8575; GL_CONSTANT_EXT = $8576; GL_PRIMARY_COLOR_EXT = $8577; GL_PREVIOUS_EXT = $8578; function Load_GL_EXT_texture_env_combine: Boolean; //***** GL_EXT_texture_env_dot3 *****// const GL_DOT3_RGB_EXT = $8740; GL_DOT3_RGBA_EXT = $8741; function Load_GL_EXT_texture_env_dot3: Boolean; //***** GL_EXT_texture_filter_anisotropic *****// const GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE; GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF; function Load_GL_EXT_texture_filter_anisotropic: Boolean; //***** GL_EXT_texture_lod_bias *****// const GL_TEXTURE_FILTER_CONTROL_EXT = $8500; GL_TEXTURE_LOD_BIAS_EXT = $8501; GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD; function Load_GL_EXT_texture_lod_bias: Boolean; //***** GL_EXT_texture_object *****// const GL_TEXTURE_PRIORITY_EXT = $8066; GL_TEXTURE_RESIDENT_EXT = $8067; GL_TEXTURE_1D_BINDING_EXT = $8068; GL_TEXTURE_2D_BINDING_EXT = $8069; GL_TEXTURE_3D_BINDING_EXT = $806A; var glGenTexturesEXT: procedure(n: GLsizei; textures: PGLuint); stdcall = nil; glDeleteTexturesEXT: procedure(n: GLsizei; const textures: PGLuint); stdcall = nil; glBindTextureEXT: procedure(target: GLenum; texture: GLuint); stdcall = nil; glPrioritizeTexturesEXT: procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); stdcall = nil; glAreTexturesResidentEXT: function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; stdcall = nil; glIsTextureEXT: function(texture: GLuint): GLboolean; stdcall = nil; function Load_GL_EXT_texture_object: Boolean; //***** GL_EXT_vertex_array *****// const 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_DOUBLE_EXT = $140A; 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; var glArrayElementEXT: procedure(i: GLint); stdcall = nil; glDrawArraysEXT: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall = nil; glVertexPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); stdcall = nil; glNormalPointerEXT: procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); stdcall = nil; glColorPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); stdcall = nil; glIndexPointerEXT: procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); stdcall = nil; glTexCoordPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); stdcall = nil; glEdgeFlagPointerEXT: procedure(stride: GLsizei; count: GLsizei; const pointer: PGLboolean); stdcall = nil; glGetPointervEXT: procedure(pname: GLenum; params: PGLvoid); stdcall = nil; function Load_GL_EXT_vertex_array: Boolean; //***** GL_EXT_vertex_shader *****// const GL_VERTEX_SHADER_EXT = $8780; GL_VARIANT_VALUE_EXT = $87E4; GL_VARIANT_DATATYPE_EXT = $87E5; GL_VARIANT_ARRAY_STRIDE_EXT = $87E6; GL_VARIANT_ARRAY_TYPE_EXT = $87E7; GL_VARIANT_ARRAY_EXT = $87E8; GL_VARIANT_ARRAY_POINTER_EXT = $87E9; GL_INVARIANT_VALUE_EXT = $87EA; GL_INVARIANT_DATATYPE_EXT = $87EB; GL_LOCAL_CONSTANT_VALUE_EXT = $87EC; GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED; GL_OP_INDEX_EXT = $8782; GL_OP_NEGATE_EXT = $8783; GL_OP_DOT3_EXT = $8784; GL_OP_DOT4_EXT = $8785; GL_OP_MUL_EXT = $8786; GL_OP_ADD_EXT = $8787; GL_OP_MADD_EXT = $8788; GL_OP_FRAC_EXT = $8789; GL_OP_MAX_EXT = $878A; GL_OP_MIN_EXT = $878B; GL_OP_SET_GE_EXT = $878C; GL_OP_SET_LT_EXT = $878D; GL_OP_CLAMP_EXT = $878E; GL_OP_FLOOR_EXT = $878F; GL_OP_ROUND_EXT = $8790; GL_OP_EXP_BASE_2_EXT = $8791; GL_OP_LOG_BASE_2_EXT = $8792; GL_OP_POWER_EXT = $8793; GL_OP_RECIP_EXT = $8794; GL_OP_RECIP_SQRT_EXT = $8795; GL_OP_SUB_EXT = $8796; GL_OP_CROSS_PRODUCT_EXT = $8797; GL_OP_MULTIPLY_MATRIX_EXT = $8798; GL_OP_MOV_EXT = $8799; GL_OUTPUT_VERTEX_EXT = $879A; GL_OUTPUT_COLOR0_EXT = $879B; GL_OUTPUT_COLOR1_EXT = $879C; GL_OUTPUT_TEXTURE_COORD0_EXT = $879D; GL_OUTPUT_TEXTURE_COORD1_EXT = $879E; GL_OUTPUT_TEXTURE_COORD2_EXT = $879F; GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0; GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1; GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2; GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3; GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4; GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5; GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6; GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7; GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8; GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9; GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA; GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB; GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC; GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD; GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE; GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF; GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0; GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1; GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2; GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3; GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4; GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5; GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6; GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7; GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8; GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9; GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA; GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB; GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC; GL_OUTPUT_FOG_EXT = $87BD; GL_SCALAR_EXT = $87BE; GL_VECTOR_EXT = $87BF; GL_MATRIX_EXT = $87C0; GL_VARIANT_EXT = $87C1; GL_INVARIANT_EXT = $87C2; GL_LOCAL_CONSTANT_EXT = $87C3; GL_LOCAL_EXT = $87C4; GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5; GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6; GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7; GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8; GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9; GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA; GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB; GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC; GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD; GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE; GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF; GL_VERTEX_SHADER_VARIANTS_EXT = $87D0; GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1; GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2; GL_VERTEX_SHADER_LOCALS_EXT = $87D3; GL_VERTEX_SHADER_BINDING_EXT = $8781; GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4; GL_X_EXT = $87D5; GL_Y_EXT = $87D6; GL_Z_EXT = $87D7; GL_W_EXT = $87D8; GL_NEGATIVE_X_EXT = $87D9; GL_NEGATIVE_Y_EXT = $87DA; GL_NEGATIVE_Z_EXT = $87DB; GL_NEGATIVE_W_EXT = $87DC; GL_ZERO_EXT = $87DD; GL_ONE_EXT = $87DE; GL_NEGATIVE_ONE_EXT = $87DF; GL_NORMALIZED_RANGE_EXT = $87E0; GL_FULL_RANGE_EXT = $87E1; GL_CURRENT_VERTEX_EXT = $87E2; GL_MVP_MATRIX_EXT = $87E3; var glBeginVertexShaderEXT: procedure(); stdcall = nil; glEndVertexShaderEXT: procedure(); stdcall = nil; glBindVertexShaderEXT: procedure(id: GLuint); stdcall = nil; glGenVertexShadersEXT: function(range: GLuint): GLuint; stdcall = nil; glDeleteVertexShaderEXT: procedure(id: GLuint); stdcall = nil; glShaderOp1EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint); stdcall = nil; glShaderOp2EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); stdcall = nil; glShaderOp3EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); stdcall = nil; glSwizzleEXT: procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); stdcall = nil; glWriteMaskEXT: procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); stdcall = nil; glInsertComponentEXT: procedure(res: GLuint; src: GLuint; num: GLuint); stdcall = nil; glExtractComponentEXT: procedure(res: GLuint; src: GLuint; num: GLuint); stdcall = nil; glGenSymbolsEXT: function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; stdcall = nil; glSetInvariantEXT: procedure(id: GLuint; _type: GLenum; addr: PGLvoid); stdcall = nil; glSetLocalConstantEXT: procedure(id: GLuint; _type: GLenum; addr: PGLvoid); stdcall = nil; glVariantbvEXT: procedure(id: GLuint; addr: PGLbyte); stdcall = nil; glVariantsvEXT: procedure(id: GLuint; addr: PGLshort); stdcall = nil; glVariantivEXT: procedure(id: GLuint; addr: PGLint); stdcall = nil; glVariantfvEXT: procedure(id: GLuint; addr: PGLfloat); stdcall = nil; glVariantdvEXT: procedure(id: GLuint; addr: PGLdouble); stdcall = nil; glVariantubvEXT: procedure(id: GLuint; addr: PGLubyte); stdcall = nil; glVariantusvEXT: procedure(id: GLuint; addr: PGLushort); stdcall = nil; glVariantuivEXT: procedure(id: GLuint; addr: PGLuint); stdcall = nil; glVariantPointerEXT: procedure(id: GLuint; _type: GLenum; stride: GLuint; addr: PGLvoid); stdcall = nil; glEnableVariantClientStateEXT: procedure(id: GLuint); stdcall = nil; glDisableVariantClientStateEXT: procedure(id: GLuint); stdcall = nil; glBindLightParameterEXT: function(light: GLenum; value: GLenum): GLuint; stdcall = nil; glBindMaterialParameterEXT: function(face: GLenum; value: GLenum): GLuint; stdcall = nil; glBindTexGenParameterEXT: function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; stdcall = nil; glBindTextureUnitParameterEXT: function(_unit: GLenum; value: GLenum): GLuint; stdcall = nil; glBindParameterEXT: function(value: GLenum): GLuint; stdcall = nil; glIsVariantEnabledEXT: function(id: GLuint; cap: GLenum): GLboolean; stdcall = nil; glGetVariantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall = nil; glGetVariantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall = nil; glGetVariantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall = nil; glGetVariantPointervEXT: procedure(id: GLuint; value: GLenum; data: PGLvoid); stdcall = nil; glGetInvariantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall = nil; glGetInvariantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall = nil; glGetInvariantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall = nil; glGetLocalConstantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall = nil; glGetLocalConstantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall = nil; glGetLocalConstantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall = nil; function Load_GL_EXT_vertex_shader: Boolean; //***** GL_EXT_vertex_weighting *****// const GL_VERTEX_WEIGHTING_EXT = $8509; GL_MODELVIEW0_EXT = $1700; GL_MODELVIEW1_EXT = $850A; GL_MODELVIEW0_MATRIX_EXT = $0BA6; GL_MODELVIEW1_MATRIX_EXT = $8506; GL_CURRENT_VERTEX_WEIGHT_EXT = $850B; GL_VERTEX_WEIGHT_ARRAY_EXT = $850C; GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D; GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E; GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F; GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3; GL_MODELVIEW1_STACK_DEPTH_EXT = $8502; GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510; var glVertexWeightfEXT: procedure(weight: GLfloat); stdcall = nil; glVertexWeightfvEXT: procedure(weight: PGLfloat); stdcall = nil; glVertexWeightPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall = nil; function Load_GL_EXT_vertex_weighting: Boolean; //***** GL_HP_occlusion_test *****// const GL_OCCLUSION_TEST_HP = $8165; GL_OCCLUSION_TEST_RESULT_HP = $8166; function Load_GL_HP_occlusion_test: Boolean; //***** GL_NV_blend_square *****// function Load_GL_NV_blend_square: Boolean; //***** GL_NV_copy_depth_to_color *****// const GL_DEPTH_STENCIL_TO_RGBA_NV = $886E; GL_DEPTH_STENCIL_TO_BGRA_NV = $886F; function Load_GL_NV_copy_depth_to_color: Boolean; //***** GL_NV_depth_clamp *****// const GL_DEPTH_CLAMP_NV = $864F; function Load_GL_NV_depth_clamp: Boolean; //***** GL_NV_evaluators *****// const GL_EVAL_2D_NV = $86C0; GL_EVAL_TRIANGULAR_2D_NV = $86C1; GL_MAP_TESSELLATION_NV = $86C2; GL_MAP_ATTRIB_U_ORDER_NV = $86C3; GL_MAP_ATTRIB_V_ORDER_NV = $86C4; GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5; GL_EVAL_VERTEX_ATTRIB0_NV = $86C6; GL_EVAL_VERTEX_ATTRIB1_NV = $86C7; GL_EVAL_VERTEX_ATTRIB2_NV = $86C8; GL_EVAL_VERTEX_ATTRIB3_NV = $86C9; GL_EVAL_VERTEX_ATTRIB4_NV = $86CA; GL_EVAL_VERTEX_ATTRIB5_NV = $86CB; GL_EVAL_VERTEX_ATTRIB6_NV = $86CC; GL_EVAL_VERTEX_ATTRIB7_NV = $86CD; GL_EVAL_VERTEX_ATTRIB8_NV = $86CE; GL_EVAL_VERTEX_ATTRIB9_NV = $86CF; GL_EVAL_VERTEX_ATTRIB10_NV = $86D0; GL_EVAL_VERTEX_ATTRIB11_NV = $86D1; GL_EVAL_VERTEX_ATTRIB12_NV = $86D2; GL_EVAL_VERTEX_ATTRIB13_NV = $86D3; GL_EVAL_VERTEX_ATTRIB14_NV = $86D4; GL_EVAL_VERTEX_ATTRIB15_NV = $86D5; GL_MAX_MAP_TESSELLATION_NV = $86D6; GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7; var glMapControlPointsNV: procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; uorder: GLint; vorder: GLint; _packed: GLboolean; const points: PGLvoid); stdcall = nil; glMapParameterivNV: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall = nil; glMapParameterfvNV: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil; glGetMapControlPointsNV: procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); stdcall = nil; glGetMapParameterivNV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetMapParameterfvNV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; glGetMapAttribParameterivNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetMapAttribParameterfvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil; glEvalMapsNV: procedure(target: GLenum; mode: GLenum); stdcall = nil; function Load_GL_NV_evaluators: Boolean; //***** GL_NV_fence *****// const GL_ALL_COMPLETED_NV = $84F2; GL_FENCE_STATUS_NV = $84F3; GL_FENCE_CONDITION_NV = $84F4; var glGenFencesNV: procedure(n: GLsizei; fences: PGLuint); stdcall = nil; glDeleteFencesNV: procedure(n: GLsizei; const fences: PGLuint); stdcall = nil; glSetFenceNV: procedure(fence: GLuint; condition: GLenum); stdcall = nil; glTestFenceNV: function(fence: GLuint): GLboolean; stdcall = nil; glFinishFenceNV: procedure(fence: GLuint); stdcall = nil; glIsFenceNV: function(fence: GLuint): GLboolean; stdcall = nil; glGetFenceivNV: procedure(fence: GLuint; pname: GLenum; params: PGLint); stdcall = nil; function Load_GL_NV_fence: Boolean; //***** GL_NV_fog_distance *****// const GL_FOG_DISTANCE_MODE_NV = $855A; GL_EYE_RADIAL_NV = $855B; GL_EYE_PLANE_ABSOLUTE_NV = $855C; function Load_GL_NV_fog_distance: Boolean; //***** GL_NV_light_max_exponent *****// const GL_MAX_SHININESS_NV = $8504; GL_MAX_SPOT_EXPONENT_NV = $8505; function Load_GL_NV_light_max_exponent: Boolean; //***** GL_NV_multisample_filter_hint *****// const GL_MULTISAMPLE_FILTER_HINT_NV = $8534; function Load_GL_NV_multisample_filter_hint: Boolean; //***** GL_NV_occlusion_query *****// // GL_OCCLUSION_TEST_HP { already defined } // GL_OCCLUSION_TEST_RESULT_HP { already defined } const GL_PIXEL_COUNTER_BITS_NV = $8864; GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865; GL_PIXEL_COUNT_NV = $8866; GL_PIXEL_COUNT_AVAILABLE_NV = $8867; var glGenOcclusionQueriesNV: procedure(n: GLsizei; ids: PGLuint); stdcall = nil; glDeleteOcclusionQueriesNV: procedure(n: GLsizei; const ids: PGLuint); stdcall = nil; glIsOcclusionQueryNV: function(id: GLuint): GLboolean; stdcall = nil; glBeginOcclusionQueryNV: procedure(id: GLuint); stdcall = nil; glEndOcclusionQueryNV: procedure(); stdcall = nil; glGetOcclusionQueryivNV: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetOcclusionQueryuivNV: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall = nil; function Load_GL_NV_occlusion_query: Boolean; //***** GL_NV_packed_depth_stencil *****// const GL_DEPTH_STENCIL_NV = $84F9; GL_UNSIGNED_INT_24_8_NV = $84FA; function Load_GL_NV_packed_depth_stencil: Boolean; //***** GL_NV_point_sprite *****// const GL_POINT_SPRITE_NV = $8861; GL_COORD_REPLACE_NV = $8862; GL_POINT_SPRITE_R_MODE_NV = $8863; var glPointParameteriNV: procedure(pname: GLenum; param: GLint); stdcall = nil; glPointParameterivNV: procedure(pname: GLenum; const params: PGLint); stdcall = nil; function Load_GL_NV_point_sprite: Boolean; //***** GL_NV_register_combiners *****// const GL_REGISTER_COMBINERS_NV = $8522; GL_COMBINER0_NV = $8550; GL_COMBINER1_NV = $8551; GL_COMBINER2_NV = $8552; GL_COMBINER3_NV = $8553; GL_COMBINER4_NV = $8554; GL_COMBINER5_NV = $8555; GL_COMBINER6_NV = $8556; GL_COMBINER7_NV = $8557; GL_VARIABLE_A_NV = $8523; GL_VARIABLE_B_NV = $8524; GL_VARIABLE_C_NV = $8525; GL_VARIABLE_D_NV = $8526; GL_VARIABLE_E_NV = $8527; GL_VARIABLE_F_NV = $8528; GL_VARIABLE_G_NV = $8529; GL_CONSTANT_COLOR0_NV = $852A; GL_CONSTANT_COLOR1_NV = $852B; GL_PRIMARY_COLOR_NV = $852C; GL_SECONDARY_COLOR_NV = $852D; GL_SPARE0_NV = $852E; GL_SPARE1_NV = $852F; GL_UNSIGNED_IDENTITY_NV = $8536; GL_UNSIGNED_INVERT_NV = $8537; GL_EXPAND_NORMAL_NV = $8538; GL_EXPAND_NEGATE_NV = $8539; GL_HALF_BIAS_NORMAL_NV = $853A; GL_HALF_BIAS_NEGATE_NV = $853B; GL_SIGNED_IDENTITY_NV = $853C; GL_SIGNED_NEGATE_NV = $853D; GL_E_TIMES_F_NV = $8531; GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532; GL_SCALE_BY_TWO_NV = $853E; GL_SCALE_BY_FOUR_NV = $853F; GL_SCALE_BY_ONE_HALF_NV = $8540; GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541; GL_DISCARD_NV = $8530; GL_COMBINER_INPUT_NV = $8542; GL_COMBINER_MAPPING_NV = $8543; GL_COMBINER_COMPONENT_USAGE_NV = $8544; GL_COMBINER_AB_DOT_PRODUCT_NV = $8545; GL_COMBINER_CD_DOT_PRODUCT_NV = $8546; GL_COMBINER_MUX_SUM_NV = $8547; GL_COMBINER_SCALE_NV = $8548; GL_COMBINER_BIAS_NV = $8549; GL_COMBINER_AB_OUTPUT_NV = $854A; GL_COMBINER_CD_OUTPUT_NV = $854B; GL_COMBINER_SUM_OUTPUT_NV = $854C; GL_NUM_GENERAL_COMBINERS_NV = $854E; GL_COLOR_SUM_CLAMP_NV = $854F; GL_MAX_GENERAL_COMBINERS_NV = $854D; var glCombinerParameterfvNV: procedure(pname: GLenum; const params: PGLfloat); stdcall = nil; glCombinerParameterivNV: procedure(pname: GLenum; const params: PGLint); stdcall = nil; glCombinerParameterfNV: procedure(pname: GLenum; param: GLfloat); stdcall = nil; glCombinerParameteriNV: procedure(pname: GLenum; param: GLint); stdcall = nil; glCombinerInputNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); stdcall = nil; glCombinerOutputNV: procedure(stage: GLenum; portion: GLenum; abOutput: GLenum; cdOutput: GLenum; sumOutput: GLenum; scale: GLenum; bias: GLenum; abDotProduct: GLboolean; cdDotProduct: GLboolean; muxSum: GLboolean); stdcall = nil; glFinalCombinerInputNV: procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); stdcall = nil; glGetCombinerInputParameterfvNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; glGetCombinerInputParameterivNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetCombinerOutputParameterfvNV: procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; glGetCombinerOutputParameterivNV: procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetFinalCombinerInputParameterfvNV: procedure(variable: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; glGetFinalCombinerInputParameterivNV: procedure(variable: GLenum; pname: GLenum; params: PGLint); stdcall = nil; function Load_GL_NV_register_combiners: Boolean; //***** GL_NV_register_combiners2 *****// const GL_PER_STAGE_CONSTANTS_NV = $8535; var glCombinerStageParameterfvNV: procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil; glGetCombinerStageParameterfvNV: procedure(stage: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; function Load_GL_NV_register_combiners2: Boolean; //***** GL_NV_texgen_emboss *****// const GL_EMBOSS_MAP_NV = $855F; GL_EMBOSS_LIGHT_NV = $855D; GL_EMBOSS_CONSTANT_NV = $855E; function Load_GL_NV_texgen_emboss: Boolean; //***** GL_NV_texgen_reflection *****// const GL_NORMAL_MAP_NV = $8511; GL_REFLECTION_MAP_NV = $8512; function Load_GL_NV_texgen_reflection: Boolean; //***** GL_NV_texture_compression_vtc *****// // GL_COMPRESSED_RGB_S3TC_DXT1_EXT { already defined } // GL_COMPRESSED_RGBA_S3TC_DXT1_EXT { already defined } // GL_COMPRESSED_RGBA_S3TC_DXT3_EXT { already defined } // GL_COMPRESSED_RGBA_S3TC_DXT5_EXT { already defined } function Load_GL_NV_texture_compression_vtc: Boolean; //***** GL_NV_texture_env_combine4 *****// const GL_COMBINE4_NV = $8503; GL_SOURCE3_RGB_NV = $8583; GL_SOURCE3_ALPHA_NV = $858B; GL_OPERAND3_RGB_NV = $8593; GL_OPERAND3_ALPHA_NV = $859B; function Load_GL_NV_texture_env_combine4: Boolean; //***** GL_NV_texture_rectangle *****// const GL_TEXTURE_RECTANGLE_NV = $84F5; GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6; GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7; GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8; function Load_GL_NV_texture_rectangle: Boolean; //***** GL_NV_texture_shader *****// const GL_TEXTURE_SHADER_NV = $86DE; GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9; GL_SHADER_OPERATION_NV = $86DF; GL_CULL_MODES_NV = $86E0; GL_OFFSET_TEXTURE_MATRIX_NV = $86E1; GL_OFFSET_TEXTURE_SCALE_NV = $86E2; GL_OFFSET_TEXTURE_BIAS_NV = $86E3; GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4; GL_CONST_EYE_NV = $86E5; GL_SHADER_CONSISTENT_NV = $86DD; GL_PASS_THROUGH_NV = $86E6; GL_CULL_FRAGMENT_NV = $86E7; GL_OFFSET_TEXTURE_2D_NV = $86E8; GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C; GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D; GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9; GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA; GL_DOT_PRODUCT_NV = $86EC; GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED; GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE; GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E; GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0; GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1; GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2; GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3; GL_HILO_NV = $86F4; GL_DSDT_NV = $86F5; GL_DSDT_MAG_NV = $86F6; GL_DSDT_MAG_VIB_NV = $86F7; GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA; GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB; GL_SIGNED_RGBA_NV = $86FB; GL_SIGNED_RGBA8_NV = $86FC; GL_SIGNED_RGB_NV = $86FE; GL_SIGNED_RGB8_NV = $86FF; GL_SIGNED_LUMINANCE_NV = $8701; GL_SIGNED_LUMINANCE8_NV = $8702; GL_SIGNED_LUMINANCE_ALPHA_NV = $8703; GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704; GL_SIGNED_ALPHA_NV = $8705; GL_SIGNED_ALPHA8_NV = $8706; GL_SIGNED_INTENSITY_NV = $8707; GL_SIGNED_INTENSITY8_NV = $8708; GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C; GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D; GL_HILO16_NV = $86F8; GL_SIGNED_HILO_NV = $86F9; GL_SIGNED_HILO16_NV = $86FA; GL_DSDT8_NV = $8709; GL_DSDT8_MAG8_NV = $870A; GL_DSDT_MAG_INTENSITY_NV = $86DC; GL_DSDT8_MAG8_INTENSITY8_NV = $870B; GL_HI_SCALE_NV = $870E; GL_LO_SCALE_NV = $870F; GL_DS_SCALE_NV = $8710; GL_DT_SCALE_NV = $8711; GL_MAGNITUDE_SCALE_NV = $8712; GL_VIBRANCE_SCALE_NV = $8713; GL_HI_BIAS_NV = $8714; GL_LO_BIAS_NV = $8715; GL_DS_BIAS_NV = $8716; GL_DT_BIAS_NV = $8717; GL_MAGNITUDE_BIAS_NV = $8718; GL_VIBRANCE_BIAS_NV = $8719; GL_TEXTURE_BORDER_VALUES_NV = $871A; GL_TEXTURE_HI_SIZE_NV = $871B; GL_TEXTURE_LO_SIZE_NV = $871C; GL_TEXTURE_DS_SIZE_NV = $871D; GL_TEXTURE_DT_SIZE_NV = $871E; GL_TEXTURE_MAG_SIZE_NV = $871F; function Load_GL_NV_texture_shader: Boolean; //***** GL_NV_texture_shader2 *****// const GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF; // GL_HILO_NV { already defined } // GL_DSDT_NV { already defined } // GL_DSDT_MAG_NV { already defined } // GL_DSDT_MAG_VIB_NV { already defined } // GL_UNSIGNED_INT_S8_S8_8_8_NV { already defined } // GL_UNSIGNED_INT_8_8_S8_S8_REV_NV { already defined } // GL_SIGNED_RGBA_NV { already defined } // GL_SIGNED_RGBA8_NV { already defined } // GL_SIGNED_RGB_NV { already defined } // GL_SIGNED_RGB8_NV { already defined } // GL_SIGNED_LUMINANCE_NV { already defined } // GL_SIGNED_LUMINANCE8_NV { already defined } // GL_SIGNED_LUMINANCE_ALPHA_NV { already defined } // GL_SIGNED_LUMINANCE8_ALPHA8_NV { already defined } // GL_SIGNED_ALPHA_NV { already defined } // GL_SIGNED_ALPHA8_NV { already defined } // GL_SIGNED_INTENSITY_NV { already defined } // GL_SIGNED_INTENSITY8_NV { already defined } // GL_SIGNED_RGB_UNSIGNED_ALPHA_NV { already defined } // GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV { already defined } // GL_HILO16_NV { already defined } // GL_SIGNED_HILO_NV { already defined } // GL_SIGNED_HILO16_NV { already defined } // GL_DSDT8_NV { already defined } // GL_DSDT8_MAG8_NV { already defined } // GL_DSDT_MAG_INTENSITY_NV { already defined } // GL_DSDT8_MAG8_INTENSITY8_NV { already defined } function Load_GL_NV_texture_shader2: Boolean; //***** GL_NV_texture_shader3 *****// const GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850; GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851; GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852; GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853; GL_OFFSET_HILO_TEXTURE_2D_NV = $8854; GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855; GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856; GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857; GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858; GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859; GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A; GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B; GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C; GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D; GL_HILO8_NV = $885E; GL_SIGNED_HILO8_NV = $885F; GL_FORCE_BLUE_TO_ONE_NV = $8860; function Load_GL_NV_texture_shader3: Boolean; //***** GL_NV_vertex_array_range *****// const GL_VERTEX_ARRAY_RANGE_NV = $851D; GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E; GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F; GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520; GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521; var glVertexArrayRangeNV: procedure(length: GLsizei; pointer: PGLvoid); stdcall = nil; glFlushVertexArrayRangeNV: procedure(); stdcall = nil; wglAllocateMemoryNV: function(size: GLsizei; readFrequency: GLfloat; writeFrequency: GLfloat; priority: GLfloat): PGLvoid; stdcall = nil; wglFreeMemoryNV: procedure(pointer: PGLvoid); stdcall = nil; function Load_GL_NV_vertex_array_range: Boolean; //***** GL_NV_vertex_array_range2 *****// const GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533; function Load_GL_NV_vertex_array_range2: Boolean; //***** GL_NV_vertex_program *****// const GL_VERTEX_PROGRAM_NV = $8620; GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642; GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643; GL_VERTEX_STATE_PROGRAM_NV = $8621; GL_ATTRIB_ARRAY_SIZE_NV = $8623; GL_ATTRIB_ARRAY_STRIDE_NV = $8624; GL_ATTRIB_ARRAY_TYPE_NV = $8625; GL_CURRENT_ATTRIB_NV = $8626; GL_PROGRAM_PARAMETER_NV = $8644; GL_ATTRIB_ARRAY_POINTER_NV = $8645; GL_PROGRAM_TARGET_NV = $8646; GL_PROGRAM_LENGTH_NV = $8627; GL_PROGRAM_RESIDENT_NV = $8647; GL_PROGRAM_STRING_NV = $8628; GL_TRACK_MATRIX_NV = $8648; GL_TRACK_MATRIX_TRANSFORM_NV = $8649; GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E; GL_MAX_TRACK_MATRICES_NV = $862F; GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640; GL_CURRENT_MATRIX_NV = $8641; GL_VERTEX_PROGRAM_BINDING_NV = $864A; GL_PROGRAM_ERROR_POSITION_NV = $864B; GL_MODELVIEW_PROJECTION_NV = $8629; GL_MATRIX0_NV = $8630; GL_MATRIX1_NV = $8631; GL_MATRIX2_NV = $8632; GL_MATRIX3_NV = $8633; GL_MATRIX4_NV = $8634; GL_MATRIX5_NV = $8635; GL_MATRIX6_NV = $8636; GL_MATRIX7_NV = $8637; GL_IDENTITY_NV = $862A; GL_INVERSE_NV = $862B; GL_TRANSPOSE_NV = $862C; GL_INVERSE_TRANSPOSE_NV = $862D; GL_VERTEX_ATTRIB_ARRAY0_NV = $8650; GL_VERTEX_ATTRIB_ARRAY1_NV = $8651; GL_VERTEX_ATTRIB_ARRAY2_NV = $8652; GL_VERTEX_ATTRIB_ARRAY3_NV = $8653; GL_VERTEX_ATTRIB_ARRAY4_NV = $8654; GL_VERTEX_ATTRIB_ARRAY5_NV = $8655; GL_VERTEX_ATTRIB_ARRAY6_NV = $8656; GL_VERTEX_ATTRIB_ARRAY7_NV = $8657; GL_VERTEX_ATTRIB_ARRAY8_NV = $8658; GL_VERTEX_ATTRIB_ARRAY9_NV = $8659; GL_VERTEX_ATTRIB_ARRAY10_NV = $865A; GL_VERTEX_ATTRIB_ARRAY11_NV = $865B; GL_VERTEX_ATTRIB_ARRAY12_NV = $865C; GL_VERTEX_ATTRIB_ARRAY13_NV = $865D; GL_VERTEX_ATTRIB_ARRAY14_NV = $865E; GL_VERTEX_ATTRIB_ARRAY15_NV = $865F; GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660; GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661; GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662; GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663; GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664; GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665; GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666; GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667; GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668; GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669; GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A; GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B; GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C; GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D; GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E; GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F; GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670; GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671; GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672; GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673; GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674; GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675; GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676; GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677; GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678; GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679; GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A; GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B; GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C; GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D; GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E; GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F; var glBindProgramNV: procedure(target: GLenum; id: GLuint); stdcall = nil; glDeleteProgramsNV: procedure(n: GLsizei; const ids: PGLuint); stdcall = nil; glExecuteProgramNV: procedure(target: GLenum; id: GLuint; const params: PGLfloat); stdcall = nil; glGenProgramsNV: procedure(n: GLsizei; ids: PGLuint); stdcall = nil; glAreProgramsResidentNV: function(n: GLsizei; const ids: PGLuint; residences: PGLboolean): GLboolean; stdcall = nil; glRequestResidentProgramsNV: procedure(n: GLsizei; ids: PGLuint); stdcall = nil; glGetProgramParameterfvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil; glGetProgramParameterdvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); stdcall = nil; glGetProgramivNV: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetProgramStringNV: procedure(id: GLuint; pname: GLenum; _program: PGLubyte); stdcall = nil; glGetTrackMatrixivNV: procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetVertexAttribdvNV: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall = nil; glGetVertexAttribfvNV: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil; glGetVertexAttribivNV: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetVertexAttribPointervNV: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); stdcall = nil; glIsProgramNV: function(id: GLuint): GLboolean; stdcall = nil; glLoadProgramNV: procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); stdcall = nil; glProgramParameter4fNV: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil; glProgramParameter4fvNV: procedure(target: GLenum; index: GLuint; const params: PGLfloat); stdcall = nil; glProgramParameters4dvNV: procedure(target: GLenum; index: GLuint; num: GLuint; const params: PGLdouble); stdcall = nil; glProgramParameters4fvNV: procedure(target: GLenum; index: GLuint; num: GLuint; const params: PGLfloat); stdcall = nil; glTrackMatrixNV: procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); stdcall = nil; glVertexAttribPointerNV: procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const pointer: PGLvoid); stdcall = nil; glVertexAttrib1sNV: procedure(index: GLuint; x: GLshort); stdcall = nil; glVertexAttrib1fNV: procedure(index: GLuint; x: GLfloat); stdcall = nil; glVertexAttrib1dNV: procedure(index: GLuint; x: GLdouble); stdcall = nil; glVertexAttrib2sNV: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall = nil; glVertexAttrib2fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall = nil; glVertexAttrib2dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall = nil; glVertexAttrib3sNV: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall = nil; glVertexAttrib3fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glVertexAttrib3dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil; glVertexAttrib4sNV: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall = nil; glVertexAttrib4fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil; glVertexAttrib4dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil; glVertexAttrib4ubNV: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall = nil; glVertexAttrib1svNV: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib1fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib1dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib2svNV: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib2fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib2dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib3svNV: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib3fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib3dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib4svNV: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib4fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib4dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib4ubvNV: procedure(index: GLuint; const v: PGLubyte); stdcall = nil; glVertexAttribs1svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); stdcall = nil; glVertexAttribs1fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); stdcall = nil; glVertexAttribs1dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); stdcall = nil; glVertexAttribs2svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); stdcall = nil; glVertexAttribs2fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); stdcall = nil; glVertexAttribs2dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); stdcall = nil; glVertexAttribs3svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); stdcall = nil; glVertexAttribs3fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); stdcall = nil; glVertexAttribs3dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); stdcall = nil; glVertexAttribs4svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); stdcall = nil; glVertexAttribs4fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); stdcall = nil; glVertexAttribs4dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); stdcall = nil; glVertexAttribs4ubvNV: procedure(index: GLuint; n: GLsizei; const v: PGLubyte); stdcall = nil; function Load_GL_NV_vertex_program: Boolean; //***** GL_NV_vertex_program1_1 *****// function Load_GL_NV_vertex_program1_1: Boolean; //***** GL_ATI_element_array *****// const GL_ELEMENT_ARRAY_ATI = $8768; GL_ELEMENT_ARRAY_TYPE_ATI = $8769; GL_ELEMENT_ARRAY_POINTER_ATI = $876A; var glElementPointerATI: procedure(_type: GLenum; const pointer: PGLvoid); stdcall = nil; glDrawElementArrayATI: procedure(mode: GLenum; count: GLsizei); stdcall = nil; glDrawRangeElementArrayATI: procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); stdcall = nil; function Load_GL_ATI_element_array: Boolean; //***** GL_ATI_envmap_bumpmap *****// const GL_BUMP_ROT_MATRIX_ATI = $8775; GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776; GL_BUMP_NUM_TEX_UNITS_ATI = $8777; GL_BUMP_TEX_UNITS_ATI = $8778; GL_DUDV_ATI = $8779; GL_DU8DV8_ATI = $877A; GL_BUMP_ENVMAP_ATI = $877B; GL_BUMP_TARGET_ATI = $877C; var glTexBumpParameterivATI: procedure(pname: GLenum; param: PGLint); stdcall = nil; glTexBumpParameterfvATI: procedure(pname: GLenum; param: PGLfloat); stdcall = nil; glGetTexBumpParameterivATI: procedure(pname: GLenum; param: PGLint); stdcall = nil; glGetTexBumpParameterfvATI: procedure(pname: GLenum; param: PGLfloat); stdcall = nil; function Load_GL_ATI_envmap_bumpmap: Boolean; //***** GL_ATI_fragment_shader *****// const GL_FRAGMENT_SHADER_ATI = $8920; GL_REG_0_ATI = $8921; GL_REG_1_ATI = $8922; GL_REG_2_ATI = $8923; GL_REG_3_ATI = $8924; GL_REG_4_ATI = $8925; GL_REG_5_ATI = $8926; GL_CON_0_ATI = $8941; GL_CON_1_ATI = $8942; GL_CON_2_ATI = $8943; GL_CON_3_ATI = $8944; GL_CON_4_ATI = $8945; GL_CON_5_ATI = $8946; GL_CON_6_ATI = $8947; GL_CON_7_ATI = $8948; GL_MOV_ATI = $8961; GL_ADD_ATI = $8963; GL_MUL_ATI = $8964; GL_SUB_ATI = $8965; GL_DOT3_ATI = $8966; GL_DOT4_ATI = $8967; GL_MAD_ATI = $8968; GL_LERP_ATI = $8969; GL_CND_ATI = $896A; GL_CND0_ATI = $896B; GL_DOT2_ADD_ATI = $896C; GL_SECONDARY_INTERPOLATOR_ATI = $896D; GL_SWIZZLE_STR_ATI = $8976; GL_SWIZZLE_STQ_ATI = $8977; GL_SWIZZLE_STR_DR_ATI = $8978; GL_SWIZZLE_STQ_DQ_ATI = $8979; GL_RED_BIT_ATI = $0001; GL_GREEN_BIT_ATI = $0002; GL_BLUE_BIT_ATI = $0004; GL_2X_BIT_ATI = $0001; GL_4X_BIT_ATI = $0002; GL_8X_BIT_ATI = $0004; GL_HALF_BIT_ATI = $0008; GL_QUARTER_BIT_ATI = $0010; GL_EIGHTH_BIT_ATI = $0020; GL_SATURATE_BIT_ATI = $0040; // GL_2X_BIT_ATI { already defined } GL_COMP_BIT_ATI = $0002; GL_NEGATE_BIT_ATI = $0004; GL_BIAS_BIT_ATI = $0008; var glGenFragmentShadersATI: function(range: GLuint): GLuint; stdcall = nil; glBindFragmentShaderATI: procedure(id: GLuint); stdcall = nil; glDeleteFragmentShaderATI: procedure(id: GLuint); stdcall = nil; glBeginFragmentShaderATI: procedure(); stdcall = nil; glEndFragmentShaderATI: procedure(); stdcall = nil; glPassTexCoordATI: procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); stdcall = nil; glSampleMapATI: procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); stdcall = nil; glColorFragmentOp1ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); stdcall = nil; glColorFragmentOp2ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); stdcall = nil; glColorFragmentOp3ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); stdcall = nil; glAlphaFragmentOp1ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); stdcall = nil; glAlphaFragmentOp2ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); stdcall = nil; glAlphaFragmentOp3ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); stdcall = nil; glSetFragmentShaderConstantATI: procedure(dst: GLuint; const value: PGLfloat); stdcall = nil; function Load_GL_ATI_fragment_shader: Boolean; //***** GL_ATI_pn_triangles *****// const GL_PN_TRIANGLES_ATI = $87F0; GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1; GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2; GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3; GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4; GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5; GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6; GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7; GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8; var glPNTrianglesiATI: procedure(pname: GLenum; param: GLint); stdcall = nil; glPNTrianglesfATI: procedure(pname: GLenum; param: GLfloat); stdcall = nil; function Load_GL_ATI_pn_triangles: Boolean; //***** GL_ATI_texture_mirror_once *****// const GL_MIRROR_CLAMP_ATI = $8742; GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743; function Load_GL_ATI_texture_mirror_once: Boolean; //***** GL_ATI_vertex_array_object *****// const GL_STATIC_ATI = $8760; GL_DYNAMIC_ATI = $8761; GL_PRESERVE_ATI = $8762; GL_DISCARD_ATI = $8763; GL_OBJECT_BUFFER_SIZE_ATI = $8764; GL_OBJECT_BUFFER_USAGE_ATI = $8765; GL_ARRAY_OBJECT_BUFFER_ATI = $8766; GL_ARRAY_OBJECT_OFFSET_ATI = $8767; var glNewObjectBufferATI: function(size: GLsizei; const pointer: PGLvoid; usage: GLenum): GLuint; stdcall = nil; glIsObjectBufferATI: function(buffer: GLuint): GLboolean; stdcall = nil; glUpdateObjectBufferATI: procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const pointer: PGLvoid; preserve: GLenum); stdcall = nil; glGetObjectBufferfvATI: procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil; glGetObjectBufferivATI: procedure(buffer: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glDeleteObjectBufferATI: procedure(buffer: GLuint); stdcall = nil; glArrayObjectATI: procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall = nil; glGetArrayObjectfvATI: procedure(_array: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; glGetArrayObjectivATI: procedure(_array: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glVariantArrayObjectATI: procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall = nil; glGetVariantArrayObjectfvATI: procedure(id: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil; glGetVariantArrayObjectivATI: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall = nil; function Load_GL_ATI_vertex_array_object: Boolean; //***** GL_ATI_vertex_streams *****// const GL_MAX_VERTEX_STREAMS_ATI = $876B; GL_VERTEX_STREAM0_ATI = $876C; GL_VERTEX_STREAM1_ATI = $876D; GL_VERTEX_STREAM2_ATI = $876E; GL_VERTEX_STREAM3_ATI = $876F; GL_VERTEX_STREAM4_ATI = $8770; GL_VERTEX_STREAM5_ATI = $8771; GL_VERTEX_STREAM6_ATI = $8772; GL_VERTEX_STREAM7_ATI = $8773; GL_VERTEX_SOURCE_ATI = $8774; var glVertexStream1s: procedure(stream: GLenum; coords: GLshort); stdcall = nil; glVertexStream1i: procedure(stream: GLenum; coords: GLint); stdcall = nil; glVertexStream1f: procedure(stream: GLenum; coords: GLfloat); stdcall = nil; glVertexStream1d: procedure(stream: GLenum; coords: GLdouble); stdcall = nil; glVertexStream1sv: procedure(stream: GLenum; coords: GLshort); stdcall = nil; glVertexStream1iv: procedure(stream: GLenum; coords: GLint); stdcall = nil; glVertexStream1fv: procedure(stream: GLenum; coords: GLfloat); stdcall = nil; glVertexStream1dv: procedure(stream: GLenum; coords: GLdouble); stdcall = nil; glVertexStream2s: procedure(stream: GLenum; coords: GLshort); stdcall = nil; glVertexStream2i: procedure(stream: GLenum; coords: GLint); stdcall = nil; glVertexStream2f: procedure(stream: GLenum; coords: GLfloat); stdcall = nil; glVertexStream2d: procedure(stream: GLenum; coords: GLdouble); stdcall = nil; glVertexStream2sv: procedure(stream: GLenum; coords: GLshort); stdcall = nil; glVertexStream2iv: procedure(stream: GLenum; coords: GLint); stdcall = nil; glVertexStream2fv: procedure(stream: GLenum; coords: GLfloat); stdcall = nil; glVertexStream2dv: procedure(stream: GLenum; coords: GLdouble); stdcall = nil; glVertexStream3s: procedure(stream: GLenum; coords: GLshort); stdcall = nil; glVertexStream3i: procedure(stream: GLenum; coords: GLint); stdcall = nil; glVertexStream3f: procedure(stream: GLenum; coords: GLfloat); stdcall = nil; glVertexStream3d: procedure(stream: GLenum; coords: GLdouble); stdcall = nil; glVertexStream3sv: procedure(stream: GLenum; coords: GLshort); stdcall = nil; glVertexStream3iv: procedure(stream: GLenum; coords: GLint); stdcall = nil; glVertexStream3fv: procedure(stream: GLenum; coords: GLfloat); stdcall = nil; glVertexStream3dv: procedure(stream: GLenum; coords: GLdouble); stdcall = nil; glVertexStream4s: procedure(stream: GLenum; coords: GLshort); stdcall = nil; glVertexStream4i: procedure(stream: GLenum; coords: GLint); stdcall = nil; glVertexStream4f: procedure(stream: GLenum; coords: GLfloat); stdcall = nil; glVertexStream4d: procedure(stream: GLenum; coords: GLdouble); stdcall = nil; glVertexStream4sv: procedure(stream: GLenum; coords: GLshort); stdcall = nil; glVertexStream4iv: procedure(stream: GLenum; coords: GLint); stdcall = nil; glVertexStream4fv: procedure(stream: GLenum; coords: GLfloat); stdcall = nil; glVertexStream4dv: procedure(stream: GLenum; coords: GLdouble); stdcall = nil; glNormalStream3b: procedure(stream: GLenum; coords: GLbyte); stdcall = nil; glNormalStream3s: procedure(stream: GLenum; coords: GLshort); stdcall = nil; glNormalStream3i: procedure(stream: GLenum; coords: GLint); stdcall = nil; glNormalStream3f: procedure(stream: GLenum; coords: GLfloat); stdcall = nil; glNormalStream3d: procedure(stream: GLenum; coords: GLdouble); stdcall = nil; glNormalStream3bv: procedure(stream: GLenum; coords: GLbyte); stdcall = nil; glNormalStream3sv: procedure(stream: GLenum; coords: GLshort); stdcall = nil; glNormalStream3iv: procedure(stream: GLenum; coords: GLint); stdcall = nil; glNormalStream3fv: procedure(stream: GLenum; coords: GLfloat); stdcall = nil; glNormalStream3dv: procedure(stream: GLenum; coords: GLdouble); stdcall = nil; glClientActiveVertexStream: procedure(stream: GLenum); stdcall = nil; glVertexBlendEnvi: procedure(pname: GLenum; param: GLint); stdcall = nil; glVertexBlendEnvf: procedure(pname: GLenum; param: GLfloat); stdcall = nil; function Load_GL_ATI_vertex_streams: Boolean; //***** WGL_I3D_image_buffer *****// const WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $0001; WGL_IMAGE_BUFFER_LOCK_I3D = $0002; var wglCreateImageBufferI3D: function(hDC: HDC; dwSize: DWORD; uFlags: UINT): PGLvoid; stdcall = nil; wglDestroyImageBufferI3D: function(hDC: HDC; pAddress: PGLvoid): BOOL; stdcall = nil; wglAssociateImageBufferEventsI3D: function(hdc: HDC; pEvent: PHandle; pAddress: PGLvoid; pSize: PDWORD; count: UINT): BOOL; stdcall = nil; wglReleaseImageBufferEventsI3D: function(hdc: HDC; pAddress: PGLvoid; count: UINT): BOOL; stdcall = nil; function Load_WGL_I3D_image_buffer: Boolean; //***** WGL_I3D_swap_frame_lock *****// var wglEnableFrameLockI3D: function(): BOOL; stdcall = nil; wglDisableFrameLockI3D: function(): BOOL; stdcall = nil; wglIsEnabledFrameLockI3D: function(pFlag: PBOOL): BOOL; stdcall = nil; wglQueryFrameLockMasterI3D: function(pFlag: PBOOL): BOOL; stdcall = nil; function Load_WGL_I3D_swap_frame_lock: Boolean; //***** WGL_I3D_swap_frame_usage *****// var wglGetFrameUsageI3D: function(pUsage: PGLfloat): BOOL; stdcall = nil; wglBeginFrameTrackingI3D: function(): BOOL; stdcall = nil; wglEndFrameTrackingI3D: function(): BOOL; stdcall = nil; wglQueryFrameTrackingI3D: function(pFrameCount: PDWORD; pMissedFrames: PDWORD; pLastMissedUsage: PGLfloat): BOOL; stdcall = nil; function Load_WGL_I3D_swap_frame_usage: Boolean; //***** GL_3DFX_texture_compression_FXT1 *****// const GL_COMPRESSED_RGB_FXT1_3DFX = $86B0; GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1; function Load_GL_3DFX_texture_compression_FXT1: Boolean; //***** GL_IBM_cull_vertex *****// const GL_CULL_VERTEX_IBM = $1928A; function Load_GL_IBM_cull_vertex: Boolean; //***** GL_IBM_multimode_draw_arrays *****// var glMultiModeDrawArraysIBM: procedure(mode: PGLenum; first: PGLint; count: PGLsizei; primcount: GLsizei; modestride: GLint); stdcall = nil; glMultiModeDrawElementsIBM: procedure(mode: PGLenum; count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); stdcall = nil; function Load_GL_IBM_multimode_draw_arrays: Boolean; //***** GL_IBM_raster_pos_clip *****// const GL_RASTER_POSITION_UNCLIPPED_IBM = $19262; function Load_GL_IBM_raster_pos_clip: Boolean; //***** GL_IBM_texture_mirrored_repeat *****// const GL_MIRRORED_REPEAT_IBM = $8370; function Load_GL_IBM_texture_mirrored_repeat: Boolean; //***** GL_IBM_vertex_array_lists *****// const GL_VERTEX_ARRAY_LIST_IBM = $1929E; GL_NORMAL_ARRAY_LIST_IBM = $1929F; GL_COLOR_ARRAY_LIST_IBM = $192A0; GL_INDEX_ARRAY_LIST_IBM = $192A1; GL_TEXTURE_COORD_ARRAY_LIST_IBM = $192A2; GL_EDGE_FLAG_ARRAY_LIST_IBM = $192A3; GL_FOG_COORDINATE_ARRAY_LIST_IBM = $192A4; GL_SECONDARY_COLOR_ARRAY_LIST_IBM = $192A5; GL_VERTEX_ARRAY_LIST_STRIDE_IBM = $192A8; GL_NORMAL_ARRAY_LIST_STRIDE_IBM = $192A9; GL_COLOR_ARRAY_LIST_STRIDE_IBM = $192AA; GL_INDEX_ARRAY_LIST_STRIDE_IBM = $192AB; GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = $192AC; GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = $192AD; GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = $192AE; GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = $192AF; var glColorPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil; glSecondaryColorPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil; glEdgeFlagPointerListIBM: procedure(stride: GLint; const pointer: PGLboolean; ptrstride: GLint); stdcall = nil; glFogCoordPointerListIBM: procedure(_type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil; glNormalPointerListIBM: procedure(_type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil; glTexCoordPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil; glVertexPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil; function Load_GL_IBM_vertex_array_lists: Boolean; //***** GL_MESA_resize_buffers *****// var glResizeBuffersMESA: procedure(); stdcall = nil; function Load_GL_MESA_resize_buffers: Boolean; //***** GL_MESA_window_pos *****// var glWindowPos2dMESA: procedure(x: GLdouble; y: GLdouble); stdcall = nil; glWindowPos2fMESA: procedure(x: GLfloat; y: GLfloat); stdcall = nil; glWindowPos2iMESA: procedure(x: GLint; y: GLint); stdcall = nil; glWindowPos2sMESA: procedure(x: GLshort; y: GLshort); stdcall = nil; glWindowPos2ivMESA: procedure(const p: PGLint); stdcall = nil; glWindowPos2svMESA: procedure(const p: PGLshort); stdcall = nil; glWindowPos2fvMESA: procedure(const p: PGLfloat); stdcall = nil; glWindowPos2dvMESA: procedure(const p: PGLdouble); stdcall = nil; glWindowPos3iMESA: procedure(x: GLint; y: GLint; z: GLint); stdcall = nil; glWindowPos3sMESA: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall = nil; glWindowPos3fMESA: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glWindowPos3dMESA: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil; glWindowPos3ivMESA: procedure(const p: PGLint); stdcall = nil; glWindowPos3svMESA: procedure(const p: PGLshort); stdcall = nil; glWindowPos3fvMESA: procedure(const p: PGLfloat); stdcall = nil; glWindowPos3dvMESA: procedure(const p: PGLdouble); stdcall = nil; glWindowPos4iMESA: procedure(x: GLint; y: GLint; z: GLint; w: GLint); stdcall = nil; glWindowPos4sMESA: procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall = nil; glWindowPos4fMESA: procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil; glWindowPos4dMESA: procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil; glWindowPos4ivMESA: procedure(const p: PGLint); stdcall = nil; glWindowPos4svMESA: procedure(const p: PGLshort); stdcall = nil; glWindowPos4fvMESA: procedure(const p: PGLfloat); stdcall = nil; glWindowPos4dvMESA: procedure(const p: PGLdouble); stdcall = nil; function Load_GL_MESA_window_pos: Boolean; //***** GL_OML_interlace *****// const GL_INTERLACE_OML = $8980; GL_INTERLACE_READ_OML = $8981; function Load_GL_OML_interlace: Boolean; //***** GL_OML_resample *****// const GL_PACK_RESAMPLE_OML = $8984; GL_UNPACK_RESAMPLE_OML = $8985; GL_RESAMPLE_REPLICATE_OML = $8986; GL_RESAMPLE_ZERO_FILL_OML = $8987; GL_RESAMPLE_AVERAGE_OML = $8988; GL_RESAMPLE_DECIMATE_OML = $8989; // GL_RESAMPLE_AVERAGE_OML { already defined } function Load_GL_OML_resample: Boolean; //***** GL_OML_subsample *****// const GL_FORMAT_SUBSAMPLE_24_24_OML = $8982; GL_FORMAT_SUBSAMPLE_244_244_OML = $8983; function Load_GL_OML_subsample: Boolean; //***** GL_SGIS_generate_mipmap *****// const GL_GENERATE_MIPMAP_SGIS = $8191; GL_GENERATE_MIPMAP_HINT_SGIS = $8192; function Load_GL_SGIS_generate_mipmap: Boolean; //***** GL_SGIS_multisample *****// const GLX_SAMPLE_BUFFERS_SGIS = $186A0; GLX_SAMPLES_SGIS = $186A1; GL_MULTISAMPLE_SGIS = $809D; GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E; GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F; GL_SAMPLE_MASK_SGIS = $80A0; GL_MULTISAMPLE_BIT_EXT = $20000000; GL_1PASS_SGIS = $80A1; GL_2PASS_0_SGIS = $80A2; GL_2PASS_1_SGIS = $80A3; GL_4PASS_0_SGIS = $80A4; GL_4PASS_1_SGIS = $80A5; GL_4PASS_2_SGIS = $80A6; GL_4PASS_3_SGIS = $80A7; GL_SAMPLE_BUFFERS_SGIS = $80A8; GL_SAMPLES_SGIS = $80A9; GL_SAMPLE_MASK_VALUE_SGIS = $80AA; GL_SAMPLE_MASK_INVERT_SGIS = $80AB; GL_SAMPLE_PATTERN_SGIS = $80AC; var glSampleMaskSGIS: procedure(value: GLclampf; invert: GLboolean); stdcall = nil; glSamplePatternSGIS: procedure(pattern: GLenum); stdcall = nil; function Load_GL_SGIS_multisample: Boolean; //***** GL_SGIS_pixel_texture *****// const GL_PIXEL_TEXTURE_SGIS = $8353; GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354; GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355; GL_PIXEL_GROUP_COLOR_SGIS = $8356; var glPixelTexGenParameteriSGIS: procedure(pname: GLenum; param: GLint); stdcall = nil; glPixelTexGenParameterfSGIS: procedure(pname: GLenum; param: GLfloat); stdcall = nil; glGetPixelTexGenParameterivSGIS: procedure(pname: GLenum; params: GLint); stdcall = nil; glGetPixelTexGenParameterfvSGIS: procedure(pname: GLenum; params: GLfloat); stdcall = nil; function Load_GL_SGIS_pixel_texture: Boolean; //***** GL_SGIS_texture_border_clamp *****// // GL_CLAMP_TO_BORDER_SGIS { already defined } function Load_GL_SGIS_texture_border_clamp: Boolean; //***** GL_SGIS_texture_color_mask *****// const GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF; var glTextureColorMaskSGIS: procedure(r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); stdcall = nil; function Load_GL_SGIS_texture_color_mask: Boolean; //***** GL_SGIS_texture_edge_clamp *****// const GL_CLAMP_TO_EDGE_SGIS = $812F; function Load_GL_SGIS_texture_edge_clamp: Boolean; //***** GL_SGIS_texture_lod *****// const GL_TEXTURE_MIN_LOD_SGIS = $813A; GL_TEXTURE_MAX_LOD_SGIS = $813B; GL_TEXTURE_BASE_LEVEL_SGIS = $813C; GL_TEXTURE_MAX_LEVEL_SGIS = $813D; function Load_GL_SGIS_texture_lod: Boolean; //***** GL_SGIS_depth_texture *****// const GL_DEPTH_COMPONENT16_SGIX = $81A5; GL_DEPTH_COMPONENT24_SGIX = $81A6; GL_DEPTH_COMPONENT32_SGIX = $81A7; function Load_GL_SGIS_depth_texture: Boolean; //***** GL_SGIX_fog_offset *****// const GL_FOG_OFFSET_SGIX = $8198; GL_FOG_OFFSET_VALUE_SGIX = $8199; function Load_GL_SGIX_fog_offset: Boolean; //***** GL_SGIX_interlace *****// const GL_INTERLACE_SGIX = $8094; function Load_GL_SGIX_interlace: Boolean; //***** GL_SGIX_shadow_ambient *****// const GL_SHADOW_AMBIENT_SGIX = $80BF; function Load_GL_SGIX_shadow_ambient: Boolean; //***** GL_SGI_color_matrix *****// const GL_COLOR_MATRIX_SGI = $80B1; GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2; GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3; GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4; GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5; GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6; GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7; GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8; GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9; GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA; GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB; function Load_GL_SGI_color_matrix: Boolean; //***** GL_SGI_color_table *****// const GL_COLOR_TABLE_SGI = $80D0; GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1; GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2; GL_PROXY_COLOR_TABLE_SGI = $80D3; GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4; GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5; GL_COLOR_TABLE_SCALE_SGI = $80D6; GL_COLOR_TABLE_BIAS_SGI = $80D7; GL_COLOR_TABLE_FORMAT_SGI = $80D8; GL_COLOR_TABLE_WIDTH_SGI = $80D9; GL_COLOR_TABLE_RED_SIZE_SGI = $80DA; GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB; GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC; GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD; GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE; GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF; var glColorTableSGI: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); stdcall = nil; glCopyColorTableSGI: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall = nil; glColorTableParameterivSGI: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall = nil; glColorTableParameterfvSGI: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil; glGetColorTableSGI: procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); stdcall = nil; glGetColorTableParameterivSGI: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetColorTableParameterfvSGI: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil; function Load_GL_SGI_color_table: Boolean; //***** GL_SGI_texture_color_table *****// const GL_TEXTURE_COLOR_TABLE_SGI = $80BC; GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD; function Load_GL_SGI_texture_color_table: Boolean; //***** GL_SUN_vertex *****// var glColor4ubVertex2fSUN: procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); stdcall = nil; glColor4ubVertex2fvSUN: procedure(const c: PGLubyte; const v: PGLfloat); stdcall = nil; glColor4ubVertex3fSUN: procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glColor4ubVertex3fvSUN: procedure(const c: PGLubyte; const v: PGLfloat); stdcall = nil; glColor3fVertex3fSUN: procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glColor3fVertex3fvSUN: procedure(const c: PGLfloat; const v: PGLfloat); stdcall = nil; glNormal3fVertex3fSUN: procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glNormal3fVertex3fvSUN: procedure(const n: PGLfloat; const v: PGLfloat); stdcall = nil; glColor4fNormal3fVertex3fSUN: procedure(r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glColor4fNormal3fVertex3fvSUN: procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil; glTexCoord2fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glTexCoord2fVertex3fvSUN: procedure(const tc: PGLfloat; const v: PGLfloat); stdcall = nil; glTexCoord4fVertex4fSUN: procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil; glTexCoord4fVertex4fvSUN: procedure(const tc: PGLfloat; const v: PGLfloat); stdcall = nil; glTexCoord2fColor4ubVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glTexCoord2fColor4ubVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); stdcall = nil; glTexCoord2fColor3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glTexCoord2fColor3fVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); stdcall = nil; glTexCoord2fNormal3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glTexCoord2fNormal3fVertex3fvSUN: procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil; glTexCoord2fColor4fNormal3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glTexCoord2fColor4fNormal3fVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil; glTexCoord4fColor4fNormal3fVertex4fSUN: procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil; glTexCoord4fColor4fNormal3fVertex4fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil; glReplacementCodeuiVertex3fSUN: procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glReplacementCodeuiVertex3fvSUN: procedure(const rc: PGLuint; const v: PGLfloat); stdcall = nil; glReplacementCodeuiColor4ubVertex3fSUN: procedure(rc: GLuint; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glReplacementCodeuiColor4ubVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); stdcall = nil; glReplacementCodeuiColor3fVertex3fSUN: procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glReplacementCodeuiColor3fVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); stdcall = nil; glReplacementCodeuiNormal3fVertex3fSUN: procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glReplacementCodeuiNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); stdcall = nil; glReplacementCodeuiColor4fNormal3fVertex3fSUN: procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glReplacementCodeuiColor4fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil; glReplacementCodeuiTexCoord2fVertex3fSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glReplacementCodeuiTexCoord2fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); stdcall = nil; glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil; glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil; function Load_GL_SUN_vertex: Boolean; //***** GL_ARB_fragment_program *****// const GL_FRAGMENT_PROGRAM_ARB = $8804; // GL_PROGRAM_FORMAT_ASCII_ARB { already defined } // GL_PROGRAM_LENGTH_ARB { already defined } // GL_PROGRAM_FORMAT_ARB { already defined } // GL_PROGRAM_BINDING_ARB { already defined } // GL_PROGRAM_INSTRUCTIONS_ARB { already defined } // GL_MAX_PROGRAM_INSTRUCTIONS_ARB { already defined } // GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB { already defined } // GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB { already defined } // GL_PROGRAM_TEMPORARIES_ARB { already defined } // GL_MAX_PROGRAM_TEMPORARIES_ARB { already defined } // GL_PROGRAM_NATIVE_TEMPORARIES_ARB { already defined } // GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB { already defined } // GL_PROGRAM_PARAMETERS_ARB { already defined } // GL_MAX_PROGRAM_PARAMETERS_ARB { already defined } // GL_PROGRAM_NATIVE_PARAMETERS_ARB { already defined } // GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB { already defined } // GL_PROGRAM_ATTRIBS_ARB { already defined } // GL_MAX_PROGRAM_ATTRIBS_ARB { already defined } // GL_PROGRAM_NATIVE_ATTRIBS_ARB { already defined } // GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB { already defined } // GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB { already defined } // GL_MAX_PROGRAM_ENV_PARAMETERS_ARB { already defined } // GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB { already defined } GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805; GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806; GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807; GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808; GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809; GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A; GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B; GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C; GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D; GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E; GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F; GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810; // GL_PROGRAM_STRING_ARB { already defined } // GL_PROGRAM_ERROR_POSITION_ARB { already defined } // GL_CURRENT_MATRIX_ARB { already defined } // GL_TRANSPOSE_CURRENT_MATRIX_ARB { already defined } // GL_CURRENT_MATRIX_STACK_DEPTH_ARB { already defined } // GL_MAX_PROGRAM_MATRICES_ARB { already defined } // GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB { already defined } GL_MAX_TEXTURE_COORDS_ARB = $8871; GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872; // GL_PROGRAM_ERROR_STRING_ARB { already defined } // GL_MATRIX0_ARB { already defined } // GL_MATRIX1_ARB { already defined } // GL_MATRIX2_ARB { already defined } // GL_MATRIX3_ARB { already defined } // GL_MATRIX4_ARB { already defined } // GL_MATRIX5_ARB { already defined } // GL_MATRIX6_ARB { already defined } // GL_MATRIX7_ARB { already defined } // GL_MATRIX8_ARB { already defined } // GL_MATRIX9_ARB { already defined } // GL_MATRIX10_ARB { already defined } // GL_MATRIX11_ARB { already defined } // GL_MATRIX12_ARB { already defined } // GL_MATRIX13_ARB { already defined } // GL_MATRIX14_ARB { already defined } // GL_MATRIX15_ARB { already defined } // GL_MATRIX16_ARB { already defined } // GL_MATRIX17_ARB { already defined } // GL_MATRIX18_ARB { already defined } // GL_MATRIX19_ARB { already defined } // GL_MATRIX20_ARB { already defined } // GL_MATRIX21_ARB { already defined } // GL_MATRIX22_ARB { already defined } // GL_MATRIX23_ARB { already defined } // GL_MATRIX24_ARB { already defined } // GL_MATRIX25_ARB { already defined } // GL_MATRIX26_ARB { already defined } // GL_MATRIX27_ARB { already defined } // GL_MATRIX28_ARB { already defined } // GL_MATRIX29_ARB { already defined } // GL_MATRIX30_ARB { already defined } // GL_MATRIX31_ARB { already defined } // glProgramStringARB { already defined } // glBindProgramARB { already defined } // glDeleteProgramsARB { already defined } // glGenProgramsARB { already defined } // glProgramEnvParameter4dARB { already defined } // glProgramEnvParameter4dvARB { already defined } // glProgramEnvParameter4fARB { already defined } // glProgramEnvParameter4fvARB { already defined } // glProgramLocalParameter4dARB { already defined } // glProgramLocalParameter4dvARB { already defined } // glProgramLocalParameter4fARB { already defined } // glProgramLocalParameter4fvARB { already defined } // glGetProgramEnvParameterdvARB { already defined } // glGetProgramEnvParameterfvARB { already defined } // glGetProgramLocalParameterdvARB { already defined } // glGetProgramLocalParameterfvARB { already defined } // glGetProgramivARB { already defined } // glGetProgramStringARB { already defined } // glIsProgramARB { already defined } function Load_GL_ARB_fragment_program: Boolean; //***** GL_ATI_text_fragment_shader *****// const GL_TEXT_FRAGMENT_SHADER_ATI = $8200; function Load_GL_ATI_text_fragment_shader: Boolean; //***** GL_APPLE_client_storage *****// const GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2; function Load_GL_APPLE_client_storage: Boolean; //***** GL_APPLE_element_array *****// const GL_ELEMENT_ARRAY_APPLE = $8768; GL_ELEMENT_ARRAY_TYPE_APPLE = $8769; GL_ELEMENT_ARRAY_POINTER_APPLE = $876A; var glElementPointerAPPLE: procedure(_type: GLenum; const pointer: PGLvoid); stdcall = nil; glDrawElementArrayAPPLE: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall = nil; glDrawRangeElementArrayAPPLE: procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); stdcall = nil; glMultiDrawElementArrayAPPLE: procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall = nil; glMultiDrawRangeElementArrayAPPLE: procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall = nil; function Load_GL_APPLE_element_array: Boolean; //***** GL_APPLE_fence *****// const GL_DRAW_PIXELS_APPLE = $8A0A; GL_FENCE_APPLE = $8A0B; var glGenFencesAPPLE: procedure(n: GLsizei; fences: PGLuint); stdcall = nil; glDeleteFencesAPPLE: procedure(n: GLsizei; const fences: PGLuint); stdcall = nil; glSetFenceAPPLE: procedure(fence: GLuint); stdcall = nil; glIsFenceAPPLE: function(fence: GLuint): GLboolean; stdcall = nil; glTestFenceAPPLE: function(fence: GLuint): GLboolean; stdcall = nil; glFinishFenceAPPLE: procedure(fence: GLuint); stdcall = nil; glTestObjectAPPLE: function(_object: GLenum; name: GLuint): GLboolean; stdcall = nil; glFinishObjectAPPLE: procedure(_object: GLenum; name: GLint); stdcall = nil; function Load_GL_APPLE_fence: Boolean; //***** GL_APPLE_vertex_array_object *****// const GL_VERTEX_ARRAY_BINDING_APPLE = $85B5; var glBindVertexArrayAPPLE: procedure(_array: GLuint); stdcall = nil; glDeleteVertexArraysAPPLE: procedure(n: GLsizei; const arrays: PGLuint); stdcall = nil; glGenVertexArraysAPPLE: procedure(n: GLsizei; const arrays: PGLuint); stdcall = nil; glIsVertexArrayAPPLE: function(_array: GLuint): GLboolean; stdcall = nil; function Load_GL_APPLE_vertex_array_object: Boolean; //***** GL_APPLE_vertex_array_range *****// const GL_VERTEX_ARRAY_RANGE_APPLE = $851D; GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E; GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE = $8520; GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521; GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F; GL_STORAGE_CACHED_APPLE = $85BE; GL_STORAGE_SHARED_APPLE = $85BF; var glVertexArrayRangeAPPLE: procedure(length: GLsizei; pointer: PGLvoid); stdcall = nil; glFlushVertexArrayRangeAPPLE: procedure(length: GLsizei; pointer: PGLvoid); stdcall = nil; glVertexArrayParameteriAPPLE: procedure(pname: GLenum; param: GLint); stdcall = nil; function Load_GL_APPLE_vertex_array_range: Boolean; //***** WGL_ARB_pixel_format *****// const WGL_NUMBER_PIXEL_FORMATS_ARB = $2000; WGL_DRAW_TO_WINDOW_ARB = $2001; WGL_DRAW_TO_BITMAP_ARB = $2002; WGL_ACCELERATION_ARB = $2003; WGL_NEED_PALETTE_ARB = $2004; WGL_NEED_SYSTEM_PALETTE_ARB = $2005; WGL_SWAP_LAYER_BUFFERS_ARB = $2006; WGL_SWAP_METHOD_ARB = $2007; WGL_NUMBER_OVERLAYS_ARB = $2008; WGL_NUMBER_UNDERLAYS_ARB = $2009; WGL_TRANSPARENT_ARB = $200A; WGL_TRANSPARENT_RED_VALUE_ARB = $2037; WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038; WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039; WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A; WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B; WGL_SHARE_DEPTH_ARB = $200C; WGL_SHARE_STENCIL_ARB = $200D; WGL_SHARE_ACCUM_ARB = $200E; WGL_SUPPORT_GDI_ARB = $200F; WGL_SUPPORT_OPENGL_ARB = $2010; WGL_DOUBLE_BUFFER_ARB = $2011; WGL_STEREO_ARB = $2012; WGL_PIXEL_TYPE_ARB = $2013; WGL_COLOR_BITS_ARB = $2014; WGL_RED_BITS_ARB = $2015; WGL_RED_SHIFT_ARB = $2016; WGL_GREEN_BITS_ARB = $2017; WGL_GREEN_SHIFT_ARB = $2018; WGL_BLUE_BITS_ARB = $2019; WGL_BLUE_SHIFT_ARB = $201A; WGL_ALPHA_BITS_ARB = $201B; WGL_ALPHA_SHIFT_ARB = $201C; WGL_ACCUM_BITS_ARB = $201D; WGL_ACCUM_RED_BITS_ARB = $201E; WGL_ACCUM_GREEN_BITS_ARB = $201F; WGL_ACCUM_BLUE_BITS_ARB = $2020; WGL_ACCUM_ALPHA_BITS_ARB = $2021; WGL_DEPTH_BITS_ARB = $2022; WGL_STENCIL_BITS_ARB = $2023; WGL_AUX_BUFFERS_ARB = $2024; WGL_NO_ACCELERATION_ARB = $2025; WGL_GENERIC_ACCELERATION_ARB = $2026; WGL_FULL_ACCELERATION_ARB = $2027; WGL_SWAP_EXCHANGE_ARB = $2028; WGL_SWAP_COPY_ARB = $2029; WGL_SWAP_UNDEFINED_ARB = $202A; WGL_TYPE_RGBA_ARB = $202B; WGL_TYPE_COLORINDEX_ARB = $202C; var wglGetPixelFormatAttribivARB: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): BOOL; stdcall = nil; wglGetPixelFormatAttribfvARB: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): BOOL; stdcall = nil; wglChoosePixelFormatARB: function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall = nil; function Load_WGL_ARB_pixel_format: Boolean; //***** WGL_ARB_make_current_read *****// const WGL_ERROR_INVALID_PIXEL_TYPE_ARB = $2043; WGL_ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054; var wglMakeContextCurrentARB: function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): BOOL; stdcall = nil; wglGetCurrentReadDCARB: function(): HDC; stdcall = nil; function Load_WGL_ARB_make_current_read: Boolean; //***** WGL_ARB_pbuffer *****// const WGL_DRAW_TO_PBUFFER_ARB = $202D; // WGL_DRAW_TO_PBUFFER_ARB { already defined } WGL_MAX_PBUFFER_PIXELS_ARB = $202E; WGL_MAX_PBUFFER_WIDTH_ARB = $202F; WGL_MAX_PBUFFER_HEIGHT_ARB = $2030; WGL_PBUFFER_LARGEST_ARB = $2033; WGL_PBUFFER_WIDTH_ARB = $2034; WGL_PBUFFER_HEIGHT_ARB = $2035; WGL_PBUFFER_LOST_ARB = $2036; var wglCreatePbufferARB: function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): THandle; stdcall = nil; wglGetPbufferDCARB: function(hPbuffer: THandle): HDC; stdcall = nil; wglReleasePbufferDCARB: function(hPbuffer: THandle; hDC: HDC): GLint; stdcall = nil; wglDestroyPbufferARB: function(hPbuffer: THandle): BOOL; stdcall = nil; wglQueryPbufferARB: function(hPbuffer: THandle; iAttribute: GLint; piValue: PGLint): BOOL; stdcall = nil; function Load_WGL_ARB_pbuffer: Boolean; //***** WGL_EXT_swap_control *****// var wglSwapIntervalEXT: function(interval: GLint): BOOL; stdcall = nil; wglGetSwapIntervalEXT: function(): GLint; stdcall = nil; function Load_WGL_EXT_swap_control: Boolean; //***** WGL_ARB_render_texture *****// const WGL_BIND_TO_TEXTURE_RGB_ARB = $2070; WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071; WGL_TEXTURE_FORMAT_ARB = $2072; WGL_TEXTURE_TARGET_ARB = $2073; WGL_MIPMAP_TEXTURE_ARB = $2074; WGL_TEXTURE_RGB_ARB = $2075; WGL_TEXTURE_RGBA_ARB = $2076; WGL_NO_TEXTURE_ARB = $2077; WGL_TEXTURE_CUBE_MAP_ARB = $2078; WGL_TEXTURE_1D_ARB = $2079; WGL_TEXTURE_2D_ARB = $207A; // WGL_NO_TEXTURE_ARB { already defined } WGL_MIPMAP_LEVEL_ARB = $207B; WGL_CUBE_MAP_FACE_ARB = $207C; WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D; WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E; WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F; WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080; WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081; WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082; WGL_FRONT_LEFT_ARB = $2083; WGL_FRONT_RIGHT_ARB = $2084; WGL_BACK_LEFT_ARB = $2085; WGL_BACK_RIGHT_ARB = $2086; WGL_AUX0_ARB = $2087; WGL_AUX1_ARB = $2088; WGL_AUX2_ARB = $2089; WGL_AUX3_ARB = $208A; WGL_AUX4_ARB = $208B; WGL_AUX5_ARB = $208C; WGL_AUX6_ARB = $208D; WGL_AUX7_ARB = $208E; WGL_AUX8_ARB = $208F; WGL_AUX9_ARB = $2090; var wglBindTexImageARB: function(hPbuffer: THandle; iBuffer: GLint): BOOL; stdcall = nil; wglReleaseTexImageARB: function(hPbuffer: THandle; iBuffer: GLint): BOOL; stdcall = nil; wglSetPbufferAttribARB: function(hPbuffer: THandle; const piAttribList: PGLint): BOOL; stdcall = nil; function Load_WGL_ARB_render_texture: Boolean; //***** WGL_EXT_extensions_string *****// var wglGetExtensionsStringEXT: function(): Pchar; stdcall = nil; function Load_WGL_EXT_extensions_string: Boolean; //***** WGL_EXT_make_current_read *****// var wglMakeContextCurrentEXT: function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): BOOL; stdcall = nil; wglGetCurrentReadDCEXT: function(): HDC; stdcall = nil; function Load_WGL_EXT_make_current_read: Boolean; //***** WGL_EXT_pbuffer *****// const WGL_DRAW_TO_PBUFFER_EXT = $202D; WGL_MAX_PBUFFER_PIXELS_EXT = $202E; WGL_MAX_PBUFFER_WIDTH_EXT = $202F; WGL_MAX_PBUFFER_HEIGHT_EXT = $2030; WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031; WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032; WGL_PBUFFER_LARGEST_EXT = $2033; WGL_PBUFFER_WIDTH_EXT = $2034; WGL_PBUFFER_HEIGHT_EXT = $2035; var wglCreatePbufferEXT: function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): THandle; stdcall = nil; wglGetPbufferDCEXT: function(hPbuffer: THandle): HDC; stdcall = nil; wglReleasePbufferDCEXT: function(hPbuffer: THandle; hDC: HDC): GLint; stdcall = nil; wglDestroyPbufferEXT: function(hPbuffer: THandle): BOOL; stdcall = nil; wglQueryPbufferEXT: function(hPbuffer: THandle; iAttribute: GLint; piValue: PGLint): BOOL; stdcall = nil; function Load_WGL_EXT_pbuffer: Boolean; //***** WGL_EXT_pixel_format *****// const WGL_NUMBER_PIXEL_FORMATS_EXT = $2000; WGL_DRAW_TO_WINDOW_EXT = $2001; WGL_DRAW_TO_BITMAP_EXT = $2002; WGL_ACCELERATION_EXT = $2003; WGL_NEED_PALETTE_EXT = $2004; WGL_NEED_SYSTEM_PALETTE_EXT = $2005; WGL_SWAP_LAYER_BUFFERS_EXT = $2006; WGL_SWAP_METHOD_EXT = $2007; WGL_NUMBER_OVERLAYS_EXT = $2008; WGL_NUMBER_UNDERLAYS_EXT = $2009; WGL_TRANSPARENT_EXT = $200A; WGL_TRANSPARENT_VALUE_EXT = $200B; WGL_SHARE_DEPTH_EXT = $200C; WGL_SHARE_STENCIL_EXT = $200D; WGL_SHARE_ACCUM_EXT = $200E; WGL_SUPPORT_GDI_EXT = $200F; WGL_SUPPORT_OPENGL_EXT = $2010; WGL_DOUBLE_BUFFER_EXT = $2011; WGL_STEREO_EXT = $2012; WGL_PIXEL_TYPE_EXT = $2013; WGL_COLOR_BITS_EXT = $2014; WGL_RED_BITS_EXT = $2015; WGL_RED_SHIFT_EXT = $2016; WGL_GREEN_BITS_EXT = $2017; WGL_GREEN_SHIFT_EXT = $2018; WGL_BLUE_BITS_EXT = $2019; WGL_BLUE_SHIFT_EXT = $201A; WGL_ALPHA_BITS_EXT = $201B; WGL_ALPHA_SHIFT_EXT = $201C; WGL_ACCUM_BITS_EXT = $201D; WGL_ACCUM_RED_BITS_EXT = $201E; WGL_ACCUM_GREEN_BITS_EXT = $201F; WGL_ACCUM_BLUE_BITS_EXT = $2020; WGL_ACCUM_ALPHA_BITS_EXT = $2021; WGL_DEPTH_BITS_EXT = $2022; WGL_STENCIL_BITS_EXT = $2023; WGL_AUX_BUFFERS_EXT = $2024; WGL_NO_ACCELERATION_EXT = $2025; WGL_GENERIC_ACCELERATION_EXT = $2026; WGL_FULL_ACCELERATION_EXT = $2027; WGL_SWAP_EXCHANGE_EXT = $2028; WGL_SWAP_COPY_EXT = $2029; WGL_SWAP_UNDEFINED_EXT = $202A; WGL_TYPE_RGBA_EXT = $202B; WGL_TYPE_COLORINDEX_EXT = $202C; var wglGetPixelFormatAttribivEXT: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): BOOL; stdcall = nil; wglGetPixelFormatAttribfvEXT: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): BOOL; stdcall = nil; wglChoosePixelFormatEXT: function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall = nil; function Load_WGL_EXT_pixel_format: Boolean; //***** WGL_I3D_digital_video_control *****// const WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050; WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051; WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052; WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053; var wglGetDigitalVideoParametersI3D: function(hDC: HDC; iAttribute: GLint; piValue: PGLint): BOOL; stdcall = nil; wglSetDigitalVideoParametersI3D: function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): BOOL; stdcall = nil; function Load_WGL_I3D_digital_video_control: Boolean; //***** WGL_I3D_gamma *****// const WGL_GAMMA_TABLE_SIZE_I3D = $204E; WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F; // WGL_GAMMA_EXCLUDE_DESKTOP_I3D { already defined } var wglGetGammaTableParametersI3D: function(hDC: HDC; iAttribute: GLint; piValue: PGLint): BOOL; stdcall = nil; wglSetGammaTableParametersI3D: function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): BOOL; stdcall = nil; wglGetGammaTableI3D: function(hDC: HDC; iEntries: GLint; puRed: PGLUSHORT; puGreen: PGLUSHORT; puBlue: PGLUSHORT): BOOL; stdcall = nil; wglSetGammaTableI3D: function(hDC: HDC; iEntries: GLint; const puRed: PGLUSHORT; const puGreen: PGLUSHORT; const puBlue: PGLUSHORT): BOOL; stdcall = nil; function Load_WGL_I3D_gamma: Boolean; //***** WGL_I3D_genlock *****// const WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044; WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D = $2045; WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D = $2046; WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D = $2047; WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048; WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049; WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A; WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B; WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C; var wglEnableGenlockI3D: function(hDC: HDC): BOOL; stdcall = nil; wglDisableGenlockI3D: function(hDC: HDC): BOOL; stdcall = nil; wglIsEnabledGenlockI3D: function(hDC: HDC; pFlag: PBOOL): BOOL; stdcall = nil; wglGenlockSourceI3D: function(hDC: HDC; uSource: GLUINT): BOOL; stdcall = nil; wglGetGenlockSourceI3D: function(hDC: HDC; uSource: PGLUINT): BOOL; stdcall = nil; wglGenlockSourceEdgeI3D: function(hDC: HDC; uEdge: GLUINT): BOOL; stdcall = nil; wglGetGenlockSourceEdgeI3D: function(hDC: HDC; uEdge: PGLUINT): BOOL; stdcall = nil; wglGenlockSampleRateI3D: function(hDC: HDC; uRate: GLUINT): BOOL; stdcall = nil; wglGetGenlockSampleRateI3D: function(hDC: HDC; uRate: PGLUINT): BOOL; stdcall = nil; wglGenlockSourceDelayI3D: function(hDC: HDC; uDelay: GLUINT): BOOL; stdcall = nil; wglGetGenlockSourceDelayI3D: function(hDC: HDC; uDelay: PGLUINT): BOOL; stdcall = nil; wglQueryGenlockMaxSourceDelayI3D: function(hDC: HDC; uMaxLineDelay: PGLUINT; uMaxPixelDelay: PGLUINT): BOOL; stdcall = nil; function Load_WGL_I3D_genlock: Boolean; //***** GL_ARB_matrix_palette *****// const GL_MATRIX_PALETTE_ARB = $8840; GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841; GL_MAX_PALETTE_MATRICES_ARB = $8842; GL_CURRENT_PALETTE_MATRIX_ARB = $8843; GL_MATRIX_INDEX_ARRAY_ARB = $8844; GL_CURRENT_MATRIX_INDEX_ARB = $8845; GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846; GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847; GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848; GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849; var glCurrentPaletteMatrixARB: procedure(index: GLint); stdcall = nil; glMatrixIndexubvARB: procedure(size: GLint; indices: PGLubyte); stdcall = nil; glMatrixIndexusvARB: procedure(size: GLint; indices: PGLushort); stdcall = nil; glMatrixIndexuivARB: procedure(size: GLint; indices: PGLuint); stdcall = nil; glMatrixIndexPointerARB: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall = nil; function Load_GL_ARB_matrix_palette: Boolean; //***** GL_NV_element_array *****// const GL_ELEMENT_ARRAY_TYPE_NV = $8769; GL_ELEMENT_ARRAY_POINTER_NV = $876A; var glElementPointerNV: procedure(_type: GLenum; const pointer: PGLvoid); stdcall = nil; glDrawElementArrayNV: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall = nil; glDrawRangeElementArrayNV: procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); stdcall = nil; glMultiDrawElementArrayNV: procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall = nil; glMultiDrawRangeElementArrayNV: procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall = nil; function Load_GL_NV_element_array: Boolean; //***** GL_NV_float_buffer *****// const GL_FLOAT_R_NV = $8880; GL_FLOAT_RG_NV = $8881; GL_FLOAT_RGB_NV = $8882; GL_FLOAT_RGBA_NV = $8883; GL_FLOAT_R16_NV = $8884; GL_FLOAT_R32_NV = $8885; GL_FLOAT_RG16_NV = $8886; GL_FLOAT_RG32_NV = $8887; GL_FLOAT_RGB16_NV = $8888; GL_FLOAT_RGB32_NV = $8889; GL_FLOAT_RGBA16_NV = $888A; GL_FLOAT_RGBA32_NV = $888B; GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C; GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D; GL_FLOAT_RGBA_MODE_NV = $888E; WGL_FLOAT_COMPONENTS_NV = $20B0; WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1; WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2; WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3; WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4; WGL_TEXTURE_FLOAT_R_NV = $20B5; WGL_TEXTURE_FLOAT_RG_NV = $20B6; WGL_TEXTURE_FLOAT_RGB_NV = $20B7; WGL_TEXTURE_FLOAT_RGBA_NV = $20B8; function Load_GL_NV_float_buffer: Boolean; //***** GL_NV_fragment_program *****// const GL_FRAGMENT_PROGRAM_NV = $8870; GL_MAX_TEXTURE_COORDS_NV = $8871; GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872; GL_FRAGMENT_PROGRAM_BINDING_NV = $8873; GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868; GL_PROGRAM_ERROR_STRING_NV = $8874; var glProgramNamedParameter4fNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil; glProgramNamedParameter4dNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil; glGetProgramNamedParameterfvNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); stdcall = nil; glGetProgramNamedParameterdvNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); stdcall = nil; // glProgramLocalParameter4dARB { already defined } // glProgramLocalParameter4dvARB { already defined } // glProgramLocalParameter4fARB { already defined } // glProgramLocalParameter4fvARB { already defined } // glGetProgramLocalParameterdvARB { already defined } // glGetProgramLocalParameterfvARB { already defined } function Load_GL_NV_fragment_program: Boolean; //***** GL_NV_primitive_restart *****// const GL_PRIMITIVE_RESTART_NV = $8558; GL_PRIMITIVE_RESTART_INDEX_NV = $8559; var glPrimitiveRestartNV: procedure(); stdcall = nil; glPrimitiveRestartIndexNV: procedure(index: GLuint); stdcall = nil; function Load_GL_NV_primitive_restart: Boolean; //***** GL_NV_vertex_program2 *****// function Load_GL_NV_vertex_program2: Boolean; //***** WGL_NV_render_texture_rectangle *****// const WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0; WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1; WGL_TEXTURE_RECTANGLE_NV = $20A2; function Load_WGL_NV_render_texture_rectangle: Boolean; //***** GL_NV_pixel_data_range *****// const GL_WRITE_PIXEL_DATA_RANGE_NV = $8878; GL_READ_PIXEL_DATA_RANGE_NV = $8879; GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A; GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B; GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C; GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D; var glPixelDataRangeNV: procedure(target: GLenum; length: GLsizei; pointer: PGLvoid); stdcall = nil; glFlushPixelDataRangeNV: procedure(target: GLenum); stdcall = nil; // wglAllocateMemoryNV { already defined } // wglFreeMemoryNV { already defined } function Load_GL_NV_pixel_data_range: Boolean; //***** GL_EXT_texture_rectangle *****// const GL_TEXTURE_RECTANGLE_EXT = $84F5; GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6; GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7; GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8; function Load_GL_EXT_texture_rectangle: Boolean; //***** GL_S3_s3tc *****// const GL_RGB_S3TC = $83A0; GL_RGB4_S3TC = $83A1; GL_RGBA_S3TC = $83A2; GL_RGBA4_S3TC = $83A3; function Load_GL_S3_s3tc: Boolean; //***** GL_ATI_draw_buffers *****// const GL_MAX_DRAW_BUFFERS_ATI = $8824; GL_DRAW_BUFFER0_ATI = $8825; GL_DRAW_BUFFER1_ATI = $8826; GL_DRAW_BUFFER2_ATI = $8827; GL_DRAW_BUFFER3_ATI = $8828; GL_DRAW_BUFFER4_ATI = $8829; GL_DRAW_BUFFER5_ATI = $882A; GL_DRAW_BUFFER6_ATI = $882B; GL_DRAW_BUFFER7_ATI = $882C; GL_DRAW_BUFFER8_ATI = $882D; GL_DRAW_BUFFER9_ATI = $882E; GL_DRAW_BUFFER10_ATI = $882F; GL_DRAW_BUFFER11_ATI = $8830; GL_DRAW_BUFFER12_ATI = $8831; GL_DRAW_BUFFER13_ATI = $8832; GL_DRAW_BUFFER14_ATI = $8833; GL_DRAW_BUFFER15_ATI = $8834; var glDrawBuffersATI: procedure(n: GLsizei; const bufs: PGLenum); stdcall = nil; function Load_GL_ATI_draw_buffers: Boolean; //***** WGL_ATI_pixel_format_float *****// const WGL_RGBA_FLOAT_MODE_ATI = $8820; WGL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835; WGL_TYPE_RGBA_FLOAT_ATI = $21A0; function Load_WGL_ATI_pixel_format_float: Boolean; //***** GL_ATI_texture_env_combine3 *****// const GL_MODULATE_ADD_ATI = $8744; GL_MODULATE_SIGNED_ADD_ATI = $8745; GL_MODULATE_SUBTRACT_ATI = $8746; function Load_GL_ATI_texture_env_combine3: Boolean; //***** GL_ATI_texture_float *****// const GL_RGBA_FLOAT32_ATI = $8814; GL_RGB_FLOAT32_ATI = $8815; GL_ALPHA_FLOAT32_ATI = $8816; GL_INTENSITY_FLOAT32_ATI = $8817; GL_LUMINANCE_FLOAT32_ATI = $8818; GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819; GL_RGBA_FLOAT16_ATI = $881A; GL_RGB_FLOAT16_ATI = $881B; GL_ALPHA_FLOAT16_ATI = $881C; GL_INTENSITY_FLOAT16_ATI = $881D; GL_LUMINANCE_FLOAT16_ATI = $881E; GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F; function Load_GL_ATI_texture_float: Boolean; //***** GL_NV_texture_expand_normal *****// const GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F; function Load_GL_NV_texture_expand_normal: Boolean; //***** GL_NV_half_float *****// const GL_HALF_FLOAT_NV = $140B; var glVertex2hNV: procedure(x: GLushort; y: GLushort); stdcall = nil; glVertex2hvNV: procedure(const v: PGLushort); stdcall = nil; glVertex3hNV: procedure(x: GLushort; y: GLushort; z: GLushort); stdcall = nil; glVertex3hvNV: procedure(const v: PGLushort); stdcall = nil; glVertex4hNV: procedure(x: GLushort; y: GLushort; z: GLushort; w: GLushort); stdcall = nil; glVertex4hvNV: procedure(const v: PGLushort); stdcall = nil; glNormal3hNV: procedure(nx: GLushort; ny: GLushort; nz: GLushort); stdcall = nil; glNormal3hvNV: procedure(const v: PGLushort); stdcall = nil; glColor3hNV: procedure(red: GLushort; green: GLushort; blue: GLushort); stdcall = nil; glColor3hvNV: procedure(const v: PGLushort); stdcall = nil; glColor4hNV: procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); stdcall = nil; glColor4hvNV: procedure(const v: PGLushort); stdcall = nil; glTexCoord1hNV: procedure(s: GLushort); stdcall = nil; glTexCoord1hvNV: procedure(const v: PGLushort); stdcall = nil; glTexCoord2hNV: procedure(s: GLushort; t: GLushort); stdcall = nil; glTexCoord2hvNV: procedure(const v: PGLushort); stdcall = nil; glTexCoord3hNV: procedure(s: GLushort; t: GLushort; r: GLushort); stdcall = nil; glTexCoord3hvNV: procedure(const v: PGLushort); stdcall = nil; glTexCoord4hNV: procedure(s: GLushort; t: GLushort; r: GLushort; q: GLushort); stdcall = nil; glTexCoord4hvNV: procedure(const v: PGLushort); stdcall = nil; glMultiTexCoord1hNV: procedure(target: GLenum; s: GLushort); stdcall = nil; glMultiTexCoord1hvNV: procedure(target: GLenum; const v: PGLushort); stdcall = nil; glMultiTexCoord2hNV: procedure(target: GLenum; s: GLushort; t: GLushort); stdcall = nil; glMultiTexCoord2hvNV: procedure(target: GLenum; const v: PGLushort); stdcall = nil; glMultiTexCoord3hNV: procedure(target: GLenum; s: GLushort; t: GLushort; r: GLushort); stdcall = nil; glMultiTexCoord3hvNV: procedure(target: GLenum; const v: PGLushort); stdcall = nil; glMultiTexCoord4hNV: procedure(target: GLenum; s: GLushort; t: GLushort; r: GLushort; q: GLushort); stdcall = nil; glMultiTexCoord4hvNV: procedure(target: GLenum; const v: PGLushort); stdcall = nil; glFogCoordhNV: procedure(fog: GLushort); stdcall = nil; glFogCoordhvNV: procedure(const fog: PGLushort); stdcall = nil; glSecondaryColor3hNV: procedure(red: GLushort; green: GLushort; blue: GLushort); stdcall = nil; glSecondaryColor3hvNV: procedure(const v: PGLushort); stdcall = nil; glVertexWeighthNV: procedure(weight: GLushort); stdcall = nil; glVertexWeighthvNV: procedure(const weight: PGLushort); stdcall = nil; glVertexAttrib1hNV: procedure(index: GLuint; x: GLushort); stdcall = nil; glVertexAttrib1hvNV: procedure(index: GLuint; const v: PGLushort); stdcall = nil; glVertexAttrib2hNV: procedure(index: GLuint; x: GLushort; y: GLushort); stdcall = nil; glVertexAttrib2hvNV: procedure(index: GLuint; const v: PGLushort); stdcall = nil; glVertexAttrib3hNV: procedure(index: GLuint; x: GLushort; y: GLushort; z: GLushort); stdcall = nil; glVertexAttrib3hvNV: procedure(index: GLuint; const v: PGLushort); stdcall = nil; glVertexAttrib4hNV: procedure(index: GLuint; x: GLushort; y: GLushort; z: GLushort; w: GLushort); stdcall = nil; glVertexAttrib4hvNV: procedure(index: GLuint; const v: PGLushort); stdcall = nil; glVertexAttribs1hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); stdcall = nil; glVertexAttribs2hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); stdcall = nil; glVertexAttribs3hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); stdcall = nil; glVertexAttribs4hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); stdcall = nil; function Load_GL_NV_half_float: Boolean; //***** GL_ATI_map_object_buffer *****// var glMapObjectBufferATI: function(buffer: GLuint): PGLvoid; stdcall = nil; glUnmapObjectBufferATI: procedure(buffer: GLuint); stdcall = nil; function Load_GL_ATI_map_object_buffer: Boolean; //***** GL_ATI_separate_stencil *****// const GL_KEEP = $1E00; GL_ZERO = $0000; GL_REPLACE = $1E01; GL_INCR = $1E02; GL_DECR = $1E03; GL_INVERT = $150A; GL_NEVER = $0200; GL_LESS = $0201; GL_LEQUAL = $0203; GL_GREATER = $0204; GL_GEQUAL = $0206; GL_EQUAL = $0202; GL_NOTEQUAL = $0205; GL_ALWAYS = $0207; GL_FRONT = $0404; GL_BACK = $0405; GL_FRONT_AND_BACK = $0408; GL_STENCIL_BACK_FUNC_ATI = $8800; GL_STENCIL_BACK_FAIL_ATI = $8801; GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802; GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803; var glStencilOpSeparateATI: procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); stdcall = nil; glStencilFuncSeparateATI: procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); stdcall = nil; function Load_GL_ATI_separate_stencil: Boolean; //***** GL_ATI_vertex_attrib_array_object *****// var glVertexAttribArrayObjectATI: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall = nil; glGetVertexAttribArrayObjectfvATI: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil; glGetVertexAttribArrayObjectivATI: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall = nil; function Load_GL_ATI_vertex_attrib_array_object: Boolean; //***** GL_ARB_vertex_buffer_object *****// const GL_ARRAY_BUFFER_ARB = $8892; GL_ELEMENT_ARRAY_BUFFER_ARB = $8893; GL_ARRAY_BUFFER_BINDING_ARB = $8894; GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895; GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896; GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897; GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898; GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899; GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A; GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B; GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C; GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D; GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E; GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F; GL_STREAM_DRAW_ARB = $88E0; GL_STREAM_READ_ARB = $88E1; GL_STREAM_COPY_ARB = $88E2; GL_STATIC_DRAW_ARB = $88E4; GL_STATIC_READ_ARB = $88E5; GL_STATIC_COPY_ARB = $88E6; GL_DYNAMIC_DRAW_ARB = $88E8; GL_DYNAMIC_READ_ARB = $88E9; GL_DYNAMIC_COPY_ARB = $88EA; GL_READ_ONLY_ARB = $88B8; GL_WRITE_ONLY_ARB = $88B9; GL_READ_WRITE_ARB = $88BA; GL_BUFFER_SIZE_ARB = $8764; GL_BUFFER_USAGE_ARB = $8765; GL_BUFFER_ACCESS_ARB = $88BB; GL_BUFFER_MAPPED_ARB = $88BC; GL_BUFFER_MAP_POINTER_ARB = $88BD; var glBindBufferARB: procedure(target: GLenum; buffer: GLuint); stdcall = nil; glDeleteBuffersARB: procedure(n: GLsizei; const buffers: PGLuint); stdcall = nil; glGenBuffersARB: procedure(n: GLsizei; buffers: PGLuint); stdcall = nil; glIsBufferARB: function(buffer: GLuint): GLboolean; stdcall = nil; glBufferDataARB: procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); stdcall = nil; glBufferSubDataARB: procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); stdcall = nil; glGetBufferSubDataARB: procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); stdcall = nil; glMapBufferARB: function(target: GLenum; access: GLenum): PGLvoid; stdcall = nil; glUnmapBufferARB: function(target: GLenum): GLboolean; stdcall = nil; glGetBufferParameterivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetBufferPointervARB: procedure(target: GLenum; pname: GLenum; params: PGLvoid); stdcall = nil; function Load_GL_ARB_vertex_buffer_object: Boolean; //***** GL_ARB_occlusion_query *****// const GL_SAMPLES_PASSED_ARB = $8914; GL_QUERY_COUNTER_BITS_ARB = $8864; GL_CURRENT_QUERY_ARB = $8865; GL_QUERY_RESULT_ARB = $8866; GL_QUERY_RESULT_AVAILABLE_ARB = $8867; var glGenQueriesARB: procedure(n: GLsizei; ids: PGLuint); stdcall = nil; glDeleteQueriesARB: procedure(n: GLsizei; const ids: PGLuint); stdcall = nil; glIsQueryARB: function(id: GLuint): GLboolean; stdcall = nil; glBeginQueryARB: procedure(target: GLenum; id: GLuint); stdcall = nil; glEndQueryARB: procedure(target: GLenum); stdcall = nil; glGetQueryivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetQueryObjectivARB: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetQueryObjectuivARB: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall = nil; function Load_GL_ARB_occlusion_query: Boolean; //***** GL_ARB_shader_objects *****// const GL_PROGRAM_OBJECT_ARB = $8B40; GL_OBJECT_TYPE_ARB = $8B4E; GL_OBJECT_SUBTYPE_ARB = $8B4F; GL_OBJECT_DELETE_STATUS_ARB = $8B80; GL_OBJECT_COMPILE_STATUS_ARB = $8B81; GL_OBJECT_LINK_STATUS_ARB = $8B82; GL_OBJECT_VALIDATE_STATUS_ARB = $8B83; GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84; GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85; GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86; GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87; GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88; GL_SHADER_OBJECT_ARB = $8B48; GL_FLOAT = $1406; GL_FLOAT_VEC2_ARB = $8B50; GL_FLOAT_VEC3_ARB = $8B51; GL_FLOAT_VEC4_ARB = $8B52; GL_INT = $1404; GL_INT_VEC2_ARB = $8B53; GL_INT_VEC3_ARB = $8B54; GL_INT_VEC4_ARB = $8B55; GL_BOOL_ARB = $8B56; GL_BOOL_VEC2_ARB = $8B57; GL_BOOL_VEC3_ARB = $8B58; GL_BOOL_VEC4_ARB = $8B59; GL_FLOAT_MAT2_ARB = $8B5A; GL_FLOAT_MAT3_ARB = $8B5B; GL_FLOAT_MAT4_ARB = $8B5C; var glDeleteObjectARB: procedure(obj: GLhandleARB); stdcall = nil; glGetHandleARB: function(pname: GLenum): GLhandleARB; stdcall = nil; glDetachObjectARB: procedure(containerObj: GLhandleARB; attachedObj: GLhandleARB); stdcall = nil; glCreateShaderObjectARB: function(shaderType: GLenum): GLhandleARB; stdcall = nil; glShaderSourceARB: procedure(shaderObj: GLhandleARB; count: GLsizei; const _string: PGLvoid; const length: PGLint); stdcall = nil; glCompileShaderARB: procedure(shaderObj: GLhandleARB); stdcall = nil; glCreateProgramObjectARB: function(): GLhandleARB; stdcall = nil; glAttachObjectARB: procedure(containerObj: GLhandleARB; obj: GLhandleARB); stdcall = nil; glLinkProgramARB: procedure(programObj: GLhandleARB); stdcall = nil; glUseProgramObjectARB: procedure(programObj: GLhandleARB); stdcall = nil; glValidateProgramARB: procedure(programObj: GLhandleARB); stdcall = nil; glUniform1fARB: procedure(location: GLint; v0: GLfloat); stdcall = nil; glUniform2fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat); stdcall = nil; glUniform3fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); stdcall = nil; glUniform4fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); stdcall = nil; glUniform1iARB: procedure(location: GLint; v0: GLint); stdcall = nil; glUniform2iARB: procedure(location: GLint; v0: GLint; v1: GLint); stdcall = nil; glUniform3iARB: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint); stdcall = nil; glUniform4iARB: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); stdcall = nil; glUniform1fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall = nil; glUniform2fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall = nil; glUniform3fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall = nil; glUniform4fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall = nil; glUniform1ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall = nil; glUniform2ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall = nil; glUniform3ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall = nil; glUniform4ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall = nil; glUniformMatrix2fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall = nil; glUniformMatrix3fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall = nil; glUniformMatrix4fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall = nil; glGetObjectParameterfvARB: procedure(obj: GLhandleARB; pname: GLenum; params: PGLfloat); stdcall = nil; glGetObjectParameterivARB: procedure(obj: GLhandleARB; pname: GLenum; params: PGLint); stdcall = nil; glGetInfoLogARB: procedure(obj: GLhandleARB; maxLength: GLsizei; length: PGLsizei; infoLog: PGLcharARB); stdcall = nil; glGetAttachedObjectsARB: procedure(containerObj: GLhandleARB; maxCount: GLsizei; count: PGLsizei; obj: PGLhandleARB); stdcall = nil; glGetUniformLocationARB: function(programObj: GLhandleARB; const name: PGLcharARB): GLint; stdcall = nil; glGetActiveUniformARB: procedure(programObj: GLhandleARB; index: GLuint; maxLength: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLcharARB); stdcall = nil; glGetUniformfvARB: procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); stdcall = nil; glGetUniformivARB: procedure(programObj: GLhandleARB; location: GLint; params: PGLint); stdcall = nil; glGetShaderSourceARB: procedure(obj: GLhandleARB; maxLength: GLsizei; length: PGLsizei; source: PGLcharARB); stdcall = nil; function Load_GL_ARB_shader_objects: Boolean; //***** GL_ARB_vertex_shader *****// const GL_VERTEX_SHADER_ARB = $8B31; GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A; GL_MAX_VARYING_FLOATS_ARB = $8B4B; // GL_MAX_VERTEX_ATTRIBS_ARB { already defined } // GL_MAX_TEXTURE_IMAGE_UNITS_ARB { already defined } GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C; GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D; // GL_MAX_TEXTURE_COORDS_ARB { already defined } // GL_VERTEX_PROGRAM_POINT_SIZE_ARB { already defined } // GL_VERTEX_PROGRAM_TWO_SIDE_ARB { already defined } // GL_OBJECT_TYPE_ARB { already defined } // GL_OBJECT_SUBTYPE_ARB { already defined } GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89; GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A; // GL_SHADER_OBJECT_ARB { already defined } // GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB { already defined } // GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB { already defined } // GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB { already defined } // GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB { already defined } // GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB { already defined } // GL_CURRENT_VERTEX_ATTRIB_ARB { already defined } // GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB { already defined } // GL_FLOAT { already defined } // GL_FLOAT_VEC2_ARB { already defined } // GL_FLOAT_VEC3_ARB { already defined } // GL_FLOAT_VEC4_ARB { already defined } // GL_FLOAT_MAT2_ARB { already defined } // GL_FLOAT_MAT3_ARB { already defined } // GL_FLOAT_MAT4_ARB { already defined } // glVertexAttrib1fARB { already defined } // glVertexAttrib1sARB { already defined } // glVertexAttrib1dARB { already defined } // glVertexAttrib2fARB { already defined } // glVertexAttrib2sARB { already defined } // glVertexAttrib2dARB { already defined } // glVertexAttrib3fARB { already defined } // glVertexAttrib3sARB { already defined } // glVertexAttrib3dARB { already defined } // glVertexAttrib4fARB { already defined } // glVertexAttrib4sARB { already defined } // glVertexAttrib4dARB { already defined } // glVertexAttrib4NubARB { already defined } // glVertexAttrib1fvARB { already defined } // glVertexAttrib1svARB { already defined } // glVertexAttrib1dvARB { already defined } // glVertexAttrib2fvARB { already defined } // glVertexAttrib2svARB { already defined } // glVertexAttrib2dvARB { already defined } // glVertexAttrib3fvARB { already defined } // glVertexAttrib3svARB { already defined } // glVertexAttrib3dvARB { already defined } // glVertexAttrib4fvARB { already defined } // glVertexAttrib4svARB { already defined } // glVertexAttrib4dvARB { already defined } // glVertexAttrib4ivARB { already defined } // glVertexAttrib4bvARB { already defined } // glVertexAttrib4ubvARB { already defined } // glVertexAttrib4usvARB { already defined } // glVertexAttrib4uivARB { already defined } // glVertexAttrib4NbvARB { already defined } // glVertexAttrib4NsvARB { already defined } // glVertexAttrib4NivARB { already defined } // glVertexAttrib4NubvARB { already defined } // glVertexAttrib4NusvARB { already defined } // glVertexAttrib4NuivARB { already defined } // glVertexAttribPointerARB { already defined } // glEnableVertexAttribArrayARB { already defined } // glDisableVertexAttribArrayARB { already defined } var glBindAttribLocationARB: procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); stdcall = nil; glGetActiveAttribARB: procedure(programObj: GLhandleARB; index: GLuint; maxLength: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLcharARB); stdcall = nil; glGetAttribLocationARB: function(programObj: GLhandleARB; const name: PGLcharARB): GLint; stdcall = nil; // glGetVertexAttribdvARB { already defined } // glGetVertexAttribfvARB { already defined } // glGetVertexAttribivARB { already defined } // glGetVertexAttribPointervARB { already defined } function Load_GL_ARB_vertex_shader: Boolean; //***** GL_ARB_fragment_shader *****// const GL_FRAGMENT_SHADER_ARB = $8B30; GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49; // GL_MAX_TEXTURE_COORDS_ARB { already defined } // GL_MAX_TEXTURE_IMAGE_UNITS_ARB { already defined } // GL_OBJECT_TYPE_ARB { already defined } // GL_OBJECT_SUBTYPE_ARB { already defined } // GL_SHADER_OBJECT_ARB { already defined } function Load_GL_ARB_fragment_shader: Boolean; //***** GL_ARB_shading_language_100 *****// const GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C; function Load_GL_ARB_shading_language_100: Boolean; //***** GL_ARB_texture_non_power_of_two *****// function Load_GL_ARB_texture_non_power_of_two: Boolean; //***** GL_ARB_point_sprite *****// const GL_POINT_SPRITE_ARB = $8861; GL_COORD_REPLACE_ARB = $8862; function Load_GL_ARB_point_sprite: Boolean; //***** GL_EXT_depth_bounds_test *****// const GL_DEPTH_BOUNDS_TEST_EXT = $8890; GL_DEPTH_BOUNDS_EXT = $8891; var glDepthBoundsEXT: procedure(zmin: GLclampd; zmax: GLclampd); stdcall = nil; function Load_GL_EXT_depth_bounds_test: Boolean; //***** GL_EXT_secondary_color *****// const GL_COLOR_SUM_EXT = $8458; GL_CURRENT_SECONDARY_COLOR_EXT = $8459; GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A; GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B; GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C; GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D; GL_SECONDARY_COLOR_ARRAY_EXT = $845E; var glSecondaryColor3bEXT: procedure(r: GLbyte; g: GLbyte; b: GLbyte); stdcall = nil; glSecondaryColor3sEXT: procedure(r: GLshort; g: GLshort; b: GLshort); stdcall = nil; glSecondaryColor3iEXT: procedure(r: GLint; g: GLint; b: GLint); stdcall = nil; glSecondaryColor3fEXT: procedure(r: GLfloat; g: GLfloat; b: GLfloat); stdcall = nil; glSecondaryColor3dEXT: procedure(r: GLdouble; g: GLdouble; b: GLdouble); stdcall = nil; glSecondaryColor3ubEXT: procedure(r: GLubyte; g: GLubyte; b: GLubyte); stdcall = nil; glSecondaryColor3usEXT: procedure(r: GLushort; g: GLushort; b: GLushort); stdcall = nil; glSecondaryColor3uiEXT: procedure(r: GLuint; g: GLuint; b: GLuint); stdcall = nil; glSecondaryColor3bvEXT: procedure(components: PGLbyte); stdcall = nil; glSecondaryColor3svEXT: procedure(components: PGLshort); stdcall = nil; glSecondaryColor3ivEXT: procedure(components: PGLint); stdcall = nil; glSecondaryColor3fvEXT: procedure(components: PGLfloat); stdcall = nil; glSecondaryColor3dvEXT: procedure(components: PGLdouble); stdcall = nil; glSecondaryColor3ubvEXT: procedure(components: PGLubyte); stdcall = nil; glSecondaryColor3usvEXT: procedure(components: PGLushort); stdcall = nil; glSecondaryColor3uivEXT: procedure(components: PGLuint); stdcall = nil; glSecondaryColorPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall = nil; function Load_GL_EXT_secondary_color: Boolean; //***** GL_EXT_texture_mirror_clamp *****// const GL_MIRROR_CLAMP_EXT = $8742; GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743; GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912; function Load_GL_EXT_texture_mirror_clamp: Boolean; //***** GL_EXT_blend_equation_separate *****// const GL_BLEND_EQUATION_RGB_EXT = $8009; GL_BLEND_EQUATION_ALPHA_EXT = $883D; var glBlendEquationSeparateEXT: procedure(modeRGB: GLenum; modeAlpha: GLenum); stdcall = nil; function Load_GL_EXT_blend_equation_separate: Boolean; //***** GL_MESA_pack_invert *****// const GL_PACK_INVERT_MESA = $8758; function Load_GL_MESA_pack_invert: Boolean; //***** GL_MESA_ycbcr_texture *****// const GL_YCBCR_MESA = $8757; GL_UNSIGNED_SHORT_8_8_MESA = $85BA; GL_UNSIGNED_SHORT_8_8_REV_MESA = $85BB; function Load_GL_MESA_ycbcr_texture: Boolean; //***** GL_ARB_fragment_program_shadow *****// function Load_GL_ARB_fragment_program_shadow: Boolean; //***** GL_EXT_fog_coord *****// const GL_FOG_COORDINATE_SOURCE_EXT = $8450; GL_FOG_COORDINATE_EXT = $8451; GL_FRAGMENT_DEPTH_EXT = $8452; GL_CURRENT_FOG_COORDINATE_EXT = $8453; GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454; GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455; GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456; GL_FOG_COORDINATE_ARRAY_EXT = $8457; var glFogCoordfEXT: procedure(coord: GLfloat); stdcall = nil; glFogCoorddEXT: procedure(coord: GLdouble); stdcall = nil; glFogCoordfvEXT: procedure(coord: PGLfloat); stdcall = nil; glFogCoorddvEXT: procedure(coord: PGLdouble); stdcall = nil; glFogCoordPointerEXT: procedure(_type: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall = nil; function Load_GL_EXT_fog_coord: Boolean; //***** GL_NV_fragment_program_option *****// function Load_GL_NV_fragment_program_option: Boolean; //***** GL_EXT_pixel_buffer_object *****// const GL_PIXEL_PACK_BUFFER_EXT = $88EB; GL_PIXEL_UNPACK_BUFFER_EXT = $88EC; GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED; GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF; function Load_GL_EXT_pixel_buffer_object: Boolean; //***** GL_NV_fragment_program2 *****// const GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4; GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5; GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6; GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7; GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8; function Load_GL_NV_fragment_program2: Boolean; //***** GL_NV_vertex_program2_option *****// // GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV { already defined } // GL_MAX_PROGRAM_CALL_DEPTH_NV { already defined } function Load_GL_NV_vertex_program2_option: Boolean; //***** GL_NV_vertex_program3 *****// // GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB { already defined } function Load_GL_NV_vertex_program3: Boolean; //***** GL_ARB_draw_buffers *****// const GL_MAX_DRAW_BUFFERS_ARB = $8824; GL_DRAW_BUFFER0_ARB = $8825; GL_DRAW_BUFFER1_ARB = $8826; GL_DRAW_BUFFER2_ARB = $8827; GL_DRAW_BUFFER3_ARB = $8828; GL_DRAW_BUFFER4_ARB = $8829; GL_DRAW_BUFFER5_ARB = $882A; GL_DRAW_BUFFER6_ARB = $882B; GL_DRAW_BUFFER7_ARB = $882C; GL_DRAW_BUFFER8_ARB = $882D; GL_DRAW_BUFFER9_ARB = $882E; GL_DRAW_BUFFER10_ARB = $882F; GL_DRAW_BUFFER11_ARB = $8830; GL_DRAW_BUFFER12_ARB = $8831; GL_DRAW_BUFFER13_ARB = $8832; GL_DRAW_BUFFER14_ARB = $8833; GL_DRAW_BUFFER15_ARB = $8834; var glDrawBuffersARB: procedure(n: GLsizei; const bufs: PGLenum); stdcall = nil; function Load_GL_ARB_draw_buffers: Boolean; //***** GL_ARB_texture_rectangle *****// const GL_TEXTURE_RECTANGLE_ARB = $84F5; GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6; GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7; GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8; function Load_GL_ARB_texture_rectangle: Boolean; //***** GL_ARB_color_buffer_float *****// const GL_RGBA_FLOAT_MODE_ARB = $8820; GL_CLAMP_VERTEX_COLOR_ARB = $891A; GL_CLAMP_FRAGMENT_COLOR_ARB = $891B; GL_CLAMP_READ_COLOR_ARB = $891C; GL_FIXED_ONLY_ARB = $891D; WGL_TYPE_RGBA_FLOAT_ARB = $21A0; var glClampColorARB: procedure(target: GLenum; clamp: GLenum); stdcall = nil; function Load_GL_ARB_color_buffer_float: Boolean; //***** GL_ARB_half_float_pixel *****// const GL_HALF_FLOAT_ARB = $140B; function Load_GL_ARB_half_float_pixel: Boolean; //***** GL_ARB_texture_float *****// const GL_TEXTURE_RED_TYPE_ARB = $8C10; GL_TEXTURE_GREEN_TYPE_ARB = $8C11; GL_TEXTURE_BLUE_TYPE_ARB = $8C12; GL_TEXTURE_ALPHA_TYPE_ARB = $8C13; GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14; GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15; GL_TEXTURE_DEPTH_TYPE_ARB = $8C16; GL_UNSIGNED_NORMALIZED_ARB = $8C17; GL_RGBA32F_ARB = $8814; GL_RGB32F_ARB = $8815; GL_ALPHA32F_ARB = $8816; GL_INTENSITY32F_ARB = $8817; GL_LUMINANCE32F_ARB = $8818; GL_LUMINANCE_ALPHA32F_ARB = $8819; GL_RGBA16F_ARB = $881A; GL_RGB16F_ARB = $881B; GL_ALPHA16F_ARB = $881C; GL_INTENSITY16F_ARB = $881D; GL_LUMINANCE16F_ARB = $881E; GL_LUMINANCE_ALPHA16F_ARB = $881F; function Load_GL_ARB_texture_float: Boolean; //***** GL_EXT_texture_compression_dxt1 *****// // GL_COMPRESSED_RGB_S3TC_DXT1_EXT { already defined } // GL_COMPRESSED_RGBA_S3TC_DXT1_EXT { already defined } function Load_GL_EXT_texture_compression_dxt1: Boolean; //***** GL_ARB_pixel_buffer_object *****// const GL_PIXEL_PACK_BUFFER_ARB = $88EB; GL_PIXEL_UNPACK_BUFFER_ARB = $88EC; GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED; GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF; function Load_GL_ARB_pixel_buffer_object: Boolean; //***** GL_EXT_framebuffer_object *****// const GL_FRAMEBUFFER_EXT = $8D40; GL_RENDERBUFFER_EXT = $8D41; GL_STENCIL_INDEX_EXT = $8D45; GL_STENCIL_INDEX1_EXT = $8D46; GL_STENCIL_INDEX4_EXT = $8D47; GL_STENCIL_INDEX8_EXT = $8D48; GL_STENCIL_INDEX16_EXT = $8D49; GL_RENDERBUFFER_WIDTH_EXT = $8D42; GL_RENDERBUFFER_HEIGHT_EXT = $8D43; GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44; GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0; GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1; GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2; GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3; GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4; GL_COLOR_ATTACHMENT0_EXT = $8CE0; GL_COLOR_ATTACHMENT1_EXT = $8CE1; GL_COLOR_ATTACHMENT2_EXT = $8CE2; GL_COLOR_ATTACHMENT3_EXT = $8CE3; GL_COLOR_ATTACHMENT4_EXT = $8CE4; GL_COLOR_ATTACHMENT5_EXT = $8CE5; GL_COLOR_ATTACHMENT6_EXT = $8CE6; GL_COLOR_ATTACHMENT7_EXT = $8CE7; GL_COLOR_ATTACHMENT8_EXT = $8CE8; GL_COLOR_ATTACHMENT9_EXT = $8CE9; GL_COLOR_ATTACHMENT10_EXT = $8CEA; GL_COLOR_ATTACHMENT11_EXT = $8CEB; GL_COLOR_ATTACHMENT12_EXT = $8CEC; GL_COLOR_ATTACHMENT13_EXT = $8CED; GL_COLOR_ATTACHMENT14_EXT = $8CEE; GL_COLOR_ATTACHMENT15_EXT = $8CEF; GL_DEPTH_ATTACHMENT_EXT = $8D00; GL_STENCIL_ATTACHMENT_EXT = $8D20; GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5; GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6; GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7; GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8; GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9; GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA; GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB; GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC; GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD; GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE; GL_FRAMEBUFFER_BINDING_EXT = $8CA6; GL_RENDERBUFFER_BINDING_EXT = $8CA7; GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF; GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8; GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506; var glIsRenderbufferEXT: function(renderbuffer: GLuint): GLboolean; stdcall = nil; glBindRenderbufferEXT: procedure(target: GLenum; renderbuffer: GLuint); stdcall = nil; glDeleteRenderbuffersEXT: procedure(n: GLsizei; const renderbuffers: PGLuint); stdcall = nil; glGenRenderbuffersEXT: procedure(n: GLsizei; renderbuffers: PGLuint); stdcall = nil; glRenderbufferStorageEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall = nil; glGetRenderbufferParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glIsFramebufferEXT: function(framebuffer: GLuint): GLboolean; stdcall = nil; glBindFramebufferEXT: procedure(target: GLenum; framebuffer: GLuint); stdcall = nil; glDeleteFramebuffersEXT: procedure(n: GLsizei; const framebuffers: PGLuint); stdcall = nil; glGenFramebuffersEXT: procedure(n: GLsizei; framebuffers: PGLuint); stdcall = nil; glCheckFramebufferStatusEXT: function(target: GLenum): GLenum; stdcall = nil; glFramebufferTexture1DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall = nil; glFramebufferTexture2DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall = nil; glFramebufferTexture3DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); stdcall = nil; glFramebufferRenderbufferEXT: procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); stdcall = nil; glGetFramebufferAttachmentParameterivEXT: procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGenerateMipmapEXT: procedure(target: GLenum); stdcall = nil; function Load_GL_EXT_framebuffer_object: Boolean; //***** GL_version_1_4 *****// const GL_BLEND_DST_RGB = $80C8; GL_BLEND_SRC_RGB = $80C9; GL_BLEND_DST_ALPHA = $80CA; GL_BLEND_SRC_ALPHA = $80CB; GL_POINT_SIZE_MIN = $8126; GL_POINT_SIZE_MAX = $8127; GL_POINT_FADE_THRESHOLD_SIZE = $8128; GL_POINT_DISTANCE_ATTENUATION = $8129; GL_GENERATE_MIPMAP = $8191; GL_GENERATE_MIPMAP_HINT = $8192; GL_DEPTH_COMPONENT16 = $81A5; GL_DEPTH_COMPONENT24 = $81A6; GL_DEPTH_COMPONENT32 = $81A7; GL_MIRRORED_REPEAT = $8370; GL_FOG_COORDINATE_SOURCE = $8450; GL_FOG_COORDINATE = $8451; GL_FRAGMENT_DEPTH = $8452; GL_CURRENT_FOG_COORDINATE = $8453; GL_FOG_COORDINATE_ARRAY_TYPE = $8454; GL_FOG_COORDINATE_ARRAY_STRIDE = $8455; GL_FOG_COORDINATE_ARRAY_POINTER = $8456; GL_FOG_COORDINATE_ARRAY = $8457; GL_COLOR_SUM = $8458; GL_CURRENT_SECONDARY_COLOR = $8459; GL_SECONDARY_COLOR_ARRAY_SIZE = $845A; GL_SECONDARY_COLOR_ARRAY_TYPE = $845B; GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C; GL_SECONDARY_COLOR_ARRAY_POINTER = $845D; GL_SECONDARY_COLOR_ARRAY = $845E; GL_MAX_TEXTURE_LOD_BIAS = $84FD; GL_TEXTURE_FILTER_CONTROL = $8500; GL_TEXTURE_LOD_BIAS = $8501; GL_INCR_WRAP = $8507; GL_DECR_WRAP = $8508; GL_TEXTURE_DEPTH_SIZE = $884A; GL_DEPTH_TEXTURE_MODE = $884B; GL_TEXTURE_COMPARE_MODE = $884C; GL_TEXTURE_COMPARE_FUNC = $884D; GL_COMPARE_R_TO_TEXTURE = $884E; var glBlendFuncSeparate: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); stdcall = nil; glFogCoordf: procedure(coord: GLfloat); stdcall = nil; glFogCoordfv: procedure(const coord: PGLfloat); stdcall = nil; glFogCoordd: procedure(coord: GLdouble); stdcall = nil; glFogCoorddv: procedure(const coord: PGLdouble); stdcall = nil; glFogCoordPointer: procedure(_type: GLenum; stride: GLsizei; const pointer: PGLvoid); stdcall = nil; glMultiDrawArrays: procedure(mode: GLenum; first: PGLint; count: PGLsizei; primcount: GLsizei); stdcall = nil; glMultiDrawElements: procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); stdcall = nil; glPointParameterf: procedure(pname: GLenum; param: GLfloat); stdcall = nil; glPointParameterfv: procedure(pname: GLenum; const params: PGLfloat); stdcall = nil; glPointParameteri: procedure(pname: GLenum; param: GLint); stdcall = nil; glPointParameteriv: procedure(pname: GLenum; const params: PGLint); stdcall = nil; glSecondaryColor3b: procedure(red: GLbyte; green: GLbyte; blue: GLbyte); stdcall = nil; glSecondaryColor3bv: procedure(const v: PGLbyte); stdcall = nil; glSecondaryColor3d: procedure(red: GLdouble; green: GLdouble; blue: GLdouble); stdcall = nil; glSecondaryColor3dv: procedure(const v: PGLdouble); stdcall = nil; glSecondaryColor3f: procedure(red: GLfloat; green: GLfloat; blue: GLfloat); stdcall = nil; glSecondaryColor3fv: procedure(const v: PGLfloat); stdcall = nil; glSecondaryColor3i: procedure(red: GLint; green: GLint; blue: GLint); stdcall = nil; glSecondaryColor3iv: procedure(const v: PGLint); stdcall = nil; glSecondaryColor3s: procedure(red: GLshort; green: GLshort; blue: GLshort); stdcall = nil; glSecondaryColor3sv: procedure(const v: PGLshort); stdcall = nil; glSecondaryColor3ub: procedure(red: GLubyte; green: GLubyte; blue: GLubyte); stdcall = nil; glSecondaryColor3ubv: procedure(const v: PGLubyte); stdcall = nil; glSecondaryColor3ui: procedure(red: GLuint; green: GLuint; blue: GLuint); stdcall = nil; glSecondaryColor3uiv: procedure(const v: PGLuint); stdcall = nil; glSecondaryColor3us: procedure(red: GLushort; green: GLushort; blue: GLushort); stdcall = nil; glSecondaryColor3usv: procedure(const v: PGLushort); stdcall = nil; glSecondaryColorPointer: procedure(size: GLint; _type: GLenum; stride: GLsizei; const pointer: PGLvoid); stdcall = nil; glWindowPos2d: procedure(x: GLdouble; y: GLdouble); stdcall = nil; glWindowPos2dv: procedure(const v: PGLdouble); stdcall = nil; glWindowPos2f: procedure(x: GLfloat; y: GLfloat); stdcall = nil; glWindowPos2fv: procedure(const v: PGLfloat); stdcall = nil; glWindowPos2i: procedure(x: GLint; y: GLint); stdcall = nil; glWindowPos2iv: procedure(const v: PGLint); stdcall = nil; glWindowPos2s: procedure(x: GLshort; y: GLshort); stdcall = nil; glWindowPos2sv: procedure(const v: PGLshort); stdcall = nil; glWindowPos3d: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil; glWindowPos3dv: procedure(const v: PGLdouble); stdcall = nil; glWindowPos3f: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glWindowPos3fv: procedure(const v: PGLfloat); stdcall = nil; glWindowPos3i: procedure(x: GLint; y: GLint; z: GLint); stdcall = nil; glWindowPos3iv: procedure(const v: PGLint); stdcall = nil; glWindowPos3s: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall = nil; glWindowPos3sv: procedure(const v: PGLshort); stdcall = nil; function Load_GL_version_1_4: Boolean; //***** GL_version_1_5 *****// const GL_BUFFER_SIZE = $8764; GL_BUFFER_USAGE = $8765; GL_QUERY_COUNTER_BITS = $8864; GL_CURRENT_QUERY = $8865; GL_QUERY_RESULT = $8866; GL_QUERY_RESULT_AVAILABLE = $8867; GL_ARRAY_BUFFER = $8892; GL_ELEMENT_ARRAY_BUFFER = $8893; GL_ARRAY_BUFFER_BINDING = $8894; GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895; GL_VERTEX_ARRAY_BUFFER_BINDING = $8896; GL_NORMAL_ARRAY_BUFFER_BINDING = $8897; GL_COLOR_ARRAY_BUFFER_BINDING = $8898; GL_INDEX_ARRAY_BUFFER_BINDING = $8899; GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A; GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B; GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C; GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D; GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E; GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F; GL_READ_ONLY = $88B8; GL_WRITE_ONLY = $88B9; GL_READ_WRITE = $88BA; GL_BUFFER_ACCESS = $88BB; GL_BUFFER_MAPPED = $88BC; GL_BUFFER_MAP_POINTER = $88BD; GL_STREAM_DRAW = $88E0; GL_STREAM_READ = $88E1; GL_STREAM_COPY = $88E2; GL_STATIC_DRAW = $88E4; GL_STATIC_READ = $88E5; GL_STATIC_COPY = $88E6; GL_DYNAMIC_DRAW = $88E8; GL_DYNAMIC_READ = $88E9; GL_DYNAMIC_COPY = $88EA; GL_SAMPLES_PASSED = $8914; GL_FOG_COORD_SRC = $8450; GL_FOG_COORD = $8451; GL_CURRENT_FOG_COORD = $8453; GL_FOG_COORD_ARRAY_TYPE = $8454; GL_FOG_COORD_ARRAY_STRIDE = $8455; GL_FOG_COORD_ARRAY_POINTER = $8456; GL_FOG_COORD_ARRAY = $8457; GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D; GL_SRC0_RGB = $8580; GL_SRC1_RGB = $8581; GL_SRC2_RGB = $8582; GL_SRC0_ALPHA = $8588; GL_SRC1_ALPHA = $8589; GL_SRC2_ALPHA = $858A; var glGenQueries: procedure(n: GLsizei; ids: PGLuint); stdcall = nil; glDeleteQueries: procedure(n: GLsizei; const ids: PGLuint); stdcall = nil; glIsQuery: function(id: GLuint): GLboolean; stdcall = nil; glBeginQuery: procedure(target: GLenum; id: GLuint); stdcall = nil; glEndQuery: procedure(target: GLenum); stdcall = nil; glGetQueryiv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetQueryObjectiv: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetQueryObjectuiv: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall = nil; glBindBuffer: procedure(target: GLenum; buffer: GLuint); stdcall = nil; glDeleteBuffers: procedure(n: GLsizei; const buffers: PGLuint); stdcall = nil; glGenBuffers: procedure(n: GLsizei; buffers: PGLuint); stdcall = nil; glIsBuffer: function(buffer: GLuint): GLboolean; stdcall = nil; glBufferData: procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); stdcall = nil; glBufferSubData: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); stdcall = nil; glGetBufferSubData: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); stdcall = nil; glMapBuffer: function(target: GLenum; access: GLenum): PGLvoid; stdcall = nil; glUnmapBuffer: function(target: GLenum): GLboolean; stdcall = nil; glGetBufferParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil; glGetBufferPointerv: procedure(target: GLenum; pname: GLenum; params: PGLvoid); stdcall = nil; function Load_GL_version_1_5: Boolean; //***** GL_version_2_0 *****// const GL_BLEND_EQUATION_RGB = $8009; GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622; GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623; GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624; GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625; GL_CURRENT_VERTEX_ATTRIB = $8626; GL_VERTEX_PROGRAM_POINT_SIZE = $8642; GL_VERTEX_PROGRAM_TWO_SIDE = $8643; GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645; GL_STENCIL_BACK_FUNC = $8800; GL_STENCIL_BACK_FAIL = $8801; GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802; GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803; GL_MAX_DRAW_BUFFERS = $8824; GL_DRAW_BUFFER0 = $8825; GL_DRAW_BUFFER1 = $8826; GL_DRAW_BUFFER2 = $8827; GL_DRAW_BUFFER3 = $8828; GL_DRAW_BUFFER4 = $8829; GL_DRAW_BUFFER5 = $882A; GL_DRAW_BUFFER6 = $882B; GL_DRAW_BUFFER7 = $882C; GL_DRAW_BUFFER8 = $882D; GL_DRAW_BUFFER9 = $882E; GL_DRAW_BUFFER10 = $882F; GL_DRAW_BUFFER11 = $8830; GL_DRAW_BUFFER12 = $8831; GL_DRAW_BUFFER13 = $8832; GL_DRAW_BUFFER14 = $8833; GL_DRAW_BUFFER15 = $8834; GL_BLEND_EQUATION_ALPHA = $883D; GL_POINT_SPRITE = $8861; GL_COORD_REPLACE = $8862; GL_MAX_VERTEX_ATTRIBS = $8869; GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A; GL_MAX_TEXTURE_COORDS = $8871; GL_MAX_TEXTURE_IMAGE_UNITS = $8872; GL_FRAGMENT_SHADER = $8B30; GL_VERTEX_SHADER = $8B31; GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49; GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A; GL_MAX_VARYING_FLOATS = $8B4B; GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C; GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D; GL_SHADER_TYPE = $8B4F; GL_FLOAT_VEC2 = $8B50; GL_FLOAT_VEC3 = $8B51; GL_FLOAT_VEC4 = $8B52; GL_INT_VEC2 = $8B53; GL_INT_VEC3 = $8B54; GL_INT_VEC4 = $8B55; GL_BOOL = $8B56; GL_BOOL_VEC2 = $8B57; GL_BOOL_VEC3 = $8B58; GL_BOOL_VEC4 = $8B59; GL_FLOAT_MAT2 = $8B5A; GL_FLOAT_MAT3 = $8B5B; GL_FLOAT_MAT4 = $8B5C; GL_SAMPLER_1D = $8B5D; GL_SAMPLER_2D = $8B5E; GL_SAMPLER_3D = $8B5F; GL_SAMPLER_CUBE = $8B60; GL_SAMPLER_1D_SHADOW = $8B61; GL_SAMPLER_2D_SHADOW = $8B62; GL_DELETE_STATUS = $8B80; GL_COMPILE_STATUS = $8B81; GL_LINK_STATUS = $8B82; GL_VALIDATE_STATUS = $8B83; GL_INFO_LOG_LENGTH = $8B84; GL_ATTACHED_SHADERS = $8B85; GL_ACTIVE_UNIFORMS = $8B86; GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87; GL_SHADER_SOURCE_LENGTH = $8B88; GL_ACTIVE_ATTRIBUTES = $8B89; GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A; GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B; GL_SHADING_LANGUAGE_VERSION = $8B8C; GL_CURRENT_PROGRAM = $8B8D; GL_POINT_SPRITE_COORD_ORIGIN = $8CA0; GL_LOWER_LEFT = $8CA1; GL_UPPER_LEFT = $8CA2; GL_STENCIL_BACK_REF = $8CA3; GL_STENCIL_BACK_VALUE_MASK = $8CA4; GL_STENCIL_BACK_WRITEMASK = $8CA5; var glBlendEquationSeparate: procedure(modeRGB: GLenum; modeAlpha: GLenum); stdcall = nil; glDrawBuffers: procedure(n: GLsizei; const bufs: PGLenum); stdcall = nil; glStencilOpSeparate: procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); stdcall = nil; glStencilFuncSeparate: procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); stdcall = nil; glStencilMaskSeparate: procedure(face: GLenum; mask: GLuint); stdcall = nil; glAttachShader: procedure(_program: GLuint; shader: GLuint); stdcall = nil; glBindAttribLocation: procedure(_program: GLuint; index: GLuint; const name: PGLchar); stdcall = nil; glCompileShader: procedure(shader: GLuint); stdcall = nil; glCreateProgram: function(): GLuint; stdcall = nil; glCreateShader: function(_type: GLenum): GLuint; stdcall = nil; glDeleteProgram: procedure(_program: GLuint); stdcall = nil; glDeleteShader: procedure(shader: GLuint); stdcall = nil; glDetachShader: procedure(_program: GLuint; shader: GLuint); stdcall = nil; glDisableVertexAttribArray: procedure(index: GLuint); stdcall = nil; glEnableVertexAttribArray: procedure(index: GLuint); stdcall = nil; glGetActiveAttrib: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLchar); stdcall = nil; glGetActiveUniform: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLchar); stdcall = nil; glGetAttachedShaders: procedure(_program: GLuint; maxCount: GLsizei; count: PGLsizei; obj: PGLuint); stdcall = nil; glGetAttribLocation: function(_program: GLuint; const name: PGLchar): GLint; stdcall = nil; glGetProgramiv: procedure(_program: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetProgramInfoLog: procedure(_program: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); stdcall = nil; glGetShaderiv: procedure(shader: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetShaderInfoLog: procedure(shader: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); stdcall = nil; glGetShaderSource: procedure(shader: GLuint; bufSize: GLsizei; length: PGLsizei; source: PGLchar); stdcall = nil; glGetUniformLocation: function(_program: GLuint; const name: PGLchar): GLint; stdcall = nil; glGetUniformfv: procedure(_program: GLuint; location: GLint; params: PGLfloat); stdcall = nil; glGetUniformiv: procedure(_program: GLuint; location: GLint; params: PGLint); stdcall = nil; glGetVertexAttribdv: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall = nil; glGetVertexAttribfv: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil; glGetVertexAttribiv: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall = nil; glGetVertexAttribPointerv: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); stdcall = nil; glIsProgram: function(_program: GLuint): GLboolean; stdcall = nil; glIsShader: function(shader: GLuint): GLboolean; stdcall = nil; glLinkProgram: procedure(_program: GLuint); stdcall = nil; glShaderSource: procedure(shader: GLuint; count: GLsizei; const _string: PGLchar; const length: PGLint); stdcall = nil; glUseProgram: procedure(_program: GLuint); stdcall = nil; glUniform1f: procedure(location: GLint; v0: GLfloat); stdcall = nil; glUniform2f: procedure(location: GLint; v0: GLfloat; v1: GLfloat); stdcall = nil; glUniform3f: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); stdcall = nil; glUniform4f: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); stdcall = nil; glUniform1i: procedure(location: GLint; v0: GLint); stdcall = nil; glUniform2i: procedure(location: GLint; v0: GLint; v1: GLint); stdcall = nil; glUniform3i: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint); stdcall = nil; glUniform4i: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); stdcall = nil; glUniform1fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall = nil; glUniform2fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall = nil; glUniform3fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall = nil; glUniform4fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall = nil; glUniform1iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall = nil; glUniform2iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall = nil; glUniform3iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall = nil; glUniform4iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall = nil; glUniformMatrix2fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall = nil; glUniformMatrix3fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall = nil; glUniformMatrix4fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall = nil; glValidateProgram: procedure(_program: GLuint); stdcall = nil; glVertexAttrib1d: procedure(index: GLuint; x: GLdouble); stdcall = nil; glVertexAttrib1dv: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib1f: procedure(index: GLuint; x: GLfloat); stdcall = nil; glVertexAttrib1fv: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib1s: procedure(index: GLuint; x: GLshort); stdcall = nil; glVertexAttrib1sv: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib2d: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall = nil; glVertexAttrib2dv: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib2f: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall = nil; glVertexAttrib2fv: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib2s: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall = nil; glVertexAttrib2sv: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib3d: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil; glVertexAttrib3dv: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib3f: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil; glVertexAttrib3fv: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib3s: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall = nil; glVertexAttrib3sv: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib4Nbv: procedure(index: GLuint; const v: PGLbyte); stdcall = nil; glVertexAttrib4Niv: procedure(index: GLuint; const v: PGLint); stdcall = nil; glVertexAttrib4Nsv: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib4Nub: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall = nil; glVertexAttrib4Nubv: procedure(index: GLuint; const v: PGLubyte); stdcall = nil; glVertexAttrib4Nuiv: procedure(index: GLuint; const v: PGLuint); stdcall = nil; glVertexAttrib4Nusv: procedure(index: GLuint; const v: PGLushort); stdcall = nil; glVertexAttrib4bv: procedure(index: GLuint; const v: PGLbyte); stdcall = nil; glVertexAttrib4d: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil; glVertexAttrib4dv: procedure(index: GLuint; const v: PGLdouble); stdcall = nil; glVertexAttrib4f: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil; glVertexAttrib4fv: procedure(index: GLuint; const v: PGLfloat); stdcall = nil; glVertexAttrib4iv: procedure(index: GLuint; const v: PGLint); stdcall = nil; glVertexAttrib4s: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall = nil; glVertexAttrib4sv: procedure(index: GLuint; const v: PGLshort); stdcall = nil; glVertexAttrib4ubv: procedure(index: GLuint; const v: PGLubyte); stdcall = nil; glVertexAttrib4uiv: procedure(index: GLuint; const v: PGLuint); stdcall = nil; glVertexAttrib4usv: procedure(index: GLuint; const v: PGLushort); stdcall = nil; glVertexAttribPointer: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const pointer: PGLvoid); stdcall = nil; function Load_GL_version_2_0: Boolean; implementation function glext_ExtensionSupported(const extension: String; const searchIn: String): Boolean; var extensions: PChar; start: PChar; where, terminator: PChar; begin if (Pos(' ', extension) <> 0) or (extension = '') then begin Result := FALSE; Exit; end; if searchIn = '' then extensions := PChar(glGetString(GL_EXTENSIONS)) else extensions := PChar(searchIn); start := extensions; while TRUE do begin where := StrPos(start, PChar(extension)); if where = nil then Break; terminator := Pointer(Integer(where) + Length(extension)); if (where = start) or (PChar(Integer(where) - 1)^ = ' ') then begin if (terminator^ = ' ') or (terminator^ = #0) then begin Result := TRUE; Exit; end; end; start := terminator; end; Result := FALSE; end; function Load_GL_version_1_2: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); glDrawRangeElements := wglGetProcAddress('glDrawRangeElements'); if not Assigned(glDrawRangeElements) then Exit; glTexImage3D := wglGetProcAddress('glTexImage3D'); if not Assigned(glTexImage3D) then Exit; glTexSubImage3D := wglGetProcAddress('glTexSubImage3D'); if not Assigned(glTexSubImage3D) then Exit; glCopyTexSubImage3D := wglGetProcAddress('glCopyTexSubImage3D'); if not Assigned(glCopyTexSubImage3D) then Exit; Result := TRUE; end; function Load_GL_ARB_imaging: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_imaging', extstring) then begin glColorTable := wglGetProcAddress('glColorTable'); if not Assigned(glColorTable) then Exit; glColorTableParameterfv := wglGetProcAddress('glColorTableParameterfv'); if not Assigned(glColorTableParameterfv) then Exit; glColorTableParameteriv := wglGetProcAddress('glColorTableParameteriv'); if not Assigned(glColorTableParameteriv) then Exit; glCopyColorTable := wglGetProcAddress('glCopyColorTable'); if not Assigned(glCopyColorTable) then Exit; glGetColorTable := wglGetProcAddress('glGetColorTable'); if not Assigned(glGetColorTable) then Exit; glGetColorTableParameterfv := wglGetProcAddress('glGetColorTableParameterfv'); if not Assigned(glGetColorTableParameterfv) then Exit; glGetColorTableParameteriv := wglGetProcAddress('glGetColorTableParameteriv'); if not Assigned(glGetColorTableParameteriv) then Exit; glColorSubTable := wglGetProcAddress('glColorSubTable'); if not Assigned(glColorSubTable) then Exit; glCopyColorSubTable := wglGetProcAddress('glCopyColorSubTable'); if not Assigned(glCopyColorSubTable) then Exit; glConvolutionFilter1D := wglGetProcAddress('glConvolutionFilter1D'); if not Assigned(glConvolutionFilter1D) then Exit; glConvolutionFilter2D := wglGetProcAddress('glConvolutionFilter2D'); if not Assigned(glConvolutionFilter2D) then Exit; glConvolutionParameterf := wglGetProcAddress('glConvolutionParameterf'); if not Assigned(glConvolutionParameterf) then Exit; glConvolutionParameterfv := wglGetProcAddress('glConvolutionParameterfv'); if not Assigned(glConvolutionParameterfv) then Exit; glConvolutionParameteri := wglGetProcAddress('glConvolutionParameteri'); if not Assigned(glConvolutionParameteri) then Exit; glConvolutionParameteriv := wglGetProcAddress('glConvolutionParameteriv'); if not Assigned(glConvolutionParameteriv) then Exit; glCopyConvolutionFilter1D := wglGetProcAddress('glCopyConvolutionFilter1D'); if not Assigned(glCopyConvolutionFilter1D) then Exit; glCopyConvolutionFilter2D := wglGetProcAddress('glCopyConvolutionFilter2D'); if not Assigned(glCopyConvolutionFilter2D) then Exit; glGetConvolutionFilter := wglGetProcAddress('glGetConvolutionFilter'); if not Assigned(glGetConvolutionFilter) then Exit; glGetConvolutionParameterfv := wglGetProcAddress('glGetConvolutionParameterfv'); if not Assigned(glGetConvolutionParameterfv) then Exit; glGetConvolutionParameteriv := wglGetProcAddress('glGetConvolutionParameteriv'); if not Assigned(glGetConvolutionParameteriv) then Exit; glGetSeparableFilter := wglGetProcAddress('glGetSeparableFilter'); if not Assigned(glGetSeparableFilter) then Exit; glSeparableFilter2D := wglGetProcAddress('glSeparableFilter2D'); if not Assigned(glSeparableFilter2D) then Exit; glGetHistogram := wglGetProcAddress('glGetHistogram'); if not Assigned(glGetHistogram) then Exit; glGetHistogramParameterfv := wglGetProcAddress('glGetHistogramParameterfv'); if not Assigned(glGetHistogramParameterfv) then Exit; glGetHistogramParameteriv := wglGetProcAddress('glGetHistogramParameteriv'); if not Assigned(glGetHistogramParameteriv) then Exit; glGetMinmax := wglGetProcAddress('glGetMinmax'); if not Assigned(glGetMinmax) then Exit; glGetMinmaxParameterfv := wglGetProcAddress('glGetMinmaxParameterfv'); if not Assigned(glGetMinmaxParameterfv) then Exit; glGetMinmaxParameteriv := wglGetProcAddress('glGetMinmaxParameteriv'); if not Assigned(glGetMinmaxParameteriv) then Exit; glHistogram := wglGetProcAddress('glHistogram'); if not Assigned(glHistogram) then Exit; glMinmax := wglGetProcAddress('glMinmax'); if not Assigned(glMinmax) then Exit; glResetHistogram := wglGetProcAddress('glResetHistogram'); if not Assigned(glResetHistogram) then Exit; glResetMinmax := wglGetProcAddress('glResetMinmax'); if not Assigned(glResetMinmax) then Exit; glBlendEquation := wglGetProcAddress('glBlendEquation'); if not Assigned(glBlendEquation) then Exit; glBlendColor := wglGetProcAddress('glBlendColor'); if not Assigned(glBlendColor) then Exit; Result := TRUE; end; end; function Load_GL_version_1_3: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); glActiveTexture := wglGetProcAddress('glActiveTexture'); if not Assigned(glActiveTexture) then Exit; glClientActiveTexture := wglGetProcAddress('glClientActiveTexture'); if not Assigned(glClientActiveTexture) then Exit; glMultiTexCoord1d := wglGetProcAddress('glMultiTexCoord1d'); if not Assigned(glMultiTexCoord1d) then Exit; glMultiTexCoord1dv := wglGetProcAddress('glMultiTexCoord1dv'); if not Assigned(glMultiTexCoord1dv) then Exit; glMultiTexCoord1f := wglGetProcAddress('glMultiTexCoord1f'); if not Assigned(glMultiTexCoord1f) then Exit; glMultiTexCoord1fv := wglGetProcAddress('glMultiTexCoord1fv'); if not Assigned(glMultiTexCoord1fv) then Exit; glMultiTexCoord1i := wglGetProcAddress('glMultiTexCoord1i'); if not Assigned(glMultiTexCoord1i) then Exit; glMultiTexCoord1iv := wglGetProcAddress('glMultiTexCoord1iv'); if not Assigned(glMultiTexCoord1iv) then Exit; glMultiTexCoord1s := wglGetProcAddress('glMultiTexCoord1s'); if not Assigned(glMultiTexCoord1s) then Exit; glMultiTexCoord1sv := wglGetProcAddress('glMultiTexCoord1sv'); if not Assigned(glMultiTexCoord1sv) then Exit; glMultiTexCoord2d := wglGetProcAddress('glMultiTexCoord2d'); if not Assigned(glMultiTexCoord2d) then Exit; glMultiTexCoord2dv := wglGetProcAddress('glMultiTexCoord2dv'); if not Assigned(glMultiTexCoord2dv) then Exit; glMultiTexCoord2f := wglGetProcAddress('glMultiTexCoord2f'); if not Assigned(glMultiTexCoord2f) then Exit; glMultiTexCoord2fv := wglGetProcAddress('glMultiTexCoord2fv'); if not Assigned(glMultiTexCoord2fv) then Exit; glMultiTexCoord2i := wglGetProcAddress('glMultiTexCoord2i'); if not Assigned(glMultiTexCoord2i) then Exit; glMultiTexCoord2iv := wglGetProcAddress('glMultiTexCoord2iv'); if not Assigned(glMultiTexCoord2iv) then Exit; glMultiTexCoord2s := wglGetProcAddress('glMultiTexCoord2s'); if not Assigned(glMultiTexCoord2s) then Exit; glMultiTexCoord2sv := wglGetProcAddress('glMultiTexCoord2sv'); if not Assigned(glMultiTexCoord2sv) then Exit; glMultiTexCoord3d := wglGetProcAddress('glMultiTexCoord3d'); if not Assigned(glMultiTexCoord3d) then Exit; glMultiTexCoord3dv := wglGetProcAddress('glMultiTexCoord3dv'); if not Assigned(glMultiTexCoord3dv) then Exit; glMultiTexCoord3f := wglGetProcAddress('glMultiTexCoord3f'); if not Assigned(glMultiTexCoord3f) then Exit; glMultiTexCoord3fv := wglGetProcAddress('glMultiTexCoord3fv'); if not Assigned(glMultiTexCoord3fv) then Exit; glMultiTexCoord3i := wglGetProcAddress('glMultiTexCoord3i'); if not Assigned(glMultiTexCoord3i) then Exit; glMultiTexCoord3iv := wglGetProcAddress('glMultiTexCoord3iv'); if not Assigned(glMultiTexCoord3iv) then Exit; glMultiTexCoord3s := wglGetProcAddress('glMultiTexCoord3s'); if not Assigned(glMultiTexCoord3s) then Exit; glMultiTexCoord3sv := wglGetProcAddress('glMultiTexCoord3sv'); if not Assigned(glMultiTexCoord3sv) then Exit; glMultiTexCoord4d := wglGetProcAddress('glMultiTexCoord4d'); if not Assigned(glMultiTexCoord4d) then Exit; glMultiTexCoord4dv := wglGetProcAddress('glMultiTexCoord4dv'); if not Assigned(glMultiTexCoord4dv) then Exit; glMultiTexCoord4f := wglGetProcAddress('glMultiTexCoord4f'); if not Assigned(glMultiTexCoord4f) then Exit; glMultiTexCoord4fv := wglGetProcAddress('glMultiTexCoord4fv'); if not Assigned(glMultiTexCoord4fv) then Exit; glMultiTexCoord4i := wglGetProcAddress('glMultiTexCoord4i'); if not Assigned(glMultiTexCoord4i) then Exit; glMultiTexCoord4iv := wglGetProcAddress('glMultiTexCoord4iv'); if not Assigned(glMultiTexCoord4iv) then Exit; glMultiTexCoord4s := wglGetProcAddress('glMultiTexCoord4s'); if not Assigned(glMultiTexCoord4s) then Exit; glMultiTexCoord4sv := wglGetProcAddress('glMultiTexCoord4sv'); if not Assigned(glMultiTexCoord4sv) then Exit; glLoadTransposeMatrixf := wglGetProcAddress('glLoadTransposeMatrixf'); if not Assigned(glLoadTransposeMatrixf) then Exit; glLoadTransposeMatrixd := wglGetProcAddress('glLoadTransposeMatrixd'); if not Assigned(glLoadTransposeMatrixd) then Exit; glMultTransposeMatrixf := wglGetProcAddress('glMultTransposeMatrixf'); if not Assigned(glMultTransposeMatrixf) then Exit; glMultTransposeMatrixd := wglGetProcAddress('glMultTransposeMatrixd'); if not Assigned(glMultTransposeMatrixd) then Exit; glSampleCoverage := wglGetProcAddress('glSampleCoverage'); if not Assigned(glSampleCoverage) then Exit; glCompressedTexImage3D := wglGetProcAddress('glCompressedTexImage3D'); if not Assigned(glCompressedTexImage3D) then Exit; glCompressedTexImage2D := wglGetProcAddress('glCompressedTexImage2D'); if not Assigned(glCompressedTexImage2D) then Exit; glCompressedTexImage1D := wglGetProcAddress('glCompressedTexImage1D'); if not Assigned(glCompressedTexImage1D) then Exit; glCompressedTexSubImage3D := wglGetProcAddress('glCompressedTexSubImage3D'); if not Assigned(glCompressedTexSubImage3D) then Exit; glCompressedTexSubImage2D := wglGetProcAddress('glCompressedTexSubImage2D'); if not Assigned(glCompressedTexSubImage2D) then Exit; glCompressedTexSubImage1D := wglGetProcAddress('glCompressedTexSubImage1D'); if not Assigned(glCompressedTexSubImage1D) then Exit; glGetCompressedTexImage := wglGetProcAddress('glGetCompressedTexImage'); if not Assigned(glGetCompressedTexImage) then Exit; Result := TRUE; end; function Load_GL_ARB_multitexture: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_multitexture', extstring) then begin glActiveTextureARB := wglGetProcAddress('glActiveTextureARB'); if not Assigned(glActiveTextureARB) then Exit; glClientActiveTextureARB := wglGetProcAddress('glClientActiveTextureARB'); if not Assigned(glClientActiveTextureARB) then Exit; glMultiTexCoord1dARB := wglGetProcAddress('glMultiTexCoord1dARB'); if not Assigned(glMultiTexCoord1dARB) then Exit; glMultiTexCoord1dvARB := wglGetProcAddress('glMultiTexCoord1dvARB'); if not Assigned(glMultiTexCoord1dvARB) then Exit; glMultiTexCoord1fARB := wglGetProcAddress('glMultiTexCoord1fARB'); if not Assigned(glMultiTexCoord1fARB) then Exit; glMultiTexCoord1fvARB := wglGetProcAddress('glMultiTexCoord1fvARB'); if not Assigned(glMultiTexCoord1fvARB) then Exit; glMultiTexCoord1iARB := wglGetProcAddress('glMultiTexCoord1iARB'); if not Assigned(glMultiTexCoord1iARB) then Exit; glMultiTexCoord1ivARB := wglGetProcAddress('glMultiTexCoord1ivARB'); if not Assigned(glMultiTexCoord1ivARB) then Exit; glMultiTexCoord1sARB := wglGetProcAddress('glMultiTexCoord1sARB'); if not Assigned(glMultiTexCoord1sARB) then Exit; glMultiTexCoord1svARB := wglGetProcAddress('glMultiTexCoord1svARB'); if not Assigned(glMultiTexCoord1svARB) then Exit; glMultiTexCoord2dARB := wglGetProcAddress('glMultiTexCoord2dARB'); if not Assigned(glMultiTexCoord2dARB) then Exit; glMultiTexCoord2dvARB := wglGetProcAddress('glMultiTexCoord2dvARB'); if not Assigned(glMultiTexCoord2dvARB) then Exit; glMultiTexCoord2fARB := wglGetProcAddress('glMultiTexCoord2fARB'); if not Assigned(glMultiTexCoord2fARB) then Exit; glMultiTexCoord2fvARB := wglGetProcAddress('glMultiTexCoord2fvARB'); if not Assigned(glMultiTexCoord2fvARB) then Exit; glMultiTexCoord2iARB := wglGetProcAddress('glMultiTexCoord2iARB'); if not Assigned(glMultiTexCoord2iARB) then Exit; glMultiTexCoord2ivARB := wglGetProcAddress('glMultiTexCoord2ivARB'); if not Assigned(glMultiTexCoord2ivARB) then Exit; glMultiTexCoord2sARB := wglGetProcAddress('glMultiTexCoord2sARB'); if not Assigned(glMultiTexCoord2sARB) then Exit; glMultiTexCoord2svARB := wglGetProcAddress('glMultiTexCoord2svARB'); if not Assigned(glMultiTexCoord2svARB) then Exit; glMultiTexCoord3dARB := wglGetProcAddress('glMultiTexCoord3dARB'); if not Assigned(glMultiTexCoord3dARB) then Exit; glMultiTexCoord3dvARB := wglGetProcAddress('glMultiTexCoord3dvARB'); if not Assigned(glMultiTexCoord3dvARB) then Exit; glMultiTexCoord3fARB := wglGetProcAddress('glMultiTexCoord3fARB'); if not Assigned(glMultiTexCoord3fARB) then Exit; glMultiTexCoord3fvARB := wglGetProcAddress('glMultiTexCoord3fvARB'); if not Assigned(glMultiTexCoord3fvARB) then Exit; glMultiTexCoord3iARB := wglGetProcAddress('glMultiTexCoord3iARB'); if not Assigned(glMultiTexCoord3iARB) then Exit; glMultiTexCoord3ivARB := wglGetProcAddress('glMultiTexCoord3ivARB'); if not Assigned(glMultiTexCoord3ivARB) then Exit; glMultiTexCoord3sARB := wglGetProcAddress('glMultiTexCoord3sARB'); if not Assigned(glMultiTexCoord3sARB) then Exit; glMultiTexCoord3svARB := wglGetProcAddress('glMultiTexCoord3svARB'); if not Assigned(glMultiTexCoord3svARB) then Exit; glMultiTexCoord4dARB := wglGetProcAddress('glMultiTexCoord4dARB'); if not Assigned(glMultiTexCoord4dARB) then Exit; glMultiTexCoord4dvARB := wglGetProcAddress('glMultiTexCoord4dvARB'); if not Assigned(glMultiTexCoord4dvARB) then Exit; glMultiTexCoord4fARB := wglGetProcAddress('glMultiTexCoord4fARB'); if not Assigned(glMultiTexCoord4fARB) then Exit; glMultiTexCoord4fvARB := wglGetProcAddress('glMultiTexCoord4fvARB'); if not Assigned(glMultiTexCoord4fvARB) then Exit; glMultiTexCoord4iARB := wglGetProcAddress('glMultiTexCoord4iARB'); if not Assigned(glMultiTexCoord4iARB) then Exit; glMultiTexCoord4ivARB := wglGetProcAddress('glMultiTexCoord4ivARB'); if not Assigned(glMultiTexCoord4ivARB) then Exit; glMultiTexCoord4sARB := wglGetProcAddress('glMultiTexCoord4sARB'); if not Assigned(glMultiTexCoord4sARB) then Exit; glMultiTexCoord4svARB := wglGetProcAddress('glMultiTexCoord4svARB'); if not Assigned(glMultiTexCoord4svARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_transpose_matrix: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_transpose_matrix', extstring) then begin glLoadTransposeMatrixfARB := wglGetProcAddress('glLoadTransposeMatrixfARB'); if not Assigned(glLoadTransposeMatrixfARB) then Exit; glLoadTransposeMatrixdARB := wglGetProcAddress('glLoadTransposeMatrixdARB'); if not Assigned(glLoadTransposeMatrixdARB) then Exit; glMultTransposeMatrixfARB := wglGetProcAddress('glMultTransposeMatrixfARB'); if not Assigned(glMultTransposeMatrixfARB) then Exit; glMultTransposeMatrixdARB := wglGetProcAddress('glMultTransposeMatrixdARB'); if not Assigned(glMultTransposeMatrixdARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_multisample: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_multisample', extstring) then begin glSampleCoverageARB := wglGetProcAddress('glSampleCoverageARB'); if not Assigned(glSampleCoverageARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_texture_env_add: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_env_add', extstring) then begin Result := TRUE; end; end; function Load_WGL_ARB_extensions_string: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_ARB_extensions_string', extstring) then begin wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; Result := TRUE; end; end; function Load_WGL_ARB_buffer_region: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_ARB_buffer_region', extstring) then begin wglCreateBufferRegionARB := wglGetProcAddress('wglCreateBufferRegionARB'); if not Assigned(wglCreateBufferRegionARB) then Exit; wglDeleteBufferRegionARB := wglGetProcAddress('wglDeleteBufferRegionARB'); if not Assigned(wglDeleteBufferRegionARB) then Exit; wglSaveBufferRegionARB := wglGetProcAddress('wglSaveBufferRegionARB'); if not Assigned(wglSaveBufferRegionARB) then Exit; wglRestoreBufferRegionARB := wglGetProcAddress('wglRestoreBufferRegionARB'); if not Assigned(wglRestoreBufferRegionARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_texture_cube_map: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_cube_map', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_depth_texture: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_depth_texture', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_point_parameters: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_point_parameters', extstring) then begin glPointParameterfARB := wglGetProcAddress('glPointParameterfARB'); if not Assigned(glPointParameterfARB) then Exit; glPointParameterfvARB := wglGetProcAddress('glPointParameterfvARB'); if not Assigned(glPointParameterfvARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_shadow: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_shadow', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_shadow_ambient: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_shadow_ambient', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_texture_border_clamp: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_border_clamp', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_texture_compression: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_compression', extstring) then begin glCompressedTexImage3DARB := wglGetProcAddress('glCompressedTexImage3DARB'); if not Assigned(glCompressedTexImage3DARB) then Exit; glCompressedTexImage2DARB := wglGetProcAddress('glCompressedTexImage2DARB'); if not Assigned(glCompressedTexImage2DARB) then Exit; glCompressedTexImage1DARB := wglGetProcAddress('glCompressedTexImage1DARB'); if not Assigned(glCompressedTexImage1DARB) then Exit; glCompressedTexSubImage3DARB := wglGetProcAddress('glCompressedTexSubImage3DARB'); if not Assigned(glCompressedTexSubImage3DARB) then Exit; glCompressedTexSubImage2DARB := wglGetProcAddress('glCompressedTexSubImage2DARB'); if not Assigned(glCompressedTexSubImage2DARB) then Exit; glCompressedTexSubImage1DARB := wglGetProcAddress('glCompressedTexSubImage1DARB'); if not Assigned(glCompressedTexSubImage1DARB) then Exit; glGetCompressedTexImageARB := wglGetProcAddress('glGetCompressedTexImageARB'); if not Assigned(glGetCompressedTexImageARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_texture_env_combine: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_env_combine', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_texture_env_crossbar: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_env_crossbar', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_texture_env_dot3: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_env_dot3', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_texture_mirrored_repeat: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_mirrored_repeat', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_vertex_blend: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_vertex_blend', extstring) then begin glWeightbvARB := wglGetProcAddress('glWeightbvARB'); if not Assigned(glWeightbvARB) then Exit; glWeightsvARB := wglGetProcAddress('glWeightsvARB'); if not Assigned(glWeightsvARB) then Exit; glWeightivARB := wglGetProcAddress('glWeightivARB'); if not Assigned(glWeightivARB) then Exit; glWeightfvARB := wglGetProcAddress('glWeightfvARB'); if not Assigned(glWeightfvARB) then Exit; glWeightdvARB := wglGetProcAddress('glWeightdvARB'); if not Assigned(glWeightdvARB) then Exit; glWeightvARB := wglGetProcAddress('glWeightvARB'); if not Assigned(glWeightvARB) then Exit; glWeightubvARB := wglGetProcAddress('glWeightubvARB'); if not Assigned(glWeightubvARB) then Exit; glWeightusvARB := wglGetProcAddress('glWeightusvARB'); if not Assigned(glWeightusvARB) then Exit; glWeightuivARB := wglGetProcAddress('glWeightuivARB'); if not Assigned(glWeightuivARB) then Exit; glWeightPointerARB := wglGetProcAddress('glWeightPointerARB'); if not Assigned(glWeightPointerARB) then Exit; glVertexBlendARB := wglGetProcAddress('glVertexBlendARB'); if not Assigned(glVertexBlendARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_vertex_program: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_vertex_program', extstring) then begin glVertexAttrib1sARB := wglGetProcAddress('glVertexAttrib1sARB'); if not Assigned(glVertexAttrib1sARB) then Exit; glVertexAttrib1fARB := wglGetProcAddress('glVertexAttrib1fARB'); if not Assigned(glVertexAttrib1fARB) then Exit; glVertexAttrib1dARB := wglGetProcAddress('glVertexAttrib1dARB'); if not Assigned(glVertexAttrib1dARB) then Exit; glVertexAttrib2sARB := wglGetProcAddress('glVertexAttrib2sARB'); if not Assigned(glVertexAttrib2sARB) then Exit; glVertexAttrib2fARB := wglGetProcAddress('glVertexAttrib2fARB'); if not Assigned(glVertexAttrib2fARB) then Exit; glVertexAttrib2dARB := wglGetProcAddress('glVertexAttrib2dARB'); if not Assigned(glVertexAttrib2dARB) then Exit; glVertexAttrib3sARB := wglGetProcAddress('glVertexAttrib3sARB'); if not Assigned(glVertexAttrib3sARB) then Exit; glVertexAttrib3fARB := wglGetProcAddress('glVertexAttrib3fARB'); if not Assigned(glVertexAttrib3fARB) then Exit; glVertexAttrib3dARB := wglGetProcAddress('glVertexAttrib3dARB'); if not Assigned(glVertexAttrib3dARB) then Exit; glVertexAttrib4sARB := wglGetProcAddress('glVertexAttrib4sARB'); if not Assigned(glVertexAttrib4sARB) then Exit; glVertexAttrib4fARB := wglGetProcAddress('glVertexAttrib4fARB'); if not Assigned(glVertexAttrib4fARB) then Exit; glVertexAttrib4dARB := wglGetProcAddress('glVertexAttrib4dARB'); if not Assigned(glVertexAttrib4dARB) then Exit; glVertexAttrib4NubARB := wglGetProcAddress('glVertexAttrib4NubARB'); if not Assigned(glVertexAttrib4NubARB) then Exit; glVertexAttrib1svARB := wglGetProcAddress('glVertexAttrib1svARB'); if not Assigned(glVertexAttrib1svARB) then Exit; glVertexAttrib1fvARB := wglGetProcAddress('glVertexAttrib1fvARB'); if not Assigned(glVertexAttrib1fvARB) then Exit; glVertexAttrib1dvARB := wglGetProcAddress('glVertexAttrib1dvARB'); if not Assigned(glVertexAttrib1dvARB) then Exit; glVertexAttrib2svARB := wglGetProcAddress('glVertexAttrib2svARB'); if not Assigned(glVertexAttrib2svARB) then Exit; glVertexAttrib2fvARB := wglGetProcAddress('glVertexAttrib2fvARB'); if not Assigned(glVertexAttrib2fvARB) then Exit; glVertexAttrib2dvARB := wglGetProcAddress('glVertexAttrib2dvARB'); if not Assigned(glVertexAttrib2dvARB) then Exit; glVertexAttrib3svARB := wglGetProcAddress('glVertexAttrib3svARB'); if not Assigned(glVertexAttrib3svARB) then Exit; glVertexAttrib3fvARB := wglGetProcAddress('glVertexAttrib3fvARB'); if not Assigned(glVertexAttrib3fvARB) then Exit; glVertexAttrib3dvARB := wglGetProcAddress('glVertexAttrib3dvARB'); if not Assigned(glVertexAttrib3dvARB) then Exit; glVertexAttrib4bvARB := wglGetProcAddress('glVertexAttrib4bvARB'); if not Assigned(glVertexAttrib4bvARB) then Exit; glVertexAttrib4svARB := wglGetProcAddress('glVertexAttrib4svARB'); if not Assigned(glVertexAttrib4svARB) then Exit; glVertexAttrib4ivARB := wglGetProcAddress('glVertexAttrib4ivARB'); if not Assigned(glVertexAttrib4ivARB) then Exit; glVertexAttrib4ubvARB := wglGetProcAddress('glVertexAttrib4ubvARB'); if not Assigned(glVertexAttrib4ubvARB) then Exit; glVertexAttrib4usvARB := wglGetProcAddress('glVertexAttrib4usvARB'); if not Assigned(glVertexAttrib4usvARB) then Exit; glVertexAttrib4uivARB := wglGetProcAddress('glVertexAttrib4uivARB'); if not Assigned(glVertexAttrib4uivARB) then Exit; glVertexAttrib4fvARB := wglGetProcAddress('glVertexAttrib4fvARB'); if not Assigned(glVertexAttrib4fvARB) then Exit; glVertexAttrib4dvARB := wglGetProcAddress('glVertexAttrib4dvARB'); if not Assigned(glVertexAttrib4dvARB) then Exit; glVertexAttrib4NbvARB := wglGetProcAddress('glVertexAttrib4NbvARB'); if not Assigned(glVertexAttrib4NbvARB) then Exit; glVertexAttrib4NsvARB := wglGetProcAddress('glVertexAttrib4NsvARB'); if not Assigned(glVertexAttrib4NsvARB) then Exit; glVertexAttrib4NivARB := wglGetProcAddress('glVertexAttrib4NivARB'); if not Assigned(glVertexAttrib4NivARB) then Exit; glVertexAttrib4NubvARB := wglGetProcAddress('glVertexAttrib4NubvARB'); if not Assigned(glVertexAttrib4NubvARB) then Exit; glVertexAttrib4NusvARB := wglGetProcAddress('glVertexAttrib4NusvARB'); if not Assigned(glVertexAttrib4NusvARB) then Exit; glVertexAttrib4NuivARB := wglGetProcAddress('glVertexAttrib4NuivARB'); if not Assigned(glVertexAttrib4NuivARB) then Exit; glVertexAttribPointerARB := wglGetProcAddress('glVertexAttribPointerARB'); if not Assigned(glVertexAttribPointerARB) then Exit; glEnableVertexAttribArrayARB := wglGetProcAddress('glEnableVertexAttribArrayARB'); if not Assigned(glEnableVertexAttribArrayARB) then Exit; glDisableVertexAttribArrayARB := wglGetProcAddress('glDisableVertexAttribArrayARB'); if not Assigned(glDisableVertexAttribArrayARB) then Exit; glProgramStringARB := wglGetProcAddress('glProgramStringARB'); if not Assigned(glProgramStringARB) then Exit; glBindProgramARB := wglGetProcAddress('glBindProgramARB'); if not Assigned(glBindProgramARB) then Exit; glDeleteProgramsARB := wglGetProcAddress('glDeleteProgramsARB'); if not Assigned(glDeleteProgramsARB) then Exit; glGenProgramsARB := wglGetProcAddress('glGenProgramsARB'); if not Assigned(glGenProgramsARB) then Exit; glProgramEnvParameter4dARB := wglGetProcAddress('glProgramEnvParameter4dARB'); if not Assigned(glProgramEnvParameter4dARB) then Exit; glProgramEnvParameter4dvARB := wglGetProcAddress('glProgramEnvParameter4dvARB'); if not Assigned(glProgramEnvParameter4dvARB) then Exit; glProgramEnvParameter4fARB := wglGetProcAddress('glProgramEnvParameter4fARB'); if not Assigned(glProgramEnvParameter4fARB) then Exit; glProgramEnvParameter4fvARB := wglGetProcAddress('glProgramEnvParameter4fvARB'); if not Assigned(glProgramEnvParameter4fvARB) then Exit; glProgramLocalParameter4dARB := wglGetProcAddress('glProgramLocalParameter4dARB'); if not Assigned(glProgramLocalParameter4dARB) then Exit; glProgramLocalParameter4dvARB := wglGetProcAddress('glProgramLocalParameter4dvARB'); if not Assigned(glProgramLocalParameter4dvARB) then Exit; glProgramLocalParameter4fARB := wglGetProcAddress('glProgramLocalParameter4fARB'); if not Assigned(glProgramLocalParameter4fARB) then Exit; glProgramLocalParameter4fvARB := wglGetProcAddress('glProgramLocalParameter4fvARB'); if not Assigned(glProgramLocalParameter4fvARB) then Exit; glGetProgramEnvParameterdvARB := wglGetProcAddress('glGetProgramEnvParameterdvARB'); if not Assigned(glGetProgramEnvParameterdvARB) then Exit; glGetProgramEnvParameterfvARB := wglGetProcAddress('glGetProgramEnvParameterfvARB'); if not Assigned(glGetProgramEnvParameterfvARB) then Exit; glGetProgramLocalParameterdvARB := wglGetProcAddress('glGetProgramLocalParameterdvARB'); if not Assigned(glGetProgramLocalParameterdvARB) then Exit; glGetProgramLocalParameterfvARB := wglGetProcAddress('glGetProgramLocalParameterfvARB'); if not Assigned(glGetProgramLocalParameterfvARB) then Exit; glGetProgramivARB := wglGetProcAddress('glGetProgramivARB'); if not Assigned(glGetProgramivARB) then Exit; glGetProgramStringARB := wglGetProcAddress('glGetProgramStringARB'); if not Assigned(glGetProgramStringARB) then Exit; glGetVertexAttribdvARB := wglGetProcAddress('glGetVertexAttribdvARB'); if not Assigned(glGetVertexAttribdvARB) then Exit; glGetVertexAttribfvARB := wglGetProcAddress('glGetVertexAttribfvARB'); if not Assigned(glGetVertexAttribfvARB) then Exit; glGetVertexAttribivARB := wglGetProcAddress('glGetVertexAttribivARB'); if not Assigned(glGetVertexAttribivARB) then Exit; glGetVertexAttribPointervARB := wglGetProcAddress('glGetVertexAttribPointervARB'); if not Assigned(glGetVertexAttribPointervARB) then Exit; glIsProgramARB := wglGetProcAddress('glIsProgramARB'); if not Assigned(glIsProgramARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_window_pos: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_window_pos', extstring) then begin glWindowPos2dARB := wglGetProcAddress('glWindowPos2dARB'); if not Assigned(glWindowPos2dARB) then Exit; glWindowPos2fARB := wglGetProcAddress('glWindowPos2fARB'); if not Assigned(glWindowPos2fARB) then Exit; glWindowPos2iARB := wglGetProcAddress('glWindowPos2iARB'); if not Assigned(glWindowPos2iARB) then Exit; glWindowPos2sARB := wglGetProcAddress('glWindowPos2sARB'); if not Assigned(glWindowPos2sARB) then Exit; glWindowPos2dvARB := wglGetProcAddress('glWindowPos2dvARB'); if not Assigned(glWindowPos2dvARB) then Exit; glWindowPos2fvARB := wglGetProcAddress('glWindowPos2fvARB'); if not Assigned(glWindowPos2fvARB) then Exit; glWindowPos2ivARB := wglGetProcAddress('glWindowPos2ivARB'); if not Assigned(glWindowPos2ivARB) then Exit; glWindowPos2svARB := wglGetProcAddress('glWindowPos2svARB'); if not Assigned(glWindowPos2svARB) then Exit; glWindowPos3dARB := wglGetProcAddress('glWindowPos3dARB'); if not Assigned(glWindowPos3dARB) then Exit; glWindowPos3fARB := wglGetProcAddress('glWindowPos3fARB'); if not Assigned(glWindowPos3fARB) then Exit; glWindowPos3iARB := wglGetProcAddress('glWindowPos3iARB'); if not Assigned(glWindowPos3iARB) then Exit; glWindowPos3sARB := wglGetProcAddress('glWindowPos3sARB'); if not Assigned(glWindowPos3sARB) then Exit; glWindowPos3dvARB := wglGetProcAddress('glWindowPos3dvARB'); if not Assigned(glWindowPos3dvARB) then Exit; glWindowPos3fvARB := wglGetProcAddress('glWindowPos3fvARB'); if not Assigned(glWindowPos3fvARB) then Exit; glWindowPos3ivARB := wglGetProcAddress('glWindowPos3ivARB'); if not Assigned(glWindowPos3ivARB) then Exit; glWindowPos3svARB := wglGetProcAddress('glWindowPos3svARB'); if not Assigned(glWindowPos3svARB) then Exit; Result := TRUE; end; end; function Load_GL_EXT_422_pixels: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_422_pixels', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_abgr: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_abgr', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_bgra: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_bgra', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_blend_color: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_blend_color', extstring) then begin glBlendColorEXT := wglGetProcAddress('glBlendColorEXT'); if not Assigned(glBlendColorEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_blend_func_separate: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_blend_func_separate', extstring) then begin glBlendFuncSeparateEXT := wglGetProcAddress('glBlendFuncSeparateEXT'); if not Assigned(glBlendFuncSeparateEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_blend_logic_op: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_blend_logic_op', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_blend_minmax: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_blend_minmax', extstring) then begin glBlendEquationEXT := wglGetProcAddress('glBlendEquationEXT'); if not Assigned(glBlendEquationEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_blend_subtract: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_blend_subtract', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_clip_volume_hint: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_clip_volume_hint', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_color_subtable: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_color_subtable', extstring) then begin glColorSubTableEXT := wglGetProcAddress('glColorSubTableEXT'); if not Assigned(glColorSubTableEXT) then Exit; glCopyColorSubTableEXT := wglGetProcAddress('glCopyColorSubTableEXT'); if not Assigned(glCopyColorSubTableEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_compiled_vertex_array: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_compiled_vertex_array', extstring) then begin glLockArraysEXT := wglGetProcAddress('glLockArraysEXT'); if not Assigned(glLockArraysEXT) then Exit; glUnlockArraysEXT := wglGetProcAddress('glUnlockArraysEXT'); if not Assigned(glUnlockArraysEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_convolution: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_convolution', extstring) then begin glConvolutionFilter1DEXT := wglGetProcAddress('glConvolutionFilter1DEXT'); if not Assigned(glConvolutionFilter1DEXT) then Exit; glConvolutionFilter2DEXT := wglGetProcAddress('glConvolutionFilter2DEXT'); if not Assigned(glConvolutionFilter2DEXT) then Exit; glCopyConvolutionFilter1DEXT := wglGetProcAddress('glCopyConvolutionFilter1DEXT'); if not Assigned(glCopyConvolutionFilter1DEXT) then Exit; glCopyConvolutionFilter2DEXT := wglGetProcAddress('glCopyConvolutionFilter2DEXT'); if not Assigned(glCopyConvolutionFilter2DEXT) then Exit; glGetConvolutionFilterEXT := wglGetProcAddress('glGetConvolutionFilterEXT'); if not Assigned(glGetConvolutionFilterEXT) then Exit; glSeparableFilter2DEXT := wglGetProcAddress('glSeparableFilter2DEXT'); if not Assigned(glSeparableFilter2DEXT) then Exit; glGetSeparableFilterEXT := wglGetProcAddress('glGetSeparableFilterEXT'); if not Assigned(glGetSeparableFilterEXT) then Exit; glConvolutionParameteriEXT := wglGetProcAddress('glConvolutionParameteriEXT'); if not Assigned(glConvolutionParameteriEXT) then Exit; glConvolutionParameterivEXT := wglGetProcAddress('glConvolutionParameterivEXT'); if not Assigned(glConvolutionParameterivEXT) then Exit; glConvolutionParameterfEXT := wglGetProcAddress('glConvolutionParameterfEXT'); if not Assigned(glConvolutionParameterfEXT) then Exit; glConvolutionParameterfvEXT := wglGetProcAddress('glConvolutionParameterfvEXT'); if not Assigned(glConvolutionParameterfvEXT) then Exit; glGetConvolutionParameterivEXT := wglGetProcAddress('glGetConvolutionParameterivEXT'); if not Assigned(glGetConvolutionParameterivEXT) then Exit; glGetConvolutionParameterfvEXT := wglGetProcAddress('glGetConvolutionParameterfvEXT'); if not Assigned(glGetConvolutionParameterfvEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_histogram: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_histogram', extstring) then begin glHistogramEXT := wglGetProcAddress('glHistogramEXT'); if not Assigned(glHistogramEXT) then Exit; glResetHistogramEXT := wglGetProcAddress('glResetHistogramEXT'); if not Assigned(glResetHistogramEXT) then Exit; glGetHistogramEXT := wglGetProcAddress('glGetHistogramEXT'); if not Assigned(glGetHistogramEXT) then Exit; glGetHistogramParameterivEXT := wglGetProcAddress('glGetHistogramParameterivEXT'); if not Assigned(glGetHistogramParameterivEXT) then Exit; glGetHistogramParameterfvEXT := wglGetProcAddress('glGetHistogramParameterfvEXT'); if not Assigned(glGetHistogramParameterfvEXT) then Exit; glMinmaxEXT := wglGetProcAddress('glMinmaxEXT'); if not Assigned(glMinmaxEXT) then Exit; glResetMinmaxEXT := wglGetProcAddress('glResetMinmaxEXT'); if not Assigned(glResetMinmaxEXT) then Exit; glGetMinmaxEXT := wglGetProcAddress('glGetMinmaxEXT'); if not Assigned(glGetMinmaxEXT) then Exit; glGetMinmaxParameterivEXT := wglGetProcAddress('glGetMinmaxParameterivEXT'); if not Assigned(glGetMinmaxParameterivEXT) then Exit; glGetMinmaxParameterfvEXT := wglGetProcAddress('glGetMinmaxParameterfvEXT'); if not Assigned(glGetMinmaxParameterfvEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_multi_draw_arrays: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_multi_draw_arrays', extstring) then begin glMultiDrawArraysEXT := wglGetProcAddress('glMultiDrawArraysEXT'); if not Assigned(glMultiDrawArraysEXT) then Exit; glMultiDrawElementsEXT := wglGetProcAddress('glMultiDrawElementsEXT'); if not Assigned(glMultiDrawElementsEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_packed_pixels: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_packed_pixels', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_paletted_texture: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_paletted_texture', extstring) then begin glColorTableEXT := wglGetProcAddress('glColorTableEXT'); if not Assigned(glColorTableEXT) then Exit; glColorSubTableEXT := wglGetProcAddress('glColorSubTableEXT'); if not Assigned(glColorSubTableEXT) then Exit; glGetColorTableEXT := wglGetProcAddress('glGetColorTableEXT'); if not Assigned(glGetColorTableEXT) then Exit; glGetColorTableParameterivEXT := wglGetProcAddress('glGetColorTableParameterivEXT'); if not Assigned(glGetColorTableParameterivEXT) then Exit; glGetColorTableParameterfvEXT := wglGetProcAddress('glGetColorTableParameterfvEXT'); if not Assigned(glGetColorTableParameterfvEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_point_parameters: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_point_parameters', extstring) then begin glPointParameterfEXT := wglGetProcAddress('glPointParameterfEXT'); if not Assigned(glPointParameterfEXT) then Exit; glPointParameterfvEXT := wglGetProcAddress('glPointParameterfvEXT'); if not Assigned(glPointParameterfvEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_polygon_offset: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_polygon_offset', extstring) then begin glPolygonOffsetEXT := wglGetProcAddress('glPolygonOffsetEXT'); if not Assigned(glPolygonOffsetEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_separate_specular_color: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_separate_specular_color', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_shadow_funcs: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_shadow_funcs', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_shared_texture_palette: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_shared_texture_palette', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_stencil_two_side: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_stencil_two_side', extstring) then begin glActiveStencilFaceEXT := wglGetProcAddress('glActiveStencilFaceEXT'); if not Assigned(glActiveStencilFaceEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_stencil_wrap: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_stencil_wrap', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_subtexture: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_subtexture', extstring) then begin glTexSubImage1DEXT := wglGetProcAddress('glTexSubImage1DEXT'); if not Assigned(glTexSubImage1DEXT) then Exit; glTexSubImage2DEXT := wglGetProcAddress('glTexSubImage2DEXT'); if not Assigned(glTexSubImage2DEXT) then Exit; glTexSubImage3DEXT := wglGetProcAddress('glTexSubImage3DEXT'); if not Assigned(glTexSubImage3DEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_texture3D: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture3D', extstring) then begin glTexImage3DEXT := wglGetProcAddress('glTexImage3DEXT'); if not Assigned(glTexImage3DEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_texture_compression_s3tc: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture_compression_s3tc', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_texture_env_add: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture_env_add', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_texture_env_combine: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture_env_combine', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_texture_env_dot3: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture_env_dot3', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_texture_filter_anisotropic: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture_filter_anisotropic', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_texture_lod_bias: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture_lod_bias', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_texture_object: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture_object', extstring) then begin glGenTexturesEXT := wglGetProcAddress('glGenTexturesEXT'); if not Assigned(glGenTexturesEXT) then Exit; glDeleteTexturesEXT := wglGetProcAddress('glDeleteTexturesEXT'); if not Assigned(glDeleteTexturesEXT) then Exit; glBindTextureEXT := wglGetProcAddress('glBindTextureEXT'); if not Assigned(glBindTextureEXT) then Exit; glPrioritizeTexturesEXT := wglGetProcAddress('glPrioritizeTexturesEXT'); if not Assigned(glPrioritizeTexturesEXT) then Exit; glAreTexturesResidentEXT := wglGetProcAddress('glAreTexturesResidentEXT'); if not Assigned(glAreTexturesResidentEXT) then Exit; glIsTextureEXT := wglGetProcAddress('glIsTextureEXT'); if not Assigned(glIsTextureEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_vertex_array: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_vertex_array', extstring) then begin glArrayElementEXT := wglGetProcAddress('glArrayElementEXT'); if not Assigned(glArrayElementEXT) then Exit; glDrawArraysEXT := wglGetProcAddress('glDrawArraysEXT'); if not Assigned(glDrawArraysEXT) then Exit; glVertexPointerEXT := wglGetProcAddress('glVertexPointerEXT'); if not Assigned(glVertexPointerEXT) then Exit; glNormalPointerEXT := wglGetProcAddress('glNormalPointerEXT'); if not Assigned(glNormalPointerEXT) then Exit; glColorPointerEXT := wglGetProcAddress('glColorPointerEXT'); if not Assigned(glColorPointerEXT) then Exit; glIndexPointerEXT := wglGetProcAddress('glIndexPointerEXT'); if not Assigned(glIndexPointerEXT) then Exit; glTexCoordPointerEXT := wglGetProcAddress('glTexCoordPointerEXT'); if not Assigned(glTexCoordPointerEXT) then Exit; glEdgeFlagPointerEXT := wglGetProcAddress('glEdgeFlagPointerEXT'); if not Assigned(glEdgeFlagPointerEXT) then Exit; glGetPointervEXT := wglGetProcAddress('glGetPointervEXT'); if not Assigned(glGetPointervEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_vertex_shader: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_vertex_shader', extstring) then begin glBeginVertexShaderEXT := wglGetProcAddress('glBeginVertexShaderEXT'); if not Assigned(glBeginVertexShaderEXT) then Exit; glEndVertexShaderEXT := wglGetProcAddress('glEndVertexShaderEXT'); if not Assigned(glEndVertexShaderEXT) then Exit; glBindVertexShaderEXT := wglGetProcAddress('glBindVertexShaderEXT'); if not Assigned(glBindVertexShaderEXT) then Exit; glGenVertexShadersEXT := wglGetProcAddress('glGenVertexShadersEXT'); if not Assigned(glGenVertexShadersEXT) then Exit; glDeleteVertexShaderEXT := wglGetProcAddress('glDeleteVertexShaderEXT'); if not Assigned(glDeleteVertexShaderEXT) then Exit; glShaderOp1EXT := wglGetProcAddress('glShaderOp1EXT'); if not Assigned(glShaderOp1EXT) then Exit; glShaderOp2EXT := wglGetProcAddress('glShaderOp2EXT'); if not Assigned(glShaderOp2EXT) then Exit; glShaderOp3EXT := wglGetProcAddress('glShaderOp3EXT'); if not Assigned(glShaderOp3EXT) then Exit; glSwizzleEXT := wglGetProcAddress('glSwizzleEXT'); if not Assigned(glSwizzleEXT) then Exit; glWriteMaskEXT := wglGetProcAddress('glWriteMaskEXT'); if not Assigned(glWriteMaskEXT) then Exit; glInsertComponentEXT := wglGetProcAddress('glInsertComponentEXT'); if not Assigned(glInsertComponentEXT) then Exit; glExtractComponentEXT := wglGetProcAddress('glExtractComponentEXT'); if not Assigned(glExtractComponentEXT) then Exit; glGenSymbolsEXT := wglGetProcAddress('glGenSymbolsEXT'); if not Assigned(glGenSymbolsEXT) then Exit; glSetInvariantEXT := wglGetProcAddress('glSetInvariantEXT'); if not Assigned(glSetInvariantEXT) then Exit; glSetLocalConstantEXT := wglGetProcAddress('glSetLocalConstantEXT'); if not Assigned(glSetLocalConstantEXT) then Exit; glVariantbvEXT := wglGetProcAddress('glVariantbvEXT'); if not Assigned(glVariantbvEXT) then Exit; glVariantsvEXT := wglGetProcAddress('glVariantsvEXT'); if not Assigned(glVariantsvEXT) then Exit; glVariantivEXT := wglGetProcAddress('glVariantivEXT'); if not Assigned(glVariantivEXT) then Exit; glVariantfvEXT := wglGetProcAddress('glVariantfvEXT'); if not Assigned(glVariantfvEXT) then Exit; glVariantdvEXT := wglGetProcAddress('glVariantdvEXT'); if not Assigned(glVariantdvEXT) then Exit; glVariantubvEXT := wglGetProcAddress('glVariantubvEXT'); if not Assigned(glVariantubvEXT) then Exit; glVariantusvEXT := wglGetProcAddress('glVariantusvEXT'); if not Assigned(glVariantusvEXT) then Exit; glVariantuivEXT := wglGetProcAddress('glVariantuivEXT'); if not Assigned(glVariantuivEXT) then Exit; glVariantPointerEXT := wglGetProcAddress('glVariantPointerEXT'); if not Assigned(glVariantPointerEXT) then Exit; glEnableVariantClientStateEXT := wglGetProcAddress('glEnableVariantClientStateEXT'); if not Assigned(glEnableVariantClientStateEXT) then Exit; glDisableVariantClientStateEXT := wglGetProcAddress('glDisableVariantClientStateEXT'); if not Assigned(glDisableVariantClientStateEXT) then Exit; glBindLightParameterEXT := wglGetProcAddress('glBindLightParameterEXT'); if not Assigned(glBindLightParameterEXT) then Exit; glBindMaterialParameterEXT := wglGetProcAddress('glBindMaterialParameterEXT'); if not Assigned(glBindMaterialParameterEXT) then Exit; glBindTexGenParameterEXT := wglGetProcAddress('glBindTexGenParameterEXT'); if not Assigned(glBindTexGenParameterEXT) then Exit; glBindTextureUnitParameterEXT := wglGetProcAddress('glBindTextureUnitParameterEXT'); if not Assigned(glBindTextureUnitParameterEXT) then Exit; glBindParameterEXT := wglGetProcAddress('glBindParameterEXT'); if not Assigned(glBindParameterEXT) then Exit; glIsVariantEnabledEXT := wglGetProcAddress('glIsVariantEnabledEXT'); if not Assigned(glIsVariantEnabledEXT) then Exit; glGetVariantBooleanvEXT := wglGetProcAddress('glGetVariantBooleanvEXT'); if not Assigned(glGetVariantBooleanvEXT) then Exit; glGetVariantIntegervEXT := wglGetProcAddress('glGetVariantIntegervEXT'); if not Assigned(glGetVariantIntegervEXT) then Exit; glGetVariantFloatvEXT := wglGetProcAddress('glGetVariantFloatvEXT'); if not Assigned(glGetVariantFloatvEXT) then Exit; glGetVariantPointervEXT := wglGetProcAddress('glGetVariantPointervEXT'); if not Assigned(glGetVariantPointervEXT) then Exit; glGetInvariantBooleanvEXT := wglGetProcAddress('glGetInvariantBooleanvEXT'); if not Assigned(glGetInvariantBooleanvEXT) then Exit; glGetInvariantIntegervEXT := wglGetProcAddress('glGetInvariantIntegervEXT'); if not Assigned(glGetInvariantIntegervEXT) then Exit; glGetInvariantFloatvEXT := wglGetProcAddress('glGetInvariantFloatvEXT'); if not Assigned(glGetInvariantFloatvEXT) then Exit; glGetLocalConstantBooleanvEXT := wglGetProcAddress('glGetLocalConstantBooleanvEXT'); if not Assigned(glGetLocalConstantBooleanvEXT) then Exit; glGetLocalConstantIntegervEXT := wglGetProcAddress('glGetLocalConstantIntegervEXT'); if not Assigned(glGetLocalConstantIntegervEXT) then Exit; glGetLocalConstantFloatvEXT := wglGetProcAddress('glGetLocalConstantFloatvEXT'); if not Assigned(glGetLocalConstantFloatvEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_vertex_weighting: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_vertex_weighting', extstring) then begin glVertexWeightfEXT := wglGetProcAddress('glVertexWeightfEXT'); if not Assigned(glVertexWeightfEXT) then Exit; glVertexWeightfvEXT := wglGetProcAddress('glVertexWeightfvEXT'); if not Assigned(glVertexWeightfvEXT) then Exit; glVertexWeightPointerEXT := wglGetProcAddress('glVertexWeightPointerEXT'); if not Assigned(glVertexWeightPointerEXT) then Exit; Result := TRUE; end; end; function Load_GL_HP_occlusion_test: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_HP_occlusion_test', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_blend_square: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_blend_square', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_copy_depth_to_color: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_copy_depth_to_color', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_depth_clamp: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_depth_clamp', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_evaluators: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_evaluators', extstring) then begin glMapControlPointsNV := wglGetProcAddress('glMapControlPointsNV'); if not Assigned(glMapControlPointsNV) then Exit; glMapParameterivNV := wglGetProcAddress('glMapParameterivNV'); if not Assigned(glMapParameterivNV) then Exit; glMapParameterfvNV := wglGetProcAddress('glMapParameterfvNV'); if not Assigned(glMapParameterfvNV) then Exit; glGetMapControlPointsNV := wglGetProcAddress('glGetMapControlPointsNV'); if not Assigned(glGetMapControlPointsNV) then Exit; glGetMapParameterivNV := wglGetProcAddress('glGetMapParameterivNV'); if not Assigned(glGetMapParameterivNV) then Exit; glGetMapParameterfvNV := wglGetProcAddress('glGetMapParameterfvNV'); if not Assigned(glGetMapParameterfvNV) then Exit; glGetMapAttribParameterivNV := wglGetProcAddress('glGetMapAttribParameterivNV'); if not Assigned(glGetMapAttribParameterivNV) then Exit; glGetMapAttribParameterfvNV := wglGetProcAddress('glGetMapAttribParameterfvNV'); if not Assigned(glGetMapAttribParameterfvNV) then Exit; glEvalMapsNV := wglGetProcAddress('glEvalMapsNV'); if not Assigned(glEvalMapsNV) then Exit; Result := TRUE; end; end; function Load_GL_NV_fence: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_fence', extstring) then begin glGenFencesNV := wglGetProcAddress('glGenFencesNV'); if not Assigned(glGenFencesNV) then Exit; glDeleteFencesNV := wglGetProcAddress('glDeleteFencesNV'); if not Assigned(glDeleteFencesNV) then Exit; glSetFenceNV := wglGetProcAddress('glSetFenceNV'); if not Assigned(glSetFenceNV) then Exit; glTestFenceNV := wglGetProcAddress('glTestFenceNV'); if not Assigned(glTestFenceNV) then Exit; glFinishFenceNV := wglGetProcAddress('glFinishFenceNV'); if not Assigned(glFinishFenceNV) then Exit; glIsFenceNV := wglGetProcAddress('glIsFenceNV'); if not Assigned(glIsFenceNV) then Exit; glGetFenceivNV := wglGetProcAddress('glGetFenceivNV'); if not Assigned(glGetFenceivNV) then Exit; Result := TRUE; end; end; function Load_GL_NV_fog_distance: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_fog_distance', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_light_max_exponent: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_light_max_exponent', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_multisample_filter_hint: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_multisample_filter_hint', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_occlusion_query: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_occlusion_query', extstring) then begin glGenOcclusionQueriesNV := wglGetProcAddress('glGenOcclusionQueriesNV'); if not Assigned(glGenOcclusionQueriesNV) then Exit; glDeleteOcclusionQueriesNV := wglGetProcAddress('glDeleteOcclusionQueriesNV'); if not Assigned(glDeleteOcclusionQueriesNV) then Exit; glIsOcclusionQueryNV := wglGetProcAddress('glIsOcclusionQueryNV'); if not Assigned(glIsOcclusionQueryNV) then Exit; glBeginOcclusionQueryNV := wglGetProcAddress('glBeginOcclusionQueryNV'); if not Assigned(glBeginOcclusionQueryNV) then Exit; glEndOcclusionQueryNV := wglGetProcAddress('glEndOcclusionQueryNV'); if not Assigned(glEndOcclusionQueryNV) then Exit; glGetOcclusionQueryivNV := wglGetProcAddress('glGetOcclusionQueryivNV'); if not Assigned(glGetOcclusionQueryivNV) then Exit; glGetOcclusionQueryuivNV := wglGetProcAddress('glGetOcclusionQueryuivNV'); if not Assigned(glGetOcclusionQueryuivNV) then Exit; Result := TRUE; end; end; function Load_GL_NV_packed_depth_stencil: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_packed_depth_stencil', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_point_sprite: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_point_sprite', extstring) then begin glPointParameteriNV := wglGetProcAddress('glPointParameteriNV'); if not Assigned(glPointParameteriNV) then Exit; glPointParameterivNV := wglGetProcAddress('glPointParameterivNV'); if not Assigned(glPointParameterivNV) then Exit; Result := TRUE; end; end; function Load_GL_NV_register_combiners: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_register_combiners', extstring) then begin glCombinerParameterfvNV := wglGetProcAddress('glCombinerParameterfvNV'); if not Assigned(glCombinerParameterfvNV) then Exit; glCombinerParameterivNV := wglGetProcAddress('glCombinerParameterivNV'); if not Assigned(glCombinerParameterivNV) then Exit; glCombinerParameterfNV := wglGetProcAddress('glCombinerParameterfNV'); if not Assigned(glCombinerParameterfNV) then Exit; glCombinerParameteriNV := wglGetProcAddress('glCombinerParameteriNV'); if not Assigned(glCombinerParameteriNV) then Exit; glCombinerInputNV := wglGetProcAddress('glCombinerInputNV'); if not Assigned(glCombinerInputNV) then Exit; glCombinerOutputNV := wglGetProcAddress('glCombinerOutputNV'); if not Assigned(glCombinerOutputNV) then Exit; glFinalCombinerInputNV := wglGetProcAddress('glFinalCombinerInputNV'); if not Assigned(glFinalCombinerInputNV) then Exit; glGetCombinerInputParameterfvNV := wglGetProcAddress('glGetCombinerInputParameterfvNV'); if not Assigned(glGetCombinerInputParameterfvNV) then Exit; glGetCombinerInputParameterivNV := wglGetProcAddress('glGetCombinerInputParameterivNV'); if not Assigned(glGetCombinerInputParameterivNV) then Exit; glGetCombinerOutputParameterfvNV := wglGetProcAddress('glGetCombinerOutputParameterfvNV'); if not Assigned(glGetCombinerOutputParameterfvNV) then Exit; glGetCombinerOutputParameterivNV := wglGetProcAddress('glGetCombinerOutputParameterivNV'); if not Assigned(glGetCombinerOutputParameterivNV) then Exit; glGetFinalCombinerInputParameterfvNV := wglGetProcAddress('glGetFinalCombinerInputParameterfvNV'); if not Assigned(glGetFinalCombinerInputParameterfvNV) then Exit; glGetFinalCombinerInputParameterivNV := wglGetProcAddress('glGetFinalCombinerInputParameterivNV'); if not Assigned(glGetFinalCombinerInputParameterivNV) then Exit; Result := TRUE; end; end; function Load_GL_NV_register_combiners2: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_register_combiners2', extstring) then begin glCombinerStageParameterfvNV := wglGetProcAddress('glCombinerStageParameterfvNV'); if not Assigned(glCombinerStageParameterfvNV) then Exit; glGetCombinerStageParameterfvNV := wglGetProcAddress('glGetCombinerStageParameterfvNV'); if not Assigned(glGetCombinerStageParameterfvNV) then Exit; Result := TRUE; end; end; function Load_GL_NV_texgen_emboss: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_texgen_emboss', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_texgen_reflection: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_texgen_reflection', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_texture_compression_vtc: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_texture_compression_vtc', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_texture_env_combine4: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_texture_env_combine4', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_texture_rectangle: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_texture_rectangle', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_texture_shader: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_texture_shader', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_texture_shader2: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_texture_shader2', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_texture_shader3: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_texture_shader3', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_vertex_array_range: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_vertex_array_range', extstring) then begin glVertexArrayRangeNV := wglGetProcAddress('glVertexArrayRangeNV'); if not Assigned(glVertexArrayRangeNV) then Exit; glFlushVertexArrayRangeNV := wglGetProcAddress('glFlushVertexArrayRangeNV'); if not Assigned(glFlushVertexArrayRangeNV) then Exit; wglAllocateMemoryNV := wglGetProcAddress('wglAllocateMemoryNV'); if not Assigned(wglAllocateMemoryNV) then Exit; wglFreeMemoryNV := wglGetProcAddress('wglFreeMemoryNV'); if not Assigned(wglFreeMemoryNV) then Exit; Result := TRUE; end; end; function Load_GL_NV_vertex_array_range2: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_vertex_array_range2', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_vertex_program: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_vertex_program', extstring) then begin glBindProgramNV := wglGetProcAddress('glBindProgramNV'); if not Assigned(glBindProgramNV) then Exit; glDeleteProgramsNV := wglGetProcAddress('glDeleteProgramsNV'); if not Assigned(glDeleteProgramsNV) then Exit; glExecuteProgramNV := wglGetProcAddress('glExecuteProgramNV'); if not Assigned(glExecuteProgramNV) then Exit; glGenProgramsNV := wglGetProcAddress('glGenProgramsNV'); if not Assigned(glGenProgramsNV) then Exit; glAreProgramsResidentNV := wglGetProcAddress('glAreProgramsResidentNV'); if not Assigned(glAreProgramsResidentNV) then Exit; glRequestResidentProgramsNV := wglGetProcAddress('glRequestResidentProgramsNV'); if not Assigned(glRequestResidentProgramsNV) then Exit; glGetProgramParameterfvNV := wglGetProcAddress('glGetProgramParameterfvNV'); if not Assigned(glGetProgramParameterfvNV) then Exit; glGetProgramParameterdvNV := wglGetProcAddress('glGetProgramParameterdvNV'); if not Assigned(glGetProgramParameterdvNV) then Exit; glGetProgramivNV := wglGetProcAddress('glGetProgramivNV'); if not Assigned(glGetProgramivNV) then Exit; glGetProgramStringNV := wglGetProcAddress('glGetProgramStringNV'); if not Assigned(glGetProgramStringNV) then Exit; glGetTrackMatrixivNV := wglGetProcAddress('glGetTrackMatrixivNV'); if not Assigned(glGetTrackMatrixivNV) then Exit; glGetVertexAttribdvNV := wglGetProcAddress('glGetVertexAttribdvNV'); if not Assigned(glGetVertexAttribdvNV) then Exit; glGetVertexAttribfvNV := wglGetProcAddress('glGetVertexAttribfvNV'); if not Assigned(glGetVertexAttribfvNV) then Exit; glGetVertexAttribivNV := wglGetProcAddress('glGetVertexAttribivNV'); if not Assigned(glGetVertexAttribivNV) then Exit; glGetVertexAttribPointervNV := wglGetProcAddress('glGetVertexAttribPointervNV'); if not Assigned(glGetVertexAttribPointervNV) then Exit; glIsProgramNV := wglGetProcAddress('glIsProgramNV'); if not Assigned(glIsProgramNV) then Exit; glLoadProgramNV := wglGetProcAddress('glLoadProgramNV'); if not Assigned(glLoadProgramNV) then Exit; glProgramParameter4fNV := wglGetProcAddress('glProgramParameter4fNV'); if not Assigned(glProgramParameter4fNV) then Exit; glProgramParameter4fvNV := wglGetProcAddress('glProgramParameter4fvNV'); if not Assigned(glProgramParameter4fvNV) then Exit; glProgramParameters4dvNV := wglGetProcAddress('glProgramParameters4dvNV'); if not Assigned(glProgramParameters4dvNV) then Exit; glProgramParameters4fvNV := wglGetProcAddress('glProgramParameters4fvNV'); if not Assigned(glProgramParameters4fvNV) then Exit; glTrackMatrixNV := wglGetProcAddress('glTrackMatrixNV'); if not Assigned(glTrackMatrixNV) then Exit; glVertexAttribPointerNV := wglGetProcAddress('glVertexAttribPointerNV'); if not Assigned(glVertexAttribPointerNV) then Exit; glVertexAttrib1sNV := wglGetProcAddress('glVertexAttrib1sNV'); if not Assigned(glVertexAttrib1sNV) then Exit; glVertexAttrib1fNV := wglGetProcAddress('glVertexAttrib1fNV'); if not Assigned(glVertexAttrib1fNV) then Exit; glVertexAttrib1dNV := wglGetProcAddress('glVertexAttrib1dNV'); if not Assigned(glVertexAttrib1dNV) then Exit; glVertexAttrib2sNV := wglGetProcAddress('glVertexAttrib2sNV'); if not Assigned(glVertexAttrib2sNV) then Exit; glVertexAttrib2fNV := wglGetProcAddress('glVertexAttrib2fNV'); if not Assigned(glVertexAttrib2fNV) then Exit; glVertexAttrib2dNV := wglGetProcAddress('glVertexAttrib2dNV'); if not Assigned(glVertexAttrib2dNV) then Exit; glVertexAttrib3sNV := wglGetProcAddress('glVertexAttrib3sNV'); if not Assigned(glVertexAttrib3sNV) then Exit; glVertexAttrib3fNV := wglGetProcAddress('glVertexAttrib3fNV'); if not Assigned(glVertexAttrib3fNV) then Exit; glVertexAttrib3dNV := wglGetProcAddress('glVertexAttrib3dNV'); if not Assigned(glVertexAttrib3dNV) then Exit; glVertexAttrib4sNV := wglGetProcAddress('glVertexAttrib4sNV'); if not Assigned(glVertexAttrib4sNV) then Exit; glVertexAttrib4fNV := wglGetProcAddress('glVertexAttrib4fNV'); if not Assigned(glVertexAttrib4fNV) then Exit; glVertexAttrib4dNV := wglGetProcAddress('glVertexAttrib4dNV'); if not Assigned(glVertexAttrib4dNV) then Exit; glVertexAttrib4ubNV := wglGetProcAddress('glVertexAttrib4ubNV'); if not Assigned(glVertexAttrib4ubNV) then Exit; glVertexAttrib1svNV := wglGetProcAddress('glVertexAttrib1svNV'); if not Assigned(glVertexAttrib1svNV) then Exit; glVertexAttrib1fvNV := wglGetProcAddress('glVertexAttrib1fvNV'); if not Assigned(glVertexAttrib1fvNV) then Exit; glVertexAttrib1dvNV := wglGetProcAddress('glVertexAttrib1dvNV'); if not Assigned(glVertexAttrib1dvNV) then Exit; glVertexAttrib2svNV := wglGetProcAddress('glVertexAttrib2svNV'); if not Assigned(glVertexAttrib2svNV) then Exit; glVertexAttrib2fvNV := wglGetProcAddress('glVertexAttrib2fvNV'); if not Assigned(glVertexAttrib2fvNV) then Exit; glVertexAttrib2dvNV := wglGetProcAddress('glVertexAttrib2dvNV'); if not Assigned(glVertexAttrib2dvNV) then Exit; glVertexAttrib3svNV := wglGetProcAddress('glVertexAttrib3svNV'); if not Assigned(glVertexAttrib3svNV) then Exit; glVertexAttrib3fvNV := wglGetProcAddress('glVertexAttrib3fvNV'); if not Assigned(glVertexAttrib3fvNV) then Exit; glVertexAttrib3dvNV := wglGetProcAddress('glVertexAttrib3dvNV'); if not Assigned(glVertexAttrib3dvNV) then Exit; glVertexAttrib4svNV := wglGetProcAddress('glVertexAttrib4svNV'); if not Assigned(glVertexAttrib4svNV) then Exit; glVertexAttrib4fvNV := wglGetProcAddress('glVertexAttrib4fvNV'); if not Assigned(glVertexAttrib4fvNV) then Exit; glVertexAttrib4dvNV := wglGetProcAddress('glVertexAttrib4dvNV'); if not Assigned(glVertexAttrib4dvNV) then Exit; glVertexAttrib4ubvNV := wglGetProcAddress('glVertexAttrib4ubvNV'); if not Assigned(glVertexAttrib4ubvNV) then Exit; glVertexAttribs1svNV := wglGetProcAddress('glVertexAttribs1svNV'); if not Assigned(glVertexAttribs1svNV) then Exit; glVertexAttribs1fvNV := wglGetProcAddress('glVertexAttribs1fvNV'); if not Assigned(glVertexAttribs1fvNV) then Exit; glVertexAttribs1dvNV := wglGetProcAddress('glVertexAttribs1dvNV'); if not Assigned(glVertexAttribs1dvNV) then Exit; glVertexAttribs2svNV := wglGetProcAddress('glVertexAttribs2svNV'); if not Assigned(glVertexAttribs2svNV) then Exit; glVertexAttribs2fvNV := wglGetProcAddress('glVertexAttribs2fvNV'); if not Assigned(glVertexAttribs2fvNV) then Exit; glVertexAttribs2dvNV := wglGetProcAddress('glVertexAttribs2dvNV'); if not Assigned(glVertexAttribs2dvNV) then Exit; glVertexAttribs3svNV := wglGetProcAddress('glVertexAttribs3svNV'); if not Assigned(glVertexAttribs3svNV) then Exit; glVertexAttribs3fvNV := wglGetProcAddress('glVertexAttribs3fvNV'); if not Assigned(glVertexAttribs3fvNV) then Exit; glVertexAttribs3dvNV := wglGetProcAddress('glVertexAttribs3dvNV'); if not Assigned(glVertexAttribs3dvNV) then Exit; glVertexAttribs4svNV := wglGetProcAddress('glVertexAttribs4svNV'); if not Assigned(glVertexAttribs4svNV) then Exit; glVertexAttribs4fvNV := wglGetProcAddress('glVertexAttribs4fvNV'); if not Assigned(glVertexAttribs4fvNV) then Exit; glVertexAttribs4dvNV := wglGetProcAddress('glVertexAttribs4dvNV'); if not Assigned(glVertexAttribs4dvNV) then Exit; glVertexAttribs4ubvNV := wglGetProcAddress('glVertexAttribs4ubvNV'); if not Assigned(glVertexAttribs4ubvNV) then Exit; Result := TRUE; end; end; function Load_GL_NV_vertex_program1_1: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_vertex_program1_1', extstring) then begin Result := TRUE; end; end; function Load_GL_ATI_element_array: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_element_array', extstring) then begin glElementPointerATI := wglGetProcAddress('glElementPointerATI'); if not Assigned(glElementPointerATI) then Exit; glDrawElementArrayATI := wglGetProcAddress('glDrawElementArrayATI'); if not Assigned(glDrawElementArrayATI) then Exit; glDrawRangeElementArrayATI := wglGetProcAddress('glDrawRangeElementArrayATI'); if not Assigned(glDrawRangeElementArrayATI) then Exit; Result := TRUE; end; end; function Load_GL_ATI_envmap_bumpmap: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_envmap_bumpmap', extstring) then begin glTexBumpParameterivATI := wglGetProcAddress('glTexBumpParameterivATI'); if not Assigned(glTexBumpParameterivATI) then Exit; glTexBumpParameterfvATI := wglGetProcAddress('glTexBumpParameterfvATI'); if not Assigned(glTexBumpParameterfvATI) then Exit; glGetTexBumpParameterivATI := wglGetProcAddress('glGetTexBumpParameterivATI'); if not Assigned(glGetTexBumpParameterivATI) then Exit; glGetTexBumpParameterfvATI := wglGetProcAddress('glGetTexBumpParameterfvATI'); if not Assigned(glGetTexBumpParameterfvATI) then Exit; Result := TRUE; end; end; function Load_GL_ATI_fragment_shader: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_fragment_shader', extstring) then begin glGenFragmentShadersATI := wglGetProcAddress('glGenFragmentShadersATI'); if not Assigned(glGenFragmentShadersATI) then Exit; glBindFragmentShaderATI := wglGetProcAddress('glBindFragmentShaderATI'); if not Assigned(glBindFragmentShaderATI) then Exit; glDeleteFragmentShaderATI := wglGetProcAddress('glDeleteFragmentShaderATI'); if not Assigned(glDeleteFragmentShaderATI) then Exit; glBeginFragmentShaderATI := wglGetProcAddress('glBeginFragmentShaderATI'); if not Assigned(glBeginFragmentShaderATI) then Exit; glEndFragmentShaderATI := wglGetProcAddress('glEndFragmentShaderATI'); if not Assigned(glEndFragmentShaderATI) then Exit; glPassTexCoordATI := wglGetProcAddress('glPassTexCoordATI'); if not Assigned(glPassTexCoordATI) then Exit; glSampleMapATI := wglGetProcAddress('glSampleMapATI'); if not Assigned(glSampleMapATI) then Exit; glColorFragmentOp1ATI := wglGetProcAddress('glColorFragmentOp1ATI'); if not Assigned(glColorFragmentOp1ATI) then Exit; glColorFragmentOp2ATI := wglGetProcAddress('glColorFragmentOp2ATI'); if not Assigned(glColorFragmentOp2ATI) then Exit; glColorFragmentOp3ATI := wglGetProcAddress('glColorFragmentOp3ATI'); if not Assigned(glColorFragmentOp3ATI) then Exit; glAlphaFragmentOp1ATI := wglGetProcAddress('glAlphaFragmentOp1ATI'); if not Assigned(glAlphaFragmentOp1ATI) then Exit; glAlphaFragmentOp2ATI := wglGetProcAddress('glAlphaFragmentOp2ATI'); if not Assigned(glAlphaFragmentOp2ATI) then Exit; glAlphaFragmentOp3ATI := wglGetProcAddress('glAlphaFragmentOp3ATI'); if not Assigned(glAlphaFragmentOp3ATI) then Exit; glSetFragmentShaderConstantATI := wglGetProcAddress('glSetFragmentShaderConstantATI'); if not Assigned(glSetFragmentShaderConstantATI) then Exit; Result := TRUE; end; end; function Load_GL_ATI_pn_triangles: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_pn_triangles', extstring) then begin glPNTrianglesiATI := wglGetProcAddress('glPNTrianglesiATI'); if not Assigned(glPNTrianglesiATI) then Exit; glPNTrianglesfATI := wglGetProcAddress('glPNTrianglesfATI'); if not Assigned(glPNTrianglesfATI) then Exit; Result := TRUE; end; end; function Load_GL_ATI_texture_mirror_once: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_texture_mirror_once', extstring) then begin Result := TRUE; end; end; function Load_GL_ATI_vertex_array_object: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_vertex_array_object', extstring) then begin glNewObjectBufferATI := wglGetProcAddress('glNewObjectBufferATI'); if not Assigned(glNewObjectBufferATI) then Exit; glIsObjectBufferATI := wglGetProcAddress('glIsObjectBufferATI'); if not Assigned(glIsObjectBufferATI) then Exit; glUpdateObjectBufferATI := wglGetProcAddress('glUpdateObjectBufferATI'); if not Assigned(glUpdateObjectBufferATI) then Exit; glGetObjectBufferfvATI := wglGetProcAddress('glGetObjectBufferfvATI'); if not Assigned(glGetObjectBufferfvATI) then Exit; glGetObjectBufferivATI := wglGetProcAddress('glGetObjectBufferivATI'); if not Assigned(glGetObjectBufferivATI) then Exit; glDeleteObjectBufferATI := wglGetProcAddress('glDeleteObjectBufferATI'); if not Assigned(glDeleteObjectBufferATI) then Exit; glArrayObjectATI := wglGetProcAddress('glArrayObjectATI'); if not Assigned(glArrayObjectATI) then Exit; glGetArrayObjectfvATI := wglGetProcAddress('glGetArrayObjectfvATI'); if not Assigned(glGetArrayObjectfvATI) then Exit; glGetArrayObjectivATI := wglGetProcAddress('glGetArrayObjectivATI'); if not Assigned(glGetArrayObjectivATI) then Exit; glVariantArrayObjectATI := wglGetProcAddress('glVariantArrayObjectATI'); if not Assigned(glVariantArrayObjectATI) then Exit; glGetVariantArrayObjectfvATI := wglGetProcAddress('glGetVariantArrayObjectfvATI'); if not Assigned(glGetVariantArrayObjectfvATI) then Exit; glGetVariantArrayObjectivATI := wglGetProcAddress('glGetVariantArrayObjectivATI'); if not Assigned(glGetVariantArrayObjectivATI) then Exit; Result := TRUE; end; end; function Load_GL_ATI_vertex_streams: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_vertex_streams', extstring) then begin glVertexStream1s := wglGetProcAddress('glVertexStream1s'); if not Assigned(glVertexStream1s) then Exit; glVertexStream1i := wglGetProcAddress('glVertexStream1i'); if not Assigned(glVertexStream1i) then Exit; glVertexStream1f := wglGetProcAddress('glVertexStream1f'); if not Assigned(glVertexStream1f) then Exit; glVertexStream1d := wglGetProcAddress('glVertexStream1d'); if not Assigned(glVertexStream1d) then Exit; glVertexStream1sv := wglGetProcAddress('glVertexStream1sv'); if not Assigned(glVertexStream1sv) then Exit; glVertexStream1iv := wglGetProcAddress('glVertexStream1iv'); if not Assigned(glVertexStream1iv) then Exit; glVertexStream1fv := wglGetProcAddress('glVertexStream1fv'); if not Assigned(glVertexStream1fv) then Exit; glVertexStream1dv := wglGetProcAddress('glVertexStream1dv'); if not Assigned(glVertexStream1dv) then Exit; glVertexStream2s := wglGetProcAddress('glVertexStream2s'); if not Assigned(glVertexStream2s) then Exit; glVertexStream2i := wglGetProcAddress('glVertexStream2i'); if not Assigned(glVertexStream2i) then Exit; glVertexStream2f := wglGetProcAddress('glVertexStream2f'); if not Assigned(glVertexStream2f) then Exit; glVertexStream2d := wglGetProcAddress('glVertexStream2d'); if not Assigned(glVertexStream2d) then Exit; glVertexStream2sv := wglGetProcAddress('glVertexStream2sv'); if not Assigned(glVertexStream2sv) then Exit; glVertexStream2iv := wglGetProcAddress('glVertexStream2iv'); if not Assigned(glVertexStream2iv) then Exit; glVertexStream2fv := wglGetProcAddress('glVertexStream2fv'); if not Assigned(glVertexStream2fv) then Exit; glVertexStream2dv := wglGetProcAddress('glVertexStream2dv'); if not Assigned(glVertexStream2dv) then Exit; glVertexStream3s := wglGetProcAddress('glVertexStream3s'); if not Assigned(glVertexStream3s) then Exit; glVertexStream3i := wglGetProcAddress('glVertexStream3i'); if not Assigned(glVertexStream3i) then Exit; glVertexStream3f := wglGetProcAddress('glVertexStream3f'); if not Assigned(glVertexStream3f) then Exit; glVertexStream3d := wglGetProcAddress('glVertexStream3d'); if not Assigned(glVertexStream3d) then Exit; glVertexStream3sv := wglGetProcAddress('glVertexStream3sv'); if not Assigned(glVertexStream3sv) then Exit; glVertexStream3iv := wglGetProcAddress('glVertexStream3iv'); if not Assigned(glVertexStream3iv) then Exit; glVertexStream3fv := wglGetProcAddress('glVertexStream3fv'); if not Assigned(glVertexStream3fv) then Exit; glVertexStream3dv := wglGetProcAddress('glVertexStream3dv'); if not Assigned(glVertexStream3dv) then Exit; glVertexStream4s := wglGetProcAddress('glVertexStream4s'); if not Assigned(glVertexStream4s) then Exit; glVertexStream4i := wglGetProcAddress('glVertexStream4i'); if not Assigned(glVertexStream4i) then Exit; glVertexStream4f := wglGetProcAddress('glVertexStream4f'); if not Assigned(glVertexStream4f) then Exit; glVertexStream4d := wglGetProcAddress('glVertexStream4d'); if not Assigned(glVertexStream4d) then Exit; glVertexStream4sv := wglGetProcAddress('glVertexStream4sv'); if not Assigned(glVertexStream4sv) then Exit; glVertexStream4iv := wglGetProcAddress('glVertexStream4iv'); if not Assigned(glVertexStream4iv) then Exit; glVertexStream4fv := wglGetProcAddress('glVertexStream4fv'); if not Assigned(glVertexStream4fv) then Exit; glVertexStream4dv := wglGetProcAddress('glVertexStream4dv'); if not Assigned(glVertexStream4dv) then Exit; glNormalStream3b := wglGetProcAddress('glNormalStream3b'); if not Assigned(glNormalStream3b) then Exit; glNormalStream3s := wglGetProcAddress('glNormalStream3s'); if not Assigned(glNormalStream3s) then Exit; glNormalStream3i := wglGetProcAddress('glNormalStream3i'); if not Assigned(glNormalStream3i) then Exit; glNormalStream3f := wglGetProcAddress('glNormalStream3f'); if not Assigned(glNormalStream3f) then Exit; glNormalStream3d := wglGetProcAddress('glNormalStream3d'); if not Assigned(glNormalStream3d) then Exit; glNormalStream3bv := wglGetProcAddress('glNormalStream3bv'); if not Assigned(glNormalStream3bv) then Exit; glNormalStream3sv := wglGetProcAddress('glNormalStream3sv'); if not Assigned(glNormalStream3sv) then Exit; glNormalStream3iv := wglGetProcAddress('glNormalStream3iv'); if not Assigned(glNormalStream3iv) then Exit; glNormalStream3fv := wglGetProcAddress('glNormalStream3fv'); if not Assigned(glNormalStream3fv) then Exit; glNormalStream3dv := wglGetProcAddress('glNormalStream3dv'); if not Assigned(glNormalStream3dv) then Exit; glClientActiveVertexStream := wglGetProcAddress('glClientActiveVertexStream'); if not Assigned(glClientActiveVertexStream) then Exit; glVertexBlendEnvi := wglGetProcAddress('glVertexBlendEnvi'); if not Assigned(glVertexBlendEnvi) then Exit; glVertexBlendEnvf := wglGetProcAddress('glVertexBlendEnvf'); if not Assigned(glVertexBlendEnvf) then Exit; Result := TRUE; end; end; function Load_WGL_I3D_image_buffer: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_I3D_image_buffer', extstring) then begin wglCreateImageBufferI3D := wglGetProcAddress('wglCreateImageBufferI3D'); if not Assigned(wglCreateImageBufferI3D) then Exit; wglDestroyImageBufferI3D := wglGetProcAddress('wglDestroyImageBufferI3D'); if not Assigned(wglDestroyImageBufferI3D) then Exit; wglAssociateImageBufferEventsI3D := wglGetProcAddress('wglAssociateImageBufferEventsI3D'); if not Assigned(wglAssociateImageBufferEventsI3D) then Exit; wglReleaseImageBufferEventsI3D := wglGetProcAddress('wglReleaseImageBufferEventsI3D'); if not Assigned(wglReleaseImageBufferEventsI3D) then Exit; Result := TRUE; end; end; function Load_WGL_I3D_swap_frame_lock: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_I3D_swap_frame_lock', extstring) then begin wglEnableFrameLockI3D := wglGetProcAddress('wglEnableFrameLockI3D'); if not Assigned(wglEnableFrameLockI3D) then Exit; wglDisableFrameLockI3D := wglGetProcAddress('wglDisableFrameLockI3D'); if not Assigned(wglDisableFrameLockI3D) then Exit; wglIsEnabledFrameLockI3D := wglGetProcAddress('wglIsEnabledFrameLockI3D'); if not Assigned(wglIsEnabledFrameLockI3D) then Exit; wglQueryFrameLockMasterI3D := wglGetProcAddress('wglQueryFrameLockMasterI3D'); if not Assigned(wglQueryFrameLockMasterI3D) then Exit; Result := TRUE; end; end; function Load_WGL_I3D_swap_frame_usage: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_I3D_swap_frame_usage', extstring) then begin wglGetFrameUsageI3D := wglGetProcAddress('wglGetFrameUsageI3D'); if not Assigned(wglGetFrameUsageI3D) then Exit; wglBeginFrameTrackingI3D := wglGetProcAddress('wglBeginFrameTrackingI3D'); if not Assigned(wglBeginFrameTrackingI3D) then Exit; wglEndFrameTrackingI3D := wglGetProcAddress('wglEndFrameTrackingI3D'); if not Assigned(wglEndFrameTrackingI3D) then Exit; wglQueryFrameTrackingI3D := wglGetProcAddress('wglQueryFrameTrackingI3D'); if not Assigned(wglQueryFrameTrackingI3D) then Exit; Result := TRUE; end; end; function Load_GL_3DFX_texture_compression_FXT1: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_3DFX_texture_compression_FXT1', extstring) then begin Result := TRUE; end; end; function Load_GL_IBM_cull_vertex: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_IBM_cull_vertex', extstring) then begin Result := TRUE; end; end; function Load_GL_IBM_multimode_draw_arrays: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_IBM_multimode_draw_arrays', extstring) then begin glMultiModeDrawArraysIBM := wglGetProcAddress('glMultiModeDrawArraysIBM'); if not Assigned(glMultiModeDrawArraysIBM) then Exit; glMultiModeDrawElementsIBM := wglGetProcAddress('glMultiModeDrawElementsIBM'); if not Assigned(glMultiModeDrawElementsIBM) then Exit; Result := TRUE; end; end; function Load_GL_IBM_raster_pos_clip: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_IBM_raster_pos_clip', extstring) then begin Result := TRUE; end; end; function Load_GL_IBM_texture_mirrored_repeat: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_IBM_texture_mirrored_repeat', extstring) then begin Result := TRUE; end; end; function Load_GL_IBM_vertex_array_lists: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_IBM_vertex_array_lists', extstring) then begin glColorPointerListIBM := wglGetProcAddress('glColorPointerListIBM'); if not Assigned(glColorPointerListIBM) then Exit; glSecondaryColorPointerListIBM := wglGetProcAddress('glSecondaryColorPointerListIBM'); if not Assigned(glSecondaryColorPointerListIBM) then Exit; glEdgeFlagPointerListIBM := wglGetProcAddress('glEdgeFlagPointerListIBM'); if not Assigned(glEdgeFlagPointerListIBM) then Exit; glFogCoordPointerListIBM := wglGetProcAddress('glFogCoordPointerListIBM'); if not Assigned(glFogCoordPointerListIBM) then Exit; glNormalPointerListIBM := wglGetProcAddress('glNormalPointerListIBM'); if not Assigned(glNormalPointerListIBM) then Exit; glTexCoordPointerListIBM := wglGetProcAddress('glTexCoordPointerListIBM'); if not Assigned(glTexCoordPointerListIBM) then Exit; glVertexPointerListIBM := wglGetProcAddress('glVertexPointerListIBM'); if not Assigned(glVertexPointerListIBM) then Exit; Result := TRUE; end; end; function Load_GL_MESA_resize_buffers: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_MESA_resize_buffers', extstring) then begin glResizeBuffersMESA := wglGetProcAddress('glResizeBuffersMESA'); if not Assigned(glResizeBuffersMESA) then Exit; Result := TRUE; end; end; function Load_GL_MESA_window_pos: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_MESA_window_pos', extstring) then begin glWindowPos2dMESA := wglGetProcAddress('glWindowPos2dMESA'); if not Assigned(glWindowPos2dMESA) then Exit; glWindowPos2fMESA := wglGetProcAddress('glWindowPos2fMESA'); if not Assigned(glWindowPos2fMESA) then Exit; glWindowPos2iMESA := wglGetProcAddress('glWindowPos2iMESA'); if not Assigned(glWindowPos2iMESA) then Exit; glWindowPos2sMESA := wglGetProcAddress('glWindowPos2sMESA'); if not Assigned(glWindowPos2sMESA) then Exit; glWindowPos2ivMESA := wglGetProcAddress('glWindowPos2ivMESA'); if not Assigned(glWindowPos2ivMESA) then Exit; glWindowPos2svMESA := wglGetProcAddress('glWindowPos2svMESA'); if not Assigned(glWindowPos2svMESA) then Exit; glWindowPos2fvMESA := wglGetProcAddress('glWindowPos2fvMESA'); if not Assigned(glWindowPos2fvMESA) then Exit; glWindowPos2dvMESA := wglGetProcAddress('glWindowPos2dvMESA'); if not Assigned(glWindowPos2dvMESA) then Exit; glWindowPos3iMESA := wglGetProcAddress('glWindowPos3iMESA'); if not Assigned(glWindowPos3iMESA) then Exit; glWindowPos3sMESA := wglGetProcAddress('glWindowPos3sMESA'); if not Assigned(glWindowPos3sMESA) then Exit; glWindowPos3fMESA := wglGetProcAddress('glWindowPos3fMESA'); if not Assigned(glWindowPos3fMESA) then Exit; glWindowPos3dMESA := wglGetProcAddress('glWindowPos3dMESA'); if not Assigned(glWindowPos3dMESA) then Exit; glWindowPos3ivMESA := wglGetProcAddress('glWindowPos3ivMESA'); if not Assigned(glWindowPos3ivMESA) then Exit; glWindowPos3svMESA := wglGetProcAddress('glWindowPos3svMESA'); if not Assigned(glWindowPos3svMESA) then Exit; glWindowPos3fvMESA := wglGetProcAddress('glWindowPos3fvMESA'); if not Assigned(glWindowPos3fvMESA) then Exit; glWindowPos3dvMESA := wglGetProcAddress('glWindowPos3dvMESA'); if not Assigned(glWindowPos3dvMESA) then Exit; glWindowPos4iMESA := wglGetProcAddress('glWindowPos4iMESA'); if not Assigned(glWindowPos4iMESA) then Exit; glWindowPos4sMESA := wglGetProcAddress('glWindowPos4sMESA'); if not Assigned(glWindowPos4sMESA) then Exit; glWindowPos4fMESA := wglGetProcAddress('glWindowPos4fMESA'); if not Assigned(glWindowPos4fMESA) then Exit; glWindowPos4dMESA := wglGetProcAddress('glWindowPos4dMESA'); if not Assigned(glWindowPos4dMESA) then Exit; glWindowPos4ivMESA := wglGetProcAddress('glWindowPos4ivMESA'); if not Assigned(glWindowPos4ivMESA) then Exit; glWindowPos4svMESA := wglGetProcAddress('glWindowPos4svMESA'); if not Assigned(glWindowPos4svMESA) then Exit; glWindowPos4fvMESA := wglGetProcAddress('glWindowPos4fvMESA'); if not Assigned(glWindowPos4fvMESA) then Exit; glWindowPos4dvMESA := wglGetProcAddress('glWindowPos4dvMESA'); if not Assigned(glWindowPos4dvMESA) then Exit; Result := TRUE; end; end; function Load_GL_OML_interlace: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_OML_interlace', extstring) then begin Result := TRUE; end; end; function Load_GL_OML_resample: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_OML_resample', extstring) then begin Result := TRUE; end; end; function Load_GL_OML_subsample: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_OML_subsample', extstring) then begin Result := TRUE; end; end; function Load_GL_SGIS_generate_mipmap: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIS_generate_mipmap', extstring) then begin Result := TRUE; end; end; function Load_GL_SGIS_multisample: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIS_multisample', extstring) then begin glSampleMaskSGIS := wglGetProcAddress('glSampleMaskSGIS'); if not Assigned(glSampleMaskSGIS) then Exit; glSamplePatternSGIS := wglGetProcAddress('glSamplePatternSGIS'); if not Assigned(glSamplePatternSGIS) then Exit; Result := TRUE; end; end; function Load_GL_SGIS_pixel_texture: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIS_pixel_texture', extstring) then begin glPixelTexGenParameteriSGIS := wglGetProcAddress('glPixelTexGenParameteriSGIS'); if not Assigned(glPixelTexGenParameteriSGIS) then Exit; glPixelTexGenParameterfSGIS := wglGetProcAddress('glPixelTexGenParameterfSGIS'); if not Assigned(glPixelTexGenParameterfSGIS) then Exit; glGetPixelTexGenParameterivSGIS := wglGetProcAddress('glGetPixelTexGenParameterivSGIS'); if not Assigned(glGetPixelTexGenParameterivSGIS) then Exit; glGetPixelTexGenParameterfvSGIS := wglGetProcAddress('glGetPixelTexGenParameterfvSGIS'); if not Assigned(glGetPixelTexGenParameterfvSGIS) then Exit; Result := TRUE; end; end; function Load_GL_SGIS_texture_border_clamp: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIS_texture_border_clamp', extstring) then begin Result := TRUE; end; end; function Load_GL_SGIS_texture_color_mask: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIS_texture_color_mask', extstring) then begin glTextureColorMaskSGIS := wglGetProcAddress('glTextureColorMaskSGIS'); if not Assigned(glTextureColorMaskSGIS) then Exit; Result := TRUE; end; end; function Load_GL_SGIS_texture_edge_clamp: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIS_texture_edge_clamp', extstring) then begin Result := TRUE; end; end; function Load_GL_SGIS_texture_lod: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIS_texture_lod', extstring) then begin Result := TRUE; end; end; function Load_GL_SGIS_depth_texture: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIS_depth_texture', extstring) then begin Result := TRUE; end; end; function Load_GL_SGIX_fog_offset: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIX_fog_offset', extstring) then begin Result := TRUE; end; end; function Load_GL_SGIX_interlace: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIX_interlace', extstring) then begin Result := TRUE; end; end; function Load_GL_SGIX_shadow_ambient: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGIX_shadow_ambient', extstring) then begin Result := TRUE; end; end; function Load_GL_SGI_color_matrix: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGI_color_matrix', extstring) then begin Result := TRUE; end; end; function Load_GL_SGI_color_table: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGI_color_table', extstring) then begin glColorTableSGI := wglGetProcAddress('glColorTableSGI'); if not Assigned(glColorTableSGI) then Exit; glCopyColorTableSGI := wglGetProcAddress('glCopyColorTableSGI'); if not Assigned(glCopyColorTableSGI) then Exit; glColorTableParameterivSGI := wglGetProcAddress('glColorTableParameterivSGI'); if not Assigned(glColorTableParameterivSGI) then Exit; glColorTableParameterfvSGI := wglGetProcAddress('glColorTableParameterfvSGI'); if not Assigned(glColorTableParameterfvSGI) then Exit; glGetColorTableSGI := wglGetProcAddress('glGetColorTableSGI'); if not Assigned(glGetColorTableSGI) then Exit; glGetColorTableParameterivSGI := wglGetProcAddress('glGetColorTableParameterivSGI'); if not Assigned(glGetColorTableParameterivSGI) then Exit; glGetColorTableParameterfvSGI := wglGetProcAddress('glGetColorTableParameterfvSGI'); if not Assigned(glGetColorTableParameterfvSGI) then Exit; Result := TRUE; end; end; function Load_GL_SGI_texture_color_table: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SGI_texture_color_table', extstring) then begin Result := TRUE; end; end; function Load_GL_SUN_vertex: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_SUN_vertex', extstring) then begin glColor4ubVertex2fSUN := wglGetProcAddress('glColor4ubVertex2fSUN'); if not Assigned(glColor4ubVertex2fSUN) then Exit; glColor4ubVertex2fvSUN := wglGetProcAddress('glColor4ubVertex2fvSUN'); if not Assigned(glColor4ubVertex2fvSUN) then Exit; glColor4ubVertex3fSUN := wglGetProcAddress('glColor4ubVertex3fSUN'); if not Assigned(glColor4ubVertex3fSUN) then Exit; glColor4ubVertex3fvSUN := wglGetProcAddress('glColor4ubVertex3fvSUN'); if not Assigned(glColor4ubVertex3fvSUN) then Exit; glColor3fVertex3fSUN := wglGetProcAddress('glColor3fVertex3fSUN'); if not Assigned(glColor3fVertex3fSUN) then Exit; glColor3fVertex3fvSUN := wglGetProcAddress('glColor3fVertex3fvSUN'); if not Assigned(glColor3fVertex3fvSUN) then Exit; glNormal3fVertex3fSUN := wglGetProcAddress('glNormal3fVertex3fSUN'); if not Assigned(glNormal3fVertex3fSUN) then Exit; glNormal3fVertex3fvSUN := wglGetProcAddress('glNormal3fVertex3fvSUN'); if not Assigned(glNormal3fVertex3fvSUN) then Exit; glColor4fNormal3fVertex3fSUN := wglGetProcAddress('glColor4fNormal3fVertex3fSUN'); if not Assigned(glColor4fNormal3fVertex3fSUN) then Exit; glColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glColor4fNormal3fVertex3fvSUN'); if not Assigned(glColor4fNormal3fVertex3fvSUN) then Exit; glTexCoord2fVertex3fSUN := wglGetProcAddress('glTexCoord2fVertex3fSUN'); if not Assigned(glTexCoord2fVertex3fSUN) then Exit; glTexCoord2fVertex3fvSUN := wglGetProcAddress('glTexCoord2fVertex3fvSUN'); if not Assigned(glTexCoord2fVertex3fvSUN) then Exit; glTexCoord4fVertex4fSUN := wglGetProcAddress('glTexCoord4fVertex4fSUN'); if not Assigned(glTexCoord4fVertex4fSUN) then Exit; glTexCoord4fVertex4fvSUN := wglGetProcAddress('glTexCoord4fVertex4fvSUN'); if not Assigned(glTexCoord4fVertex4fvSUN) then Exit; glTexCoord2fColor4ubVertex3fSUN := wglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN'); if not Assigned(glTexCoord2fColor4ubVertex3fSUN) then Exit; glTexCoord2fColor4ubVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN'); if not Assigned(glTexCoord2fColor4ubVertex3fvSUN) then Exit; glTexCoord2fColor3fVertex3fSUN := wglGetProcAddress('glTexCoord2fColor3fVertex3fSUN'); if not Assigned(glTexCoord2fColor3fVertex3fSUN) then Exit; glTexCoord2fColor3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN'); if not Assigned(glTexCoord2fColor3fVertex3fvSUN) then Exit; glTexCoord2fNormal3fVertex3fSUN := wglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN'); if not Assigned(glTexCoord2fNormal3fVertex3fSUN) then Exit; glTexCoord2fNormal3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN'); if not Assigned(glTexCoord2fNormal3fVertex3fvSUN) then Exit; glTexCoord2fColor4fNormal3fVertex3fSUN := wglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN'); if not Assigned(glTexCoord2fColor4fNormal3fVertex3fSUN) then Exit; glTexCoord2fColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN'); if not Assigned(glTexCoord2fColor4fNormal3fVertex3fvSUN) then Exit; glTexCoord4fColor4fNormal3fVertex4fSUN := wglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN'); if not Assigned(glTexCoord4fColor4fNormal3fVertex4fSUN) then Exit; glTexCoord4fColor4fNormal3fVertex4fvSUN := wglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN'); if not Assigned(glTexCoord4fColor4fNormal3fVertex4fvSUN) then Exit; glReplacementCodeuiVertex3fSUN := wglGetProcAddress('glReplacementCodeuiVertex3fSUN'); if not Assigned(glReplacementCodeuiVertex3fSUN) then Exit; glReplacementCodeuiVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiVertex3fvSUN'); if not Assigned(glReplacementCodeuiVertex3fvSUN) then Exit; glReplacementCodeuiColor4ubVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN'); if not Assigned(glReplacementCodeuiColor4ubVertex3fSUN) then Exit; glReplacementCodeuiColor4ubVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN'); if not Assigned(glReplacementCodeuiColor4ubVertex3fvSUN) then Exit; glReplacementCodeuiColor3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN'); if not Assigned(glReplacementCodeuiColor3fVertex3fSUN) then Exit; glReplacementCodeuiColor3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN'); if not Assigned(glReplacementCodeuiColor3fVertex3fvSUN) then Exit; glReplacementCodeuiNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN'); if not Assigned(glReplacementCodeuiNormal3fVertex3fSUN) then Exit; glReplacementCodeuiNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN'); if not Assigned(glReplacementCodeuiNormal3fVertex3fvSUN) then Exit; glReplacementCodeuiColor4fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN'); if not Assigned(glReplacementCodeuiColor4fNormal3fVertex3fSUN) then Exit; glReplacementCodeuiColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN'); if not Assigned(glReplacementCodeuiColor4fNormal3fVertex3fvSUN) then Exit; glReplacementCodeuiTexCoord2fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN'); if not Assigned(glReplacementCodeuiTexCoord2fVertex3fSUN) then Exit; glReplacementCodeuiTexCoord2fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN'); if not Assigned(glReplacementCodeuiTexCoord2fVertex3fvSUN) then Exit; glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN'); if not Assigned(glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) then Exit; glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN'); if not Assigned(glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) then Exit; glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN'); if not Assigned(glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) then Exit; glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN'); if not Assigned(glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) then Exit; Result := TRUE; end; end; function Load_GL_ARB_fragment_program: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_fragment_program', extstring) then begin glProgramStringARB := wglGetProcAddress('glProgramStringARB'); if not Assigned(glProgramStringARB) then Exit; glBindProgramARB := wglGetProcAddress('glBindProgramARB'); if not Assigned(glBindProgramARB) then Exit; glDeleteProgramsARB := wglGetProcAddress('glDeleteProgramsARB'); if not Assigned(glDeleteProgramsARB) then Exit; glGenProgramsARB := wglGetProcAddress('glGenProgramsARB'); if not Assigned(glGenProgramsARB) then Exit; glProgramEnvParameter4dARB := wglGetProcAddress('glProgramEnvParameter4dARB'); if not Assigned(glProgramEnvParameter4dARB) then Exit; glProgramEnvParameter4dvARB := wglGetProcAddress('glProgramEnvParameter4dvARB'); if not Assigned(glProgramEnvParameter4dvARB) then Exit; glProgramEnvParameter4fARB := wglGetProcAddress('glProgramEnvParameter4fARB'); if not Assigned(glProgramEnvParameter4fARB) then Exit; glProgramEnvParameter4fvARB := wglGetProcAddress('glProgramEnvParameter4fvARB'); if not Assigned(glProgramEnvParameter4fvARB) then Exit; glProgramLocalParameter4dARB := wglGetProcAddress('glProgramLocalParameter4dARB'); if not Assigned(glProgramLocalParameter4dARB) then Exit; glProgramLocalParameter4dvARB := wglGetProcAddress('glProgramLocalParameter4dvARB'); if not Assigned(glProgramLocalParameter4dvARB) then Exit; glProgramLocalParameter4fARB := wglGetProcAddress('glProgramLocalParameter4fARB'); if not Assigned(glProgramLocalParameter4fARB) then Exit; glProgramLocalParameter4fvARB := wglGetProcAddress('glProgramLocalParameter4fvARB'); if not Assigned(glProgramLocalParameter4fvARB) then Exit; glGetProgramEnvParameterdvARB := wglGetProcAddress('glGetProgramEnvParameterdvARB'); if not Assigned(glGetProgramEnvParameterdvARB) then Exit; glGetProgramEnvParameterfvARB := wglGetProcAddress('glGetProgramEnvParameterfvARB'); if not Assigned(glGetProgramEnvParameterfvARB) then Exit; glGetProgramLocalParameterdvARB := wglGetProcAddress('glGetProgramLocalParameterdvARB'); if not Assigned(glGetProgramLocalParameterdvARB) then Exit; glGetProgramLocalParameterfvARB := wglGetProcAddress('glGetProgramLocalParameterfvARB'); if not Assigned(glGetProgramLocalParameterfvARB) then Exit; glGetProgramivARB := wglGetProcAddress('glGetProgramivARB'); if not Assigned(glGetProgramivARB) then Exit; glGetProgramStringARB := wglGetProcAddress('glGetProgramStringARB'); if not Assigned(glGetProgramStringARB) then Exit; glIsProgramARB := wglGetProcAddress('glIsProgramARB'); if not Assigned(glIsProgramARB) then Exit; Result := TRUE; end; end; function Load_GL_ATI_text_fragment_shader: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_text_fragment_shader', extstring) then begin Result := TRUE; end; end; function Load_GL_APPLE_client_storage: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_APPLE_client_storage', extstring) then begin Result := TRUE; end; end; function Load_GL_APPLE_element_array: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_APPLE_element_array', extstring) then begin glElementPointerAPPLE := wglGetProcAddress('glElementPointerAPPLE'); if not Assigned(glElementPointerAPPLE) then Exit; glDrawElementArrayAPPLE := wglGetProcAddress('glDrawElementArrayAPPLE'); if not Assigned(glDrawElementArrayAPPLE) then Exit; glDrawRangeElementArrayAPPLE := wglGetProcAddress('glDrawRangeElementArrayAPPLE'); if not Assigned(glDrawRangeElementArrayAPPLE) then Exit; glMultiDrawElementArrayAPPLE := wglGetProcAddress('glMultiDrawElementArrayAPPLE'); if not Assigned(glMultiDrawElementArrayAPPLE) then Exit; glMultiDrawRangeElementArrayAPPLE := wglGetProcAddress('glMultiDrawRangeElementArrayAPPLE'); if not Assigned(glMultiDrawRangeElementArrayAPPLE) then Exit; Result := TRUE; end; end; function Load_GL_APPLE_fence: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_APPLE_fence', extstring) then begin glGenFencesAPPLE := wglGetProcAddress('glGenFencesAPPLE'); if not Assigned(glGenFencesAPPLE) then Exit; glDeleteFencesAPPLE := wglGetProcAddress('glDeleteFencesAPPLE'); if not Assigned(glDeleteFencesAPPLE) then Exit; glSetFenceAPPLE := wglGetProcAddress('glSetFenceAPPLE'); if not Assigned(glSetFenceAPPLE) then Exit; glIsFenceAPPLE := wglGetProcAddress('glIsFenceAPPLE'); if not Assigned(glIsFenceAPPLE) then Exit; glTestFenceAPPLE := wglGetProcAddress('glTestFenceAPPLE'); if not Assigned(glTestFenceAPPLE) then Exit; glFinishFenceAPPLE := wglGetProcAddress('glFinishFenceAPPLE'); if not Assigned(glFinishFenceAPPLE) then Exit; glTestObjectAPPLE := wglGetProcAddress('glTestObjectAPPLE'); if not Assigned(glTestObjectAPPLE) then Exit; glFinishObjectAPPLE := wglGetProcAddress('glFinishObjectAPPLE'); if not Assigned(glFinishObjectAPPLE) then Exit; Result := TRUE; end; end; function Load_GL_APPLE_vertex_array_object: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_APPLE_vertex_array_object', extstring) then begin glBindVertexArrayAPPLE := wglGetProcAddress('glBindVertexArrayAPPLE'); if not Assigned(glBindVertexArrayAPPLE) then Exit; glDeleteVertexArraysAPPLE := wglGetProcAddress('glDeleteVertexArraysAPPLE'); if not Assigned(glDeleteVertexArraysAPPLE) then Exit; glGenVertexArraysAPPLE := wglGetProcAddress('glGenVertexArraysAPPLE'); if not Assigned(glGenVertexArraysAPPLE) then Exit; glIsVertexArrayAPPLE := wglGetProcAddress('glIsVertexArrayAPPLE'); if not Assigned(glIsVertexArrayAPPLE) then Exit; Result := TRUE; end; end; function Load_GL_APPLE_vertex_array_range: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_APPLE_vertex_array_range', extstring) then begin glVertexArrayRangeAPPLE := wglGetProcAddress('glVertexArrayRangeAPPLE'); if not Assigned(glVertexArrayRangeAPPLE) then Exit; glFlushVertexArrayRangeAPPLE := wglGetProcAddress('glFlushVertexArrayRangeAPPLE'); if not Assigned(glFlushVertexArrayRangeAPPLE) then Exit; glVertexArrayParameteriAPPLE := wglGetProcAddress('glVertexArrayParameteriAPPLE'); if not Assigned(glVertexArrayParameteriAPPLE) then Exit; Result := TRUE; end; end; function Load_WGL_ARB_pixel_format: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_ARB_pixel_format', extstring) then begin wglGetPixelFormatAttribivARB := wglGetProcAddress('wglGetPixelFormatAttribivARB'); if not Assigned(wglGetPixelFormatAttribivARB) then Exit; wglGetPixelFormatAttribfvARB := wglGetProcAddress('wglGetPixelFormatAttribfvARB'); if not Assigned(wglGetPixelFormatAttribfvARB) then Exit; wglChoosePixelFormatARB := wglGetProcAddress('wglChoosePixelFormatARB'); if not Assigned(wglChoosePixelFormatARB) then Exit; Result := TRUE; end; end; function Load_WGL_ARB_make_current_read: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_ARB_make_current_read', extstring) then begin wglMakeContextCurrentARB := wglGetProcAddress('wglMakeContextCurrentARB'); if not Assigned(wglMakeContextCurrentARB) then Exit; wglGetCurrentReadDCARB := wglGetProcAddress('wglGetCurrentReadDCARB'); if not Assigned(wglGetCurrentReadDCARB) then Exit; Result := TRUE; end; end; function Load_WGL_ARB_pbuffer: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_ARB_pbuffer', extstring) then begin wglCreatePbufferARB := wglGetProcAddress('wglCreatePbufferARB'); if not Assigned(wglCreatePbufferARB) then Exit; wglGetPbufferDCARB := wglGetProcAddress('wglGetPbufferDCARB'); if not Assigned(wglGetPbufferDCARB) then Exit; wglReleasePbufferDCARB := wglGetProcAddress('wglReleasePbufferDCARB'); if not Assigned(wglReleasePbufferDCARB) then Exit; wglDestroyPbufferARB := wglGetProcAddress('wglDestroyPbufferARB'); if not Assigned(wglDestroyPbufferARB) then Exit; wglQueryPbufferARB := wglGetProcAddress('wglQueryPbufferARB'); if not Assigned(wglQueryPbufferARB) then Exit; Result := TRUE; end; end; function Load_WGL_EXT_swap_control: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_EXT_swap_control', extstring) then begin wglSwapIntervalEXT := wglGetProcAddress('wglSwapIntervalEXT'); if not Assigned(wglSwapIntervalEXT) then Exit; wglGetSwapIntervalEXT := wglGetProcAddress('wglGetSwapIntervalEXT'); if not Assigned(wglGetSwapIntervalEXT) then Exit; Result := TRUE; end; end; function Load_WGL_ARB_render_texture: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_ARB_render_texture', extstring) then begin wglBindTexImageARB := wglGetProcAddress('wglBindTexImageARB'); if not Assigned(wglBindTexImageARB) then Exit; wglReleaseTexImageARB := wglGetProcAddress('wglReleaseTexImageARB'); if not Assigned(wglReleaseTexImageARB) then Exit; wglSetPbufferAttribARB := wglGetProcAddress('wglSetPbufferAttribARB'); if not Assigned(wglSetPbufferAttribARB) then Exit; Result := TRUE; end; end; function Load_WGL_EXT_extensions_string: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_EXT_extensions_string', extstring) then begin wglGetExtensionsStringEXT := wglGetProcAddress('wglGetExtensionsStringEXT'); if not Assigned(wglGetExtensionsStringEXT) then Exit; Result := TRUE; end; end; function Load_WGL_EXT_make_current_read: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_EXT_make_current_read', extstring) then begin wglMakeContextCurrentEXT := wglGetProcAddress('wglMakeContextCurrentEXT'); if not Assigned(wglMakeContextCurrentEXT) then Exit; wglGetCurrentReadDCEXT := wglGetProcAddress('wglGetCurrentReadDCEXT'); if not Assigned(wglGetCurrentReadDCEXT) then Exit; Result := TRUE; end; end; function Load_WGL_EXT_pbuffer: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_EXT_pbuffer', extstring) then begin wglCreatePbufferEXT := wglGetProcAddress('wglCreatePbufferEXT'); if not Assigned(wglCreatePbufferEXT) then Exit; wglGetPbufferDCEXT := wglGetProcAddress('wglGetPbufferDCEXT'); if not Assigned(wglGetPbufferDCEXT) then Exit; wglReleasePbufferDCEXT := wglGetProcAddress('wglReleasePbufferDCEXT'); if not Assigned(wglReleasePbufferDCEXT) then Exit; wglDestroyPbufferEXT := wglGetProcAddress('wglDestroyPbufferEXT'); if not Assigned(wglDestroyPbufferEXT) then Exit; wglQueryPbufferEXT := wglGetProcAddress('wglQueryPbufferEXT'); if not Assigned(wglQueryPbufferEXT) then Exit; Result := TRUE; end; end; function Load_WGL_EXT_pixel_format: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_EXT_pixel_format', extstring) then begin wglGetPixelFormatAttribivEXT := wglGetProcAddress('wglGetPixelFormatAttribivEXT'); if not Assigned(wglGetPixelFormatAttribivEXT) then Exit; wglGetPixelFormatAttribfvEXT := wglGetProcAddress('wglGetPixelFormatAttribfvEXT'); if not Assigned(wglGetPixelFormatAttribfvEXT) then Exit; wglChoosePixelFormatEXT := wglGetProcAddress('wglChoosePixelFormatEXT'); if not Assigned(wglChoosePixelFormatEXT) then Exit; Result := TRUE; end; end; function Load_WGL_I3D_digital_video_control: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_I3D_digital_video_control', extstring) then begin wglGetDigitalVideoParametersI3D := wglGetProcAddress('wglGetDigitalVideoParametersI3D'); if not Assigned(wglGetDigitalVideoParametersI3D) then Exit; wglSetDigitalVideoParametersI3D := wglGetProcAddress('wglSetDigitalVideoParametersI3D'); if not Assigned(wglSetDigitalVideoParametersI3D) then Exit; Result := TRUE; end; end; function Load_WGL_I3D_gamma: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_I3D_gamma', extstring) then begin wglGetGammaTableParametersI3D := wglGetProcAddress('wglGetGammaTableParametersI3D'); if not Assigned(wglGetGammaTableParametersI3D) then Exit; wglSetGammaTableParametersI3D := wglGetProcAddress('wglSetGammaTableParametersI3D'); if not Assigned(wglSetGammaTableParametersI3D) then Exit; wglGetGammaTableI3D := wglGetProcAddress('wglGetGammaTableI3D'); if not Assigned(wglGetGammaTableI3D) then Exit; wglSetGammaTableI3D := wglGetProcAddress('wglSetGammaTableI3D'); if not Assigned(wglSetGammaTableI3D) then Exit; Result := TRUE; end; end; function Load_WGL_I3D_genlock: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_I3D_genlock', extstring) then begin wglEnableGenlockI3D := wglGetProcAddress('wglEnableGenlockI3D'); if not Assigned(wglEnableGenlockI3D) then Exit; wglDisableGenlockI3D := wglGetProcAddress('wglDisableGenlockI3D'); if not Assigned(wglDisableGenlockI3D) then Exit; wglIsEnabledGenlockI3D := wglGetProcAddress('wglIsEnabledGenlockI3D'); if not Assigned(wglIsEnabledGenlockI3D) then Exit; wglGenlockSourceI3D := wglGetProcAddress('wglGenlockSourceI3D'); if not Assigned(wglGenlockSourceI3D) then Exit; wglGetGenlockSourceI3D := wglGetProcAddress('wglGetGenlockSourceI3D'); if not Assigned(wglGetGenlockSourceI3D) then Exit; wglGenlockSourceEdgeI3D := wglGetProcAddress('wglGenlockSourceEdgeI3D'); if not Assigned(wglGenlockSourceEdgeI3D) then Exit; wglGetGenlockSourceEdgeI3D := wglGetProcAddress('wglGetGenlockSourceEdgeI3D'); if not Assigned(wglGetGenlockSourceEdgeI3D) then Exit; wglGenlockSampleRateI3D := wglGetProcAddress('wglGenlockSampleRateI3D'); if not Assigned(wglGenlockSampleRateI3D) then Exit; wglGetGenlockSampleRateI3D := wglGetProcAddress('wglGetGenlockSampleRateI3D'); if not Assigned(wglGetGenlockSampleRateI3D) then Exit; wglGenlockSourceDelayI3D := wglGetProcAddress('wglGenlockSourceDelayI3D'); if not Assigned(wglGenlockSourceDelayI3D) then Exit; wglGetGenlockSourceDelayI3D := wglGetProcAddress('wglGetGenlockSourceDelayI3D'); if not Assigned(wglGetGenlockSourceDelayI3D) then Exit; wglQueryGenlockMaxSourceDelayI3D := wglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D'); if not Assigned(wglQueryGenlockMaxSourceDelayI3D) then Exit; Result := TRUE; end; end; function Load_GL_ARB_matrix_palette: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_matrix_palette', extstring) then begin glCurrentPaletteMatrixARB := wglGetProcAddress('glCurrentPaletteMatrixARB'); if not Assigned(glCurrentPaletteMatrixARB) then Exit; glMatrixIndexubvARB := wglGetProcAddress('glMatrixIndexubvARB'); if not Assigned(glMatrixIndexubvARB) then Exit; glMatrixIndexusvARB := wglGetProcAddress('glMatrixIndexusvARB'); if not Assigned(glMatrixIndexusvARB) then Exit; glMatrixIndexuivARB := wglGetProcAddress('glMatrixIndexuivARB'); if not Assigned(glMatrixIndexuivARB) then Exit; glMatrixIndexPointerARB := wglGetProcAddress('glMatrixIndexPointerARB'); if not Assigned(glMatrixIndexPointerARB) then Exit; Result := TRUE; end; end; function Load_GL_NV_element_array: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_element_array', extstring) then begin glElementPointerNV := wglGetProcAddress('glElementPointerNV'); if not Assigned(glElementPointerNV) then Exit; glDrawElementArrayNV := wglGetProcAddress('glDrawElementArrayNV'); if not Assigned(glDrawElementArrayNV) then Exit; glDrawRangeElementArrayNV := wglGetProcAddress('glDrawRangeElementArrayNV'); if not Assigned(glDrawRangeElementArrayNV) then Exit; glMultiDrawElementArrayNV := wglGetProcAddress('glMultiDrawElementArrayNV'); if not Assigned(glMultiDrawElementArrayNV) then Exit; glMultiDrawRangeElementArrayNV := wglGetProcAddress('glMultiDrawRangeElementArrayNV'); if not Assigned(glMultiDrawRangeElementArrayNV) then Exit; Result := TRUE; end; end; function Load_GL_NV_float_buffer: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_float_buffer', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_fragment_program: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_fragment_program', extstring) then begin glProgramNamedParameter4fNV := wglGetProcAddress('glProgramNamedParameter4fNV'); if not Assigned(glProgramNamedParameter4fNV) then Exit; glProgramNamedParameter4dNV := wglGetProcAddress('glProgramNamedParameter4dNV'); if not Assigned(glProgramNamedParameter4dNV) then Exit; glGetProgramNamedParameterfvNV := wglGetProcAddress('glGetProgramNamedParameterfvNV'); if not Assigned(glGetProgramNamedParameterfvNV) then Exit; glGetProgramNamedParameterdvNV := wglGetProcAddress('glGetProgramNamedParameterdvNV'); if not Assigned(glGetProgramNamedParameterdvNV) then Exit; glProgramLocalParameter4dARB := wglGetProcAddress('glProgramLocalParameter4dARB'); if not Assigned(glProgramLocalParameter4dARB) then Exit; glProgramLocalParameter4dvARB := wglGetProcAddress('glProgramLocalParameter4dvARB'); if not Assigned(glProgramLocalParameter4dvARB) then Exit; glProgramLocalParameter4fARB := wglGetProcAddress('glProgramLocalParameter4fARB'); if not Assigned(glProgramLocalParameter4fARB) then Exit; glProgramLocalParameter4fvARB := wglGetProcAddress('glProgramLocalParameter4fvARB'); if not Assigned(glProgramLocalParameter4fvARB) then Exit; glGetProgramLocalParameterdvARB := wglGetProcAddress('glGetProgramLocalParameterdvARB'); if not Assigned(glGetProgramLocalParameterdvARB) then Exit; glGetProgramLocalParameterfvARB := wglGetProcAddress('glGetProgramLocalParameterfvARB'); if not Assigned(glGetProgramLocalParameterfvARB) then Exit; Result := TRUE; end; end; function Load_GL_NV_primitive_restart: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_primitive_restart', extstring) then begin glPrimitiveRestartNV := wglGetProcAddress('glPrimitiveRestartNV'); if not Assigned(glPrimitiveRestartNV) then Exit; glPrimitiveRestartIndexNV := wglGetProcAddress('glPrimitiveRestartIndexNV'); if not Assigned(glPrimitiveRestartIndexNV) then Exit; Result := TRUE; end; end; function Load_GL_NV_vertex_program2: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_vertex_program2', extstring) then begin Result := TRUE; end; end; function Load_WGL_NV_render_texture_rectangle: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_NV_render_texture_rectangle', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_pixel_data_range: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_pixel_data_range', extstring) then begin glPixelDataRangeNV := wglGetProcAddress('glPixelDataRangeNV'); if not Assigned(glPixelDataRangeNV) then Exit; glFlushPixelDataRangeNV := wglGetProcAddress('glFlushPixelDataRangeNV'); if not Assigned(glFlushPixelDataRangeNV) then Exit; wglAllocateMemoryNV := wglGetProcAddress('wglAllocateMemoryNV'); if not Assigned(wglAllocateMemoryNV) then Exit; wglFreeMemoryNV := wglGetProcAddress('wglFreeMemoryNV'); if not Assigned(wglFreeMemoryNV) then Exit; Result := TRUE; end; end; function Load_GL_EXT_texture_rectangle: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture_rectangle', extstring) then begin Result := TRUE; end; end; function Load_GL_S3_s3tc: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_S3_s3tc', extstring) then begin Result := TRUE; end; end; function Load_GL_ATI_draw_buffers: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_draw_buffers', extstring) then begin glDrawBuffersATI := wglGetProcAddress('glDrawBuffersATI'); if not Assigned(glDrawBuffersATI) then Exit; Result := TRUE; end; end; function Load_WGL_ATI_pixel_format_float: Boolean; var extstring: String; begin Result := FALSE; wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB'); if not Assigned(wglGetExtensionsStringARB) then Exit; extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC))); if glext_ExtensionSupported('WGL_ATI_pixel_format_float', extstring) then begin Result := TRUE; end; end; function Load_GL_ATI_texture_env_combine3: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_texture_env_combine3', extstring) then begin Result := TRUE; end; end; function Load_GL_ATI_texture_float: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_texture_float', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_texture_expand_normal: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_texture_expand_normal', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_half_float: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_half_float', extstring) then begin glVertex2hNV := wglGetProcAddress('glVertex2hNV'); if not Assigned(glVertex2hNV) then Exit; glVertex2hvNV := wglGetProcAddress('glVertex2hvNV'); if not Assigned(glVertex2hvNV) then Exit; glVertex3hNV := wglGetProcAddress('glVertex3hNV'); if not Assigned(glVertex3hNV) then Exit; glVertex3hvNV := wglGetProcAddress('glVertex3hvNV'); if not Assigned(glVertex3hvNV) then Exit; glVertex4hNV := wglGetProcAddress('glVertex4hNV'); if not Assigned(glVertex4hNV) then Exit; glVertex4hvNV := wglGetProcAddress('glVertex4hvNV'); if not Assigned(glVertex4hvNV) then Exit; glNormal3hNV := wglGetProcAddress('glNormal3hNV'); if not Assigned(glNormal3hNV) then Exit; glNormal3hvNV := wglGetProcAddress('glNormal3hvNV'); if not Assigned(glNormal3hvNV) then Exit; glColor3hNV := wglGetProcAddress('glColor3hNV'); if not Assigned(glColor3hNV) then Exit; glColor3hvNV := wglGetProcAddress('glColor3hvNV'); if not Assigned(glColor3hvNV) then Exit; glColor4hNV := wglGetProcAddress('glColor4hNV'); if not Assigned(glColor4hNV) then Exit; glColor4hvNV := wglGetProcAddress('glColor4hvNV'); if not Assigned(glColor4hvNV) then Exit; glTexCoord1hNV := wglGetProcAddress('glTexCoord1hNV'); if not Assigned(glTexCoord1hNV) then Exit; glTexCoord1hvNV := wglGetProcAddress('glTexCoord1hvNV'); if not Assigned(glTexCoord1hvNV) then Exit; glTexCoord2hNV := wglGetProcAddress('glTexCoord2hNV'); if not Assigned(glTexCoord2hNV) then Exit; glTexCoord2hvNV := wglGetProcAddress('glTexCoord2hvNV'); if not Assigned(glTexCoord2hvNV) then Exit; glTexCoord3hNV := wglGetProcAddress('glTexCoord3hNV'); if not Assigned(glTexCoord3hNV) then Exit; glTexCoord3hvNV := wglGetProcAddress('glTexCoord3hvNV'); if not Assigned(glTexCoord3hvNV) then Exit; glTexCoord4hNV := wglGetProcAddress('glTexCoord4hNV'); if not Assigned(glTexCoord4hNV) then Exit; glTexCoord4hvNV := wglGetProcAddress('glTexCoord4hvNV'); if not Assigned(glTexCoord4hvNV) then Exit; glMultiTexCoord1hNV := wglGetProcAddress('glMultiTexCoord1hNV'); if not Assigned(glMultiTexCoord1hNV) then Exit; glMultiTexCoord1hvNV := wglGetProcAddress('glMultiTexCoord1hvNV'); if not Assigned(glMultiTexCoord1hvNV) then Exit; glMultiTexCoord2hNV := wglGetProcAddress('glMultiTexCoord2hNV'); if not Assigned(glMultiTexCoord2hNV) then Exit; glMultiTexCoord2hvNV := wglGetProcAddress('glMultiTexCoord2hvNV'); if not Assigned(glMultiTexCoord2hvNV) then Exit; glMultiTexCoord3hNV := wglGetProcAddress('glMultiTexCoord3hNV'); if not Assigned(glMultiTexCoord3hNV) then Exit; glMultiTexCoord3hvNV := wglGetProcAddress('glMultiTexCoord3hvNV'); if not Assigned(glMultiTexCoord3hvNV) then Exit; glMultiTexCoord4hNV := wglGetProcAddress('glMultiTexCoord4hNV'); if not Assigned(glMultiTexCoord4hNV) then Exit; glMultiTexCoord4hvNV := wglGetProcAddress('glMultiTexCoord4hvNV'); if not Assigned(glMultiTexCoord4hvNV) then Exit; glFogCoordhNV := wglGetProcAddress('glFogCoordhNV'); if not Assigned(glFogCoordhNV) then Exit; glFogCoordhvNV := wglGetProcAddress('glFogCoordhvNV'); if not Assigned(glFogCoordhvNV) then Exit; glSecondaryColor3hNV := wglGetProcAddress('glSecondaryColor3hNV'); if not Assigned(glSecondaryColor3hNV) then Exit; glSecondaryColor3hvNV := wglGetProcAddress('glSecondaryColor3hvNV'); if not Assigned(glSecondaryColor3hvNV) then Exit; glVertexWeighthNV := wglGetProcAddress('glVertexWeighthNV'); if not Assigned(glVertexWeighthNV) then Exit; glVertexWeighthvNV := wglGetProcAddress('glVertexWeighthvNV'); if not Assigned(glVertexWeighthvNV) then Exit; glVertexAttrib1hNV := wglGetProcAddress('glVertexAttrib1hNV'); if not Assigned(glVertexAttrib1hNV) then Exit; glVertexAttrib1hvNV := wglGetProcAddress('glVertexAttrib1hvNV'); if not Assigned(glVertexAttrib1hvNV) then Exit; glVertexAttrib2hNV := wglGetProcAddress('glVertexAttrib2hNV'); if not Assigned(glVertexAttrib2hNV) then Exit; glVertexAttrib2hvNV := wglGetProcAddress('glVertexAttrib2hvNV'); if not Assigned(glVertexAttrib2hvNV) then Exit; glVertexAttrib3hNV := wglGetProcAddress('glVertexAttrib3hNV'); if not Assigned(glVertexAttrib3hNV) then Exit; glVertexAttrib3hvNV := wglGetProcAddress('glVertexAttrib3hvNV'); if not Assigned(glVertexAttrib3hvNV) then Exit; glVertexAttrib4hNV := wglGetProcAddress('glVertexAttrib4hNV'); if not Assigned(glVertexAttrib4hNV) then Exit; glVertexAttrib4hvNV := wglGetProcAddress('glVertexAttrib4hvNV'); if not Assigned(glVertexAttrib4hvNV) then Exit; glVertexAttribs1hvNV := wglGetProcAddress('glVertexAttribs1hvNV'); if not Assigned(glVertexAttribs1hvNV) then Exit; glVertexAttribs2hvNV := wglGetProcAddress('glVertexAttribs2hvNV'); if not Assigned(glVertexAttribs2hvNV) then Exit; glVertexAttribs3hvNV := wglGetProcAddress('glVertexAttribs3hvNV'); if not Assigned(glVertexAttribs3hvNV) then Exit; glVertexAttribs4hvNV := wglGetProcAddress('glVertexAttribs4hvNV'); if not Assigned(glVertexAttribs4hvNV) then Exit; Result := TRUE; end; end; function Load_GL_ATI_map_object_buffer: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_map_object_buffer', extstring) then begin glMapObjectBufferATI := wglGetProcAddress('glMapObjectBufferATI'); if not Assigned(glMapObjectBufferATI) then Exit; glUnmapObjectBufferATI := wglGetProcAddress('glUnmapObjectBufferATI'); if not Assigned(glUnmapObjectBufferATI) then Exit; Result := TRUE; end; end; function Load_GL_ATI_separate_stencil: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_separate_stencil', extstring) then begin glStencilOpSeparateATI := wglGetProcAddress('glStencilOpSeparateATI'); if not Assigned(glStencilOpSeparateATI) then Exit; glStencilFuncSeparateATI := wglGetProcAddress('glStencilFuncSeparateATI'); if not Assigned(glStencilFuncSeparateATI) then Exit; Result := TRUE; end; end; function Load_GL_ATI_vertex_attrib_array_object: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ATI_vertex_attrib_array_object', extstring) then begin glVertexAttribArrayObjectATI := wglGetProcAddress('glVertexAttribArrayObjectATI'); if not Assigned(glVertexAttribArrayObjectATI) then Exit; glGetVertexAttribArrayObjectfvATI := wglGetProcAddress('glGetVertexAttribArrayObjectfvATI'); if not Assigned(glGetVertexAttribArrayObjectfvATI) then Exit; glGetVertexAttribArrayObjectivATI := wglGetProcAddress('glGetVertexAttribArrayObjectivATI'); if not Assigned(glGetVertexAttribArrayObjectivATI) then Exit; Result := TRUE; end; end; function Load_GL_ARB_vertex_buffer_object: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_vertex_buffer_object', extstring) then begin glBindBufferARB := wglGetProcAddress('glBindBufferARB'); if not Assigned(glBindBufferARB) then Exit; glDeleteBuffersARB := wglGetProcAddress('glDeleteBuffersARB'); if not Assigned(glDeleteBuffersARB) then Exit; glGenBuffersARB := wglGetProcAddress('glGenBuffersARB'); if not Assigned(glGenBuffersARB) then Exit; glIsBufferARB := wglGetProcAddress('glIsBufferARB'); if not Assigned(glIsBufferARB) then Exit; glBufferDataARB := wglGetProcAddress('glBufferDataARB'); if not Assigned(glBufferDataARB) then Exit; glBufferSubDataARB := wglGetProcAddress('glBufferSubDataARB'); if not Assigned(glBufferSubDataARB) then Exit; glGetBufferSubDataARB := wglGetProcAddress('glGetBufferSubDataARB'); if not Assigned(glGetBufferSubDataARB) then Exit; glMapBufferARB := wglGetProcAddress('glMapBufferARB'); if not Assigned(glMapBufferARB) then Exit; glUnmapBufferARB := wglGetProcAddress('glUnmapBufferARB'); if not Assigned(glUnmapBufferARB) then Exit; glGetBufferParameterivARB := wglGetProcAddress('glGetBufferParameterivARB'); if not Assigned(glGetBufferParameterivARB) then Exit; glGetBufferPointervARB := wglGetProcAddress('glGetBufferPointervARB'); if not Assigned(glGetBufferPointervARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_occlusion_query: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_occlusion_query', extstring) then begin glGenQueriesARB := wglGetProcAddress('glGenQueriesARB'); if not Assigned(glGenQueriesARB) then Exit; glDeleteQueriesARB := wglGetProcAddress('glDeleteQueriesARB'); if not Assigned(glDeleteQueriesARB) then Exit; glIsQueryARB := wglGetProcAddress('glIsQueryARB'); if not Assigned(glIsQueryARB) then Exit; glBeginQueryARB := wglGetProcAddress('glBeginQueryARB'); if not Assigned(glBeginQueryARB) then Exit; glEndQueryARB := wglGetProcAddress('glEndQueryARB'); if not Assigned(glEndQueryARB) then Exit; glGetQueryivARB := wglGetProcAddress('glGetQueryivARB'); if not Assigned(glGetQueryivARB) then Exit; glGetQueryObjectivARB := wglGetProcAddress('glGetQueryObjectivARB'); if not Assigned(glGetQueryObjectivARB) then Exit; glGetQueryObjectuivARB := wglGetProcAddress('glGetQueryObjectuivARB'); if not Assigned(glGetQueryObjectuivARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_shader_objects: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_shader_objects', extstring) then begin glDeleteObjectARB := wglGetProcAddress('glDeleteObjectARB'); if not Assigned(glDeleteObjectARB) then Exit; glGetHandleARB := wglGetProcAddress('glGetHandleARB'); if not Assigned(glGetHandleARB) then Exit; glDetachObjectARB := wglGetProcAddress('glDetachObjectARB'); if not Assigned(glDetachObjectARB) then Exit; glCreateShaderObjectARB := wglGetProcAddress('glCreateShaderObjectARB'); if not Assigned(glCreateShaderObjectARB) then Exit; glShaderSourceARB := wglGetProcAddress('glShaderSourceARB'); if not Assigned(glShaderSourceARB) then Exit; glCompileShaderARB := wglGetProcAddress('glCompileShaderARB'); if not Assigned(glCompileShaderARB) then Exit; glCreateProgramObjectARB := wglGetProcAddress('glCreateProgramObjectARB'); if not Assigned(glCreateProgramObjectARB) then Exit; glAttachObjectARB := wglGetProcAddress('glAttachObjectARB'); if not Assigned(glAttachObjectARB) then Exit; glLinkProgramARB := wglGetProcAddress('glLinkProgramARB'); if not Assigned(glLinkProgramARB) then Exit; glUseProgramObjectARB := wglGetProcAddress('glUseProgramObjectARB'); if not Assigned(glUseProgramObjectARB) then Exit; glValidateProgramARB := wglGetProcAddress('glValidateProgramARB'); if not Assigned(glValidateProgramARB) then Exit; glUniform1fARB := wglGetProcAddress('glUniform1fARB'); if not Assigned(glUniform1fARB) then Exit; glUniform2fARB := wglGetProcAddress('glUniform2fARB'); if not Assigned(glUniform2fARB) then Exit; glUniform3fARB := wglGetProcAddress('glUniform3fARB'); if not Assigned(glUniform3fARB) then Exit; glUniform4fARB := wglGetProcAddress('glUniform4fARB'); if not Assigned(glUniform4fARB) then Exit; glUniform1iARB := wglGetProcAddress('glUniform1iARB'); if not Assigned(glUniform1iARB) then Exit; glUniform2iARB := wglGetProcAddress('glUniform2iARB'); if not Assigned(glUniform2iARB) then Exit; glUniform3iARB := wglGetProcAddress('glUniform3iARB'); if not Assigned(glUniform3iARB) then Exit; glUniform4iARB := wglGetProcAddress('glUniform4iARB'); if not Assigned(glUniform4iARB) then Exit; glUniform1fvARB := wglGetProcAddress('glUniform1fvARB'); if not Assigned(glUniform1fvARB) then Exit; glUniform2fvARB := wglGetProcAddress('glUniform2fvARB'); if not Assigned(glUniform2fvARB) then Exit; glUniform3fvARB := wglGetProcAddress('glUniform3fvARB'); if not Assigned(glUniform3fvARB) then Exit; glUniform4fvARB := wglGetProcAddress('glUniform4fvARB'); if not Assigned(glUniform4fvARB) then Exit; glUniform1ivARB := wglGetProcAddress('glUniform1ivARB'); if not Assigned(glUniform1ivARB) then Exit; glUniform2ivARB := wglGetProcAddress('glUniform2ivARB'); if not Assigned(glUniform2ivARB) then Exit; glUniform3ivARB := wglGetProcAddress('glUniform3ivARB'); if not Assigned(glUniform3ivARB) then Exit; glUniform4ivARB := wglGetProcAddress('glUniform4ivARB'); if not Assigned(glUniform4ivARB) then Exit; glUniformMatrix2fvARB := wglGetProcAddress('glUniformMatrix2fvARB'); if not Assigned(glUniformMatrix2fvARB) then Exit; glUniformMatrix3fvARB := wglGetProcAddress('glUniformMatrix3fvARB'); if not Assigned(glUniformMatrix3fvARB) then Exit; glUniformMatrix4fvARB := wglGetProcAddress('glUniformMatrix4fvARB'); if not Assigned(glUniformMatrix4fvARB) then Exit; glGetObjectParameterfvARB := wglGetProcAddress('glGetObjectParameterfvARB'); if not Assigned(glGetObjectParameterfvARB) then Exit; glGetObjectParameterivARB := wglGetProcAddress('glGetObjectParameterivARB'); if not Assigned(glGetObjectParameterivARB) then Exit; glGetInfoLogARB := wglGetProcAddress('glGetInfoLogARB'); if not Assigned(glGetInfoLogARB) then Exit; glGetAttachedObjectsARB := wglGetProcAddress('glGetAttachedObjectsARB'); if not Assigned(glGetAttachedObjectsARB) then Exit; glGetUniformLocationARB := wglGetProcAddress('glGetUniformLocationARB'); if not Assigned(glGetUniformLocationARB) then Exit; glGetActiveUniformARB := wglGetProcAddress('glGetActiveUniformARB'); if not Assigned(glGetActiveUniformARB) then Exit; glGetUniformfvARB := wglGetProcAddress('glGetUniformfvARB'); if not Assigned(glGetUniformfvARB) then Exit; glGetUniformivARB := wglGetProcAddress('glGetUniformivARB'); if not Assigned(glGetUniformivARB) then Exit; glGetShaderSourceARB := wglGetProcAddress('glGetShaderSourceARB'); if not Assigned(glGetShaderSourceARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_vertex_shader: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_vertex_shader', extstring) then begin glVertexAttrib1fARB := wglGetProcAddress('glVertexAttrib1fARB'); if not Assigned(glVertexAttrib1fARB) then Exit; glVertexAttrib1sARB := wglGetProcAddress('glVertexAttrib1sARB'); if not Assigned(glVertexAttrib1sARB) then Exit; glVertexAttrib1dARB := wglGetProcAddress('glVertexAttrib1dARB'); if not Assigned(glVertexAttrib1dARB) then Exit; glVertexAttrib2fARB := wglGetProcAddress('glVertexAttrib2fARB'); if not Assigned(glVertexAttrib2fARB) then Exit; glVertexAttrib2sARB := wglGetProcAddress('glVertexAttrib2sARB'); if not Assigned(glVertexAttrib2sARB) then Exit; glVertexAttrib2dARB := wglGetProcAddress('glVertexAttrib2dARB'); if not Assigned(glVertexAttrib2dARB) then Exit; glVertexAttrib3fARB := wglGetProcAddress('glVertexAttrib3fARB'); if not Assigned(glVertexAttrib3fARB) then Exit; glVertexAttrib3sARB := wglGetProcAddress('glVertexAttrib3sARB'); if not Assigned(glVertexAttrib3sARB) then Exit; glVertexAttrib3dARB := wglGetProcAddress('glVertexAttrib3dARB'); if not Assigned(glVertexAttrib3dARB) then Exit; glVertexAttrib4fARB := wglGetProcAddress('glVertexAttrib4fARB'); if not Assigned(glVertexAttrib4fARB) then Exit; glVertexAttrib4sARB := wglGetProcAddress('glVertexAttrib4sARB'); if not Assigned(glVertexAttrib4sARB) then Exit; glVertexAttrib4dARB := wglGetProcAddress('glVertexAttrib4dARB'); if not Assigned(glVertexAttrib4dARB) then Exit; glVertexAttrib4NubARB := wglGetProcAddress('glVertexAttrib4NubARB'); if not Assigned(glVertexAttrib4NubARB) then Exit; glVertexAttrib1fvARB := wglGetProcAddress('glVertexAttrib1fvARB'); if not Assigned(glVertexAttrib1fvARB) then Exit; glVertexAttrib1svARB := wglGetProcAddress('glVertexAttrib1svARB'); if not Assigned(glVertexAttrib1svARB) then Exit; glVertexAttrib1dvARB := wglGetProcAddress('glVertexAttrib1dvARB'); if not Assigned(glVertexAttrib1dvARB) then Exit; glVertexAttrib2fvARB := wglGetProcAddress('glVertexAttrib2fvARB'); if not Assigned(glVertexAttrib2fvARB) then Exit; glVertexAttrib2svARB := wglGetProcAddress('glVertexAttrib2svARB'); if not Assigned(glVertexAttrib2svARB) then Exit; glVertexAttrib2dvARB := wglGetProcAddress('glVertexAttrib2dvARB'); if not Assigned(glVertexAttrib2dvARB) then Exit; glVertexAttrib3fvARB := wglGetProcAddress('glVertexAttrib3fvARB'); if not Assigned(glVertexAttrib3fvARB) then Exit; glVertexAttrib3svARB := wglGetProcAddress('glVertexAttrib3svARB'); if not Assigned(glVertexAttrib3svARB) then Exit; glVertexAttrib3dvARB := wglGetProcAddress('glVertexAttrib3dvARB'); if not Assigned(glVertexAttrib3dvARB) then Exit; glVertexAttrib4fvARB := wglGetProcAddress('glVertexAttrib4fvARB'); if not Assigned(glVertexAttrib4fvARB) then Exit; glVertexAttrib4svARB := wglGetProcAddress('glVertexAttrib4svARB'); if not Assigned(glVertexAttrib4svARB) then Exit; glVertexAttrib4dvARB := wglGetProcAddress('glVertexAttrib4dvARB'); if not Assigned(glVertexAttrib4dvARB) then Exit; glVertexAttrib4ivARB := wglGetProcAddress('glVertexAttrib4ivARB'); if not Assigned(glVertexAttrib4ivARB) then Exit; glVertexAttrib4bvARB := wglGetProcAddress('glVertexAttrib4bvARB'); if not Assigned(glVertexAttrib4bvARB) then Exit; glVertexAttrib4ubvARB := wglGetProcAddress('glVertexAttrib4ubvARB'); if not Assigned(glVertexAttrib4ubvARB) then Exit; glVertexAttrib4usvARB := wglGetProcAddress('glVertexAttrib4usvARB'); if not Assigned(glVertexAttrib4usvARB) then Exit; glVertexAttrib4uivARB := wglGetProcAddress('glVertexAttrib4uivARB'); if not Assigned(glVertexAttrib4uivARB) then Exit; glVertexAttrib4NbvARB := wglGetProcAddress('glVertexAttrib4NbvARB'); if not Assigned(glVertexAttrib4NbvARB) then Exit; glVertexAttrib4NsvARB := wglGetProcAddress('glVertexAttrib4NsvARB'); if not Assigned(glVertexAttrib4NsvARB) then Exit; glVertexAttrib4NivARB := wglGetProcAddress('glVertexAttrib4NivARB'); if not Assigned(glVertexAttrib4NivARB) then Exit; glVertexAttrib4NubvARB := wglGetProcAddress('glVertexAttrib4NubvARB'); if not Assigned(glVertexAttrib4NubvARB) then Exit; glVertexAttrib4NusvARB := wglGetProcAddress('glVertexAttrib4NusvARB'); if not Assigned(glVertexAttrib4NusvARB) then Exit; glVertexAttrib4NuivARB := wglGetProcAddress('glVertexAttrib4NuivARB'); if not Assigned(glVertexAttrib4NuivARB) then Exit; glVertexAttribPointerARB := wglGetProcAddress('glVertexAttribPointerARB'); if not Assigned(glVertexAttribPointerARB) then Exit; glEnableVertexAttribArrayARB := wglGetProcAddress('glEnableVertexAttribArrayARB'); if not Assigned(glEnableVertexAttribArrayARB) then Exit; glDisableVertexAttribArrayARB := wglGetProcAddress('glDisableVertexAttribArrayARB'); if not Assigned(glDisableVertexAttribArrayARB) then Exit; glBindAttribLocationARB := wglGetProcAddress('glBindAttribLocationARB'); if not Assigned(glBindAttribLocationARB) then Exit; glGetActiveAttribARB := wglGetProcAddress('glGetActiveAttribARB'); if not Assigned(glGetActiveAttribARB) then Exit; glGetAttribLocationARB := wglGetProcAddress('glGetAttribLocationARB'); if not Assigned(glGetAttribLocationARB) then Exit; glGetVertexAttribdvARB := wglGetProcAddress('glGetVertexAttribdvARB'); if not Assigned(glGetVertexAttribdvARB) then Exit; glGetVertexAttribfvARB := wglGetProcAddress('glGetVertexAttribfvARB'); if not Assigned(glGetVertexAttribfvARB) then Exit; glGetVertexAttribivARB := wglGetProcAddress('glGetVertexAttribivARB'); if not Assigned(glGetVertexAttribivARB) then Exit; glGetVertexAttribPointervARB := wglGetProcAddress('glGetVertexAttribPointervARB'); if not Assigned(glGetVertexAttribPointervARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_fragment_shader: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_fragment_shader', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_shading_language_100: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_shading_language_100', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_texture_non_power_of_two: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_non_power_of_two', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_point_sprite: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_point_sprite', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_depth_bounds_test: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_depth_bounds_test', extstring) then begin glDepthBoundsEXT := wglGetProcAddress('glDepthBoundsEXT'); if not Assigned(glDepthBoundsEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_secondary_color: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_secondary_color', extstring) then begin glSecondaryColor3bEXT := wglGetProcAddress('glSecondaryColor3bEXT'); if not Assigned(glSecondaryColor3bEXT) then Exit; glSecondaryColor3sEXT := wglGetProcAddress('glSecondaryColor3sEXT'); if not Assigned(glSecondaryColor3sEXT) then Exit; glSecondaryColor3iEXT := wglGetProcAddress('glSecondaryColor3iEXT'); if not Assigned(glSecondaryColor3iEXT) then Exit; glSecondaryColor3fEXT := wglGetProcAddress('glSecondaryColor3fEXT'); if not Assigned(glSecondaryColor3fEXT) then Exit; glSecondaryColor3dEXT := wglGetProcAddress('glSecondaryColor3dEXT'); if not Assigned(glSecondaryColor3dEXT) then Exit; glSecondaryColor3ubEXT := wglGetProcAddress('glSecondaryColor3ubEXT'); if not Assigned(glSecondaryColor3ubEXT) then Exit; glSecondaryColor3usEXT := wglGetProcAddress('glSecondaryColor3usEXT'); if not Assigned(glSecondaryColor3usEXT) then Exit; glSecondaryColor3uiEXT := wglGetProcAddress('glSecondaryColor3uiEXT'); if not Assigned(glSecondaryColor3uiEXT) then Exit; glSecondaryColor3bvEXT := wglGetProcAddress('glSecondaryColor3bvEXT'); if not Assigned(glSecondaryColor3bvEXT) then Exit; glSecondaryColor3svEXT := wglGetProcAddress('glSecondaryColor3svEXT'); if not Assigned(glSecondaryColor3svEXT) then Exit; glSecondaryColor3ivEXT := wglGetProcAddress('glSecondaryColor3ivEXT'); if not Assigned(glSecondaryColor3ivEXT) then Exit; glSecondaryColor3fvEXT := wglGetProcAddress('glSecondaryColor3fvEXT'); if not Assigned(glSecondaryColor3fvEXT) then Exit; glSecondaryColor3dvEXT := wglGetProcAddress('glSecondaryColor3dvEXT'); if not Assigned(glSecondaryColor3dvEXT) then Exit; glSecondaryColor3ubvEXT := wglGetProcAddress('glSecondaryColor3ubvEXT'); if not Assigned(glSecondaryColor3ubvEXT) then Exit; glSecondaryColor3usvEXT := wglGetProcAddress('glSecondaryColor3usvEXT'); if not Assigned(glSecondaryColor3usvEXT) then Exit; glSecondaryColor3uivEXT := wglGetProcAddress('glSecondaryColor3uivEXT'); if not Assigned(glSecondaryColor3uivEXT) then Exit; glSecondaryColorPointerEXT := wglGetProcAddress('glSecondaryColorPointerEXT'); if not Assigned(glSecondaryColorPointerEXT) then Exit; Result := TRUE; end; end; function Load_GL_EXT_texture_mirror_clamp: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture_mirror_clamp', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_blend_equation_separate: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_blend_equation_separate', extstring) then begin glBlendEquationSeparateEXT := wglGetProcAddress('glBlendEquationSeparateEXT'); if not Assigned(glBlendEquationSeparateEXT) then Exit; Result := TRUE; end; end; function Load_GL_MESA_pack_invert: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_MESA_pack_invert', extstring) then begin Result := TRUE; end; end; function Load_GL_MESA_ycbcr_texture: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_MESA_ycbcr_texture', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_fragment_program_shadow: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_fragment_program_shadow', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_fog_coord: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_fog_coord', extstring) then begin glFogCoordfEXT := wglGetProcAddress('glFogCoordfEXT'); if not Assigned(glFogCoordfEXT) then Exit; glFogCoorddEXT := wglGetProcAddress('glFogCoorddEXT'); if not Assigned(glFogCoorddEXT) then Exit; glFogCoordfvEXT := wglGetProcAddress('glFogCoordfvEXT'); if not Assigned(glFogCoordfvEXT) then Exit; glFogCoorddvEXT := wglGetProcAddress('glFogCoorddvEXT'); if not Assigned(glFogCoorddvEXT) then Exit; glFogCoordPointerEXT := wglGetProcAddress('glFogCoordPointerEXT'); if not Assigned(glFogCoordPointerEXT) then Exit; Result := TRUE; end; end; function Load_GL_NV_fragment_program_option: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_fragment_program_option', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_pixel_buffer_object: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_pixel_buffer_object', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_fragment_program2: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_fragment_program2', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_vertex_program2_option: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_vertex_program2_option', extstring) then begin Result := TRUE; end; end; function Load_GL_NV_vertex_program3: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_NV_vertex_program3', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_draw_buffers: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_draw_buffers', extstring) then begin glDrawBuffersARB := wglGetProcAddress('glDrawBuffersARB'); if not Assigned(glDrawBuffersARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_texture_rectangle: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_rectangle', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_color_buffer_float: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_color_buffer_float', extstring) then begin glClampColorARB := wglGetProcAddress('glClampColorARB'); if not Assigned(glClampColorARB) then Exit; Result := TRUE; end; end; function Load_GL_ARB_half_float_pixel: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_half_float_pixel', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_texture_float: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_texture_float', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_texture_compression_dxt1: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_texture_compression_dxt1', extstring) then begin Result := TRUE; end; end; function Load_GL_ARB_pixel_buffer_object: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_ARB_pixel_buffer_object', extstring) then begin Result := TRUE; end; end; function Load_GL_EXT_framebuffer_object: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); if glext_ExtensionSupported('GL_EXT_framebuffer_object', extstring) then begin glIsRenderbufferEXT := wglGetProcAddress('glIsRenderbufferEXT'); if not Assigned(glIsRenderbufferEXT) then Exit; glBindRenderbufferEXT := wglGetProcAddress('glBindRenderbufferEXT'); if not Assigned(glBindRenderbufferEXT) then Exit; glDeleteRenderbuffersEXT := wglGetProcAddress('glDeleteRenderbuffersEXT'); if not Assigned(glDeleteRenderbuffersEXT) then Exit; glGenRenderbuffersEXT := wglGetProcAddress('glGenRenderbuffersEXT'); if not Assigned(glGenRenderbuffersEXT) then Exit; glRenderbufferStorageEXT := wglGetProcAddress('glRenderbufferStorageEXT'); if not Assigned(glRenderbufferStorageEXT) then Exit; glGetRenderbufferParameterivEXT := wglGetProcAddress('glGetRenderbufferParameterivEXT'); if not Assigned(glGetRenderbufferParameterivEXT) then Exit; glIsFramebufferEXT := wglGetProcAddress('glIsFramebufferEXT'); if not Assigned(glIsFramebufferEXT) then Exit; glBindFramebufferEXT := wglGetProcAddress('glBindFramebufferEXT'); if not Assigned(glBindFramebufferEXT) then Exit; glDeleteFramebuffersEXT := wglGetProcAddress('glDeleteFramebuffersEXT'); if not Assigned(glDeleteFramebuffersEXT) then Exit; glGenFramebuffersEXT := wglGetProcAddress('glGenFramebuffersEXT'); if not Assigned(glGenFramebuffersEXT) then Exit; glCheckFramebufferStatusEXT := wglGetProcAddress('glCheckFramebufferStatusEXT'); if not Assigned(glCheckFramebufferStatusEXT) then Exit; glFramebufferTexture1DEXT := wglGetProcAddress('glFramebufferTexture1DEXT'); if not Assigned(glFramebufferTexture1DEXT) then Exit; glFramebufferTexture2DEXT := wglGetProcAddress('glFramebufferTexture2DEXT'); if not Assigned(glFramebufferTexture2DEXT) then Exit; glFramebufferTexture3DEXT := wglGetProcAddress('glFramebufferTexture3DEXT'); if not Assigned(glFramebufferTexture3DEXT) then Exit; glFramebufferRenderbufferEXT := wglGetProcAddress('glFramebufferRenderbufferEXT'); if not Assigned(glFramebufferRenderbufferEXT) then Exit; glGetFramebufferAttachmentParameterivEXT := wglGetProcAddress('glGetFramebufferAttachmentParameterivEXT'); if not Assigned(glGetFramebufferAttachmentParameterivEXT) then Exit; glGenerateMipmapEXT := wglGetProcAddress('glGenerateMipmapEXT'); if not Assigned(glGenerateMipmapEXT) then Exit; Result := TRUE; end; end; function Load_GL_version_1_4: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); glBlendFuncSeparate := wglGetProcAddress('glBlendFuncSeparate'); if not Assigned(glBlendFuncSeparate) then Exit; glFogCoordf := wglGetProcAddress('glFogCoordf'); if not Assigned(glFogCoordf) then Exit; glFogCoordfv := wglGetProcAddress('glFogCoordfv'); if not Assigned(glFogCoordfv) then Exit; glFogCoordd := wglGetProcAddress('glFogCoordd'); if not Assigned(glFogCoordd) then Exit; glFogCoorddv := wglGetProcAddress('glFogCoorddv'); if not Assigned(glFogCoorddv) then Exit; glFogCoordPointer := wglGetProcAddress('glFogCoordPointer'); if not Assigned(glFogCoordPointer) then Exit; glMultiDrawArrays := wglGetProcAddress('glMultiDrawArrays'); if not Assigned(glMultiDrawArrays) then Exit; glMultiDrawElements := wglGetProcAddress('glMultiDrawElements'); if not Assigned(glMultiDrawElements) then Exit; glPointParameterf := wglGetProcAddress('glPointParameterf'); if not Assigned(glPointParameterf) then Exit; glPointParameterfv := wglGetProcAddress('glPointParameterfv'); if not Assigned(glPointParameterfv) then Exit; glPointParameteri := wglGetProcAddress('glPointParameteri'); if not Assigned(glPointParameteri) then Exit; glPointParameteriv := wglGetProcAddress('glPointParameteriv'); if not Assigned(glPointParameteriv) then Exit; glSecondaryColor3b := wglGetProcAddress('glSecondaryColor3b'); if not Assigned(glSecondaryColor3b) then Exit; glSecondaryColor3bv := wglGetProcAddress('glSecondaryColor3bv'); if not Assigned(glSecondaryColor3bv) then Exit; glSecondaryColor3d := wglGetProcAddress('glSecondaryColor3d'); if not Assigned(glSecondaryColor3d) then Exit; glSecondaryColor3dv := wglGetProcAddress('glSecondaryColor3dv'); if not Assigned(glSecondaryColor3dv) then Exit; glSecondaryColor3f := wglGetProcAddress('glSecondaryColor3f'); if not Assigned(glSecondaryColor3f) then Exit; glSecondaryColor3fv := wglGetProcAddress('glSecondaryColor3fv'); if not Assigned(glSecondaryColor3fv) then Exit; glSecondaryColor3i := wglGetProcAddress('glSecondaryColor3i'); if not Assigned(glSecondaryColor3i) then Exit; glSecondaryColor3iv := wglGetProcAddress('glSecondaryColor3iv'); if not Assigned(glSecondaryColor3iv) then Exit; glSecondaryColor3s := wglGetProcAddress('glSecondaryColor3s'); if not Assigned(glSecondaryColor3s) then Exit; glSecondaryColor3sv := wglGetProcAddress('glSecondaryColor3sv'); if not Assigned(glSecondaryColor3sv) then Exit; glSecondaryColor3ub := wglGetProcAddress('glSecondaryColor3ub'); if not Assigned(glSecondaryColor3ub) then Exit; glSecondaryColor3ubv := wglGetProcAddress('glSecondaryColor3ubv'); if not Assigned(glSecondaryColor3ubv) then Exit; glSecondaryColor3ui := wglGetProcAddress('glSecondaryColor3ui'); if not Assigned(glSecondaryColor3ui) then Exit; glSecondaryColor3uiv := wglGetProcAddress('glSecondaryColor3uiv'); if not Assigned(glSecondaryColor3uiv) then Exit; glSecondaryColor3us := wglGetProcAddress('glSecondaryColor3us'); if not Assigned(glSecondaryColor3us) then Exit; glSecondaryColor3usv := wglGetProcAddress('glSecondaryColor3usv'); if not Assigned(glSecondaryColor3usv) then Exit; glSecondaryColorPointer := wglGetProcAddress('glSecondaryColorPointer'); if not Assigned(glSecondaryColorPointer) then Exit; glWindowPos2d := wglGetProcAddress('glWindowPos2d'); if not Assigned(glWindowPos2d) then Exit; glWindowPos2dv := wglGetProcAddress('glWindowPos2dv'); if not Assigned(glWindowPos2dv) then Exit; glWindowPos2f := wglGetProcAddress('glWindowPos2f'); if not Assigned(glWindowPos2f) then Exit; glWindowPos2fv := wglGetProcAddress('glWindowPos2fv'); if not Assigned(glWindowPos2fv) then Exit; glWindowPos2i := wglGetProcAddress('glWindowPos2i'); if not Assigned(glWindowPos2i) then Exit; glWindowPos2iv := wglGetProcAddress('glWindowPos2iv'); if not Assigned(glWindowPos2iv) then Exit; glWindowPos2s := wglGetProcAddress('glWindowPos2s'); if not Assigned(glWindowPos2s) then Exit; glWindowPos2sv := wglGetProcAddress('glWindowPos2sv'); if not Assigned(glWindowPos2sv) then Exit; glWindowPos3d := wglGetProcAddress('glWindowPos3d'); if not Assigned(glWindowPos3d) then Exit; glWindowPos3dv := wglGetProcAddress('glWindowPos3dv'); if not Assigned(glWindowPos3dv) then Exit; glWindowPos3f := wglGetProcAddress('glWindowPos3f'); if not Assigned(glWindowPos3f) then Exit; glWindowPos3fv := wglGetProcAddress('glWindowPos3fv'); if not Assigned(glWindowPos3fv) then Exit; glWindowPos3i := wglGetProcAddress('glWindowPos3i'); if not Assigned(glWindowPos3i) then Exit; glWindowPos3iv := wglGetProcAddress('glWindowPos3iv'); if not Assigned(glWindowPos3iv) then Exit; glWindowPos3s := wglGetProcAddress('glWindowPos3s'); if not Assigned(glWindowPos3s) then Exit; glWindowPos3sv := wglGetProcAddress('glWindowPos3sv'); if not Assigned(glWindowPos3sv) then Exit; Result := TRUE; end; function Load_GL_version_1_5: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); glGenQueries := wglGetProcAddress('glGenQueries'); if not Assigned(glGenQueries) then Exit; glDeleteQueries := wglGetProcAddress('glDeleteQueries'); if not Assigned(glDeleteQueries) then Exit; glIsQuery := wglGetProcAddress('glIsQuery'); if not Assigned(glIsQuery) then Exit; glBeginQuery := wglGetProcAddress('glBeginQuery'); if not Assigned(glBeginQuery) then Exit; glEndQuery := wglGetProcAddress('glEndQuery'); if not Assigned(glEndQuery) then Exit; glGetQueryiv := wglGetProcAddress('glGetQueryiv'); if not Assigned(glGetQueryiv) then Exit; glGetQueryObjectiv := wglGetProcAddress('glGetQueryObjectiv'); if not Assigned(glGetQueryObjectiv) then Exit; glGetQueryObjectuiv := wglGetProcAddress('glGetQueryObjectuiv'); if not Assigned(glGetQueryObjectuiv) then Exit; glBindBuffer := wglGetProcAddress('glBindBuffer'); if not Assigned(glBindBuffer) then Exit; glDeleteBuffers := wglGetProcAddress('glDeleteBuffers'); if not Assigned(glDeleteBuffers) then Exit; glGenBuffers := wglGetProcAddress('glGenBuffers'); if not Assigned(glGenBuffers) then Exit; glIsBuffer := wglGetProcAddress('glIsBuffer'); if not Assigned(glIsBuffer) then Exit; glBufferData := wglGetProcAddress('glBufferData'); if not Assigned(glBufferData) then Exit; glBufferSubData := wglGetProcAddress('glBufferSubData'); if not Assigned(glBufferSubData) then Exit; glGetBufferSubData := wglGetProcAddress('glGetBufferSubData'); if not Assigned(glGetBufferSubData) then Exit; glMapBuffer := wglGetProcAddress('glMapBuffer'); if not Assigned(glMapBuffer) then Exit; glUnmapBuffer := wglGetProcAddress('glUnmapBuffer'); if not Assigned(glUnmapBuffer) then Exit; glGetBufferParameteriv := wglGetProcAddress('glGetBufferParameteriv'); if not Assigned(glGetBufferParameteriv) then Exit; glGetBufferPointerv := wglGetProcAddress('glGetBufferPointerv'); if not Assigned(glGetBufferPointerv) then Exit; Result := TRUE; end; function Load_GL_version_2_0: Boolean; var extstring: String; begin Result := FALSE; extstring := String(PChar(glGetString(GL_EXTENSIONS))); glBlendEquationSeparate := wglGetProcAddress('glBlendEquationSeparate'); if not Assigned(glBlendEquationSeparate) then Exit; glDrawBuffers := wglGetProcAddress('glDrawBuffers'); if not Assigned(glDrawBuffers) then Exit; glStencilOpSeparate := wglGetProcAddress('glStencilOpSeparate'); if not Assigned(glStencilOpSeparate) then Exit; glStencilFuncSeparate := wglGetProcAddress('glStencilFuncSeparate'); if not Assigned(glStencilFuncSeparate) then Exit; glStencilMaskSeparate := wglGetProcAddress('glStencilMaskSeparate'); if not Assigned(glStencilMaskSeparate) then Exit; glAttachShader := wglGetProcAddress('glAttachShader'); if not Assigned(glAttachShader) then Exit; glBindAttribLocation := wglGetProcAddress('glBindAttribLocation'); if not Assigned(glBindAttribLocation) then Exit; glCompileShader := wglGetProcAddress('glCompileShader'); if not Assigned(glCompileShader) then Exit; glCreateProgram := wglGetProcAddress('glCreateProgram'); if not Assigned(glCreateProgram) then Exit; glCreateShader := wglGetProcAddress('glCreateShader'); if not Assigned(glCreateShader) then Exit; glDeleteProgram := wglGetProcAddress('glDeleteProgram'); if not Assigned(glDeleteProgram) then Exit; glDeleteShader := wglGetProcAddress('glDeleteShader'); if not Assigned(glDeleteShader) then Exit; glDetachShader := wglGetProcAddress('glDetachShader'); if not Assigned(glDetachShader) then Exit; glDisableVertexAttribArray := wglGetProcAddress('glDisableVertexAttribArray'); if not Assigned(glDisableVertexAttribArray) then Exit; glEnableVertexAttribArray := wglGetProcAddress('glEnableVertexAttribArray'); if not Assigned(glEnableVertexAttribArray) then Exit; glGetActiveAttrib := wglGetProcAddress('glGetActiveAttrib'); if not Assigned(glGetActiveAttrib) then Exit; glGetActiveUniform := wglGetProcAddress('glGetActiveUniform'); if not Assigned(glGetActiveUniform) then Exit; glGetAttachedShaders := wglGetProcAddress('glGetAttachedShaders'); if not Assigned(glGetAttachedShaders) then Exit; glGetAttribLocation := wglGetProcAddress('glGetAttribLocation'); if not Assigned(glGetAttribLocation) then Exit; glGetProgramiv := wglGetProcAddress('glGetProgramiv'); if not Assigned(glGetProgramiv) then Exit; glGetProgramInfoLog := wglGetProcAddress('glGetProgramInfoLog'); if not Assigned(glGetProgramInfoLog) then Exit; glGetShaderiv := wglGetProcAddress('glGetShaderiv'); if not Assigned(glGetShaderiv) then Exit; glGetShaderInfoLog := wglGetProcAddress('glGetShaderInfoLog'); if not Assigned(glGetShaderInfoLog) then Exit; glGetShaderSource := wglGetProcAddress('glGetShaderSource'); if not Assigned(glGetShaderSource) then Exit; glGetUniformLocation := wglGetProcAddress('glGetUniformLocation'); if not Assigned(glGetUniformLocation) then Exit; glGetUniformfv := wglGetProcAddress('glGetUniformfv'); if not Assigned(glGetUniformfv) then Exit; glGetUniformiv := wglGetProcAddress('glGetUniformiv'); if not Assigned(glGetUniformiv) then Exit; glGetVertexAttribdv := wglGetProcAddress('glGetVertexAttribdv'); if not Assigned(glGetVertexAttribdv) then Exit; glGetVertexAttribfv := wglGetProcAddress('glGetVertexAttribfv'); if not Assigned(glGetVertexAttribfv) then Exit; glGetVertexAttribiv := wglGetProcAddress('glGetVertexAttribiv'); if not Assigned(glGetVertexAttribiv) then Exit; glGetVertexAttribPointerv := wglGetProcAddress('glGetVertexAttribPointerv'); if not Assigned(glGetVertexAttribPointerv) then Exit; glIsProgram := wglGetProcAddress('glIsProgram'); if not Assigned(glIsProgram) then Exit; glIsShader := wglGetProcAddress('glIsShader'); if not Assigned(glIsShader) then Exit; glLinkProgram := wglGetProcAddress('glLinkProgram'); if not Assigned(glLinkProgram) then Exit; glShaderSource := wglGetProcAddress('glShaderSource'); if not Assigned(glShaderSource) then Exit; glUseProgram := wglGetProcAddress('glUseProgram'); if not Assigned(glUseProgram) then Exit; glUniform1f := wglGetProcAddress('glUniform1f'); if not Assigned(glUniform1f) then Exit; glUniform2f := wglGetProcAddress('glUniform2f'); if not Assigned(glUniform2f) then Exit; glUniform3f := wglGetProcAddress('glUniform3f'); if not Assigned(glUniform3f) then Exit; glUniform4f := wglGetProcAddress('glUniform4f'); if not Assigned(glUniform4f) then Exit; glUniform1i := wglGetProcAddress('glUniform1i'); if not Assigned(glUniform1i) then Exit; glUniform2i := wglGetProcAddress('glUniform2i'); if not Assigned(glUniform2i) then Exit; glUniform3i := wglGetProcAddress('glUniform3i'); if not Assigned(glUniform3i) then Exit; glUniform4i := wglGetProcAddress('glUniform4i'); if not Assigned(glUniform4i) then Exit; glUniform1fv := wglGetProcAddress('glUniform1fv'); if not Assigned(glUniform1fv) then Exit; glUniform2fv := wglGetProcAddress('glUniform2fv'); if not Assigned(glUniform2fv) then Exit; glUniform3fv := wglGetProcAddress('glUniform3fv'); if not Assigned(glUniform3fv) then Exit; glUniform4fv := wglGetProcAddress('glUniform4fv'); if not Assigned(glUniform4fv) then Exit; glUniform1iv := wglGetProcAddress('glUniform1iv'); if not Assigned(glUniform1iv) then Exit; glUniform2iv := wglGetProcAddress('glUniform2iv'); if not Assigned(glUniform2iv) then Exit; glUniform3iv := wglGetProcAddress('glUniform3iv'); if not Assigned(glUniform3iv) then Exit; glUniform4iv := wglGetProcAddress('glUniform4iv'); if not Assigned(glUniform4iv) then Exit; glUniformMatrix2fv := wglGetProcAddress('glUniformMatrix2fv'); if not Assigned(glUniformMatrix2fv) then Exit; glUniformMatrix3fv := wglGetProcAddress('glUniformMatrix3fv'); if not Assigned(glUniformMatrix3fv) then Exit; glUniformMatrix4fv := wglGetProcAddress('glUniformMatrix4fv'); if not Assigned(glUniformMatrix4fv) then Exit; glValidateProgram := wglGetProcAddress('glValidateProgram'); if not Assigned(glValidateProgram) then Exit; glVertexAttrib1d := wglGetProcAddress('glVertexAttrib1d'); if not Assigned(glVertexAttrib1d) then Exit; glVertexAttrib1dv := wglGetProcAddress('glVertexAttrib1dv'); if not Assigned(glVertexAttrib1dv) then Exit; glVertexAttrib1f := wglGetProcAddress('glVertexAttrib1f'); if not Assigned(glVertexAttrib1f) then Exit; glVertexAttrib1fv := wglGetProcAddress('glVertexAttrib1fv'); if not Assigned(glVertexAttrib1fv) then Exit; glVertexAttrib1s := wglGetProcAddress('glVertexAttrib1s'); if not Assigned(glVertexAttrib1s) then Exit; glVertexAttrib1sv := wglGetProcAddress('glVertexAttrib1sv'); if not Assigned(glVertexAttrib1sv) then Exit; glVertexAttrib2d := wglGetProcAddress('glVertexAttrib2d'); if not Assigned(glVertexAttrib2d) then Exit; glVertexAttrib2dv := wglGetProcAddress('glVertexAttrib2dv'); if not Assigned(glVertexAttrib2dv) then Exit; glVertexAttrib2f := wglGetProcAddress('glVertexAttrib2f'); if not Assigned(glVertexAttrib2f) then Exit; glVertexAttrib2fv := wglGetProcAddress('glVertexAttrib2fv'); if not Assigned(glVertexAttrib2fv) then Exit; glVertexAttrib2s := wglGetProcAddress('glVertexAttrib2s'); if not Assigned(glVertexAttrib2s) then Exit; glVertexAttrib2sv := wglGetProcAddress('glVertexAttrib2sv'); if not Assigned(glVertexAttrib2sv) then Exit; glVertexAttrib3d := wglGetProcAddress('glVertexAttrib3d'); if not Assigned(glVertexAttrib3d) then Exit; glVertexAttrib3dv := wglGetProcAddress('glVertexAttrib3dv'); if not Assigned(glVertexAttrib3dv) then Exit; glVertexAttrib3f := wglGetProcAddress('glVertexAttrib3f'); if not Assigned(glVertexAttrib3f) then Exit; glVertexAttrib3fv := wglGetProcAddress('glVertexAttrib3fv'); if not Assigned(glVertexAttrib3fv) then Exit; glVertexAttrib3s := wglGetProcAddress('glVertexAttrib3s'); if not Assigned(glVertexAttrib3s) then Exit; glVertexAttrib3sv := wglGetProcAddress('glVertexAttrib3sv'); if not Assigned(glVertexAttrib3sv) then Exit; glVertexAttrib4Nbv := wglGetProcAddress('glVertexAttrib4Nbv'); if not Assigned(glVertexAttrib4Nbv) then Exit; glVertexAttrib4Niv := wglGetProcAddress('glVertexAttrib4Niv'); if not Assigned(glVertexAttrib4Niv) then Exit; glVertexAttrib4Nsv := wglGetProcAddress('glVertexAttrib4Nsv'); if not Assigned(glVertexAttrib4Nsv) then Exit; glVertexAttrib4Nub := wglGetProcAddress('glVertexAttrib4Nub'); if not Assigned(glVertexAttrib4Nub) then Exit; glVertexAttrib4Nubv := wglGetProcAddress('glVertexAttrib4Nubv'); if not Assigned(glVertexAttrib4Nubv) then Exit; glVertexAttrib4Nuiv := wglGetProcAddress('glVertexAttrib4Nuiv'); if not Assigned(glVertexAttrib4Nuiv) then Exit; glVertexAttrib4Nusv := wglGetProcAddress('glVertexAttrib4Nusv'); if not Assigned(glVertexAttrib4Nusv) then Exit; glVertexAttrib4bv := wglGetProcAddress('glVertexAttrib4bv'); if not Assigned(glVertexAttrib4bv) then Exit; glVertexAttrib4d := wglGetProcAddress('glVertexAttrib4d'); if not Assigned(glVertexAttrib4d) then Exit; glVertexAttrib4dv := wglGetProcAddress('glVertexAttrib4dv'); if not Assigned(glVertexAttrib4dv) then Exit; glVertexAttrib4f := wglGetProcAddress('glVertexAttrib4f'); if not Assigned(glVertexAttrib4f) then Exit; glVertexAttrib4fv := wglGetProcAddress('glVertexAttrib4fv'); if not Assigned(glVertexAttrib4fv) then Exit; glVertexAttrib4iv := wglGetProcAddress('glVertexAttrib4iv'); if not Assigned(glVertexAttrib4iv) then Exit; glVertexAttrib4s := wglGetProcAddress('glVertexAttrib4s'); if not Assigned(glVertexAttrib4s) then Exit; glVertexAttrib4sv := wglGetProcAddress('glVertexAttrib4sv'); if not Assigned(glVertexAttrib4sv) then Exit; glVertexAttrib4ubv := wglGetProcAddress('glVertexAttrib4ubv'); if not Assigned(glVertexAttrib4ubv) then Exit; glVertexAttrib4uiv := wglGetProcAddress('glVertexAttrib4uiv'); if not Assigned(glVertexAttrib4uiv) then Exit; glVertexAttrib4usv := wglGetProcAddress('glVertexAttrib4usv'); if not Assigned(glVertexAttrib4usv) then Exit; glVertexAttribPointer := wglGetProcAddress('glVertexAttribPointer'); if not Assigned(glVertexAttribPointer) then Exit; Result := TRUE; end; function glext_LoadExtension(ext: String): Boolean; begin Result := FALSE; if ext = 'GL_version_1_2' then Result := Load_GL_version_1_2 else if ext = 'GL_ARB_imaging' then Result := Load_GL_ARB_imaging else if ext = 'GL_version_1_3' then Result := Load_GL_version_1_3 else if ext = 'GL_ARB_multitexture' then Result := Load_GL_ARB_multitexture else if ext = 'GL_ARB_transpose_matrix' then Result := Load_GL_ARB_transpose_matrix else if ext = 'GL_ARB_multisample' then Result := Load_GL_ARB_multisample else if ext = 'GL_ARB_texture_env_add' then Result := Load_GL_ARB_texture_env_add else if ext = 'WGL_ARB_extensions_string' then Result := Load_WGL_ARB_extensions_string else if ext = 'WGL_ARB_buffer_region' then Result := Load_WGL_ARB_buffer_region else if ext = 'GL_ARB_texture_cube_map' then Result := Load_GL_ARB_texture_cube_map else if ext = 'GL_ARB_depth_texture' then Result := Load_GL_ARB_depth_texture else if ext = 'GL_ARB_point_parameters' then Result := Load_GL_ARB_point_parameters else if ext = 'GL_ARB_shadow' then Result := Load_GL_ARB_shadow else if ext = 'GL_ARB_shadow_ambient' then Result := Load_GL_ARB_shadow_ambient else if ext = 'GL_ARB_texture_border_clamp' then Result := Load_GL_ARB_texture_border_clamp else if ext = 'GL_ARB_texture_compression' then Result := Load_GL_ARB_texture_compression else if ext = 'GL_ARB_texture_env_combine' then Result := Load_GL_ARB_texture_env_combine else if ext = 'GL_ARB_texture_env_crossbar' then Result := Load_GL_ARB_texture_env_crossbar else if ext = 'GL_ARB_texture_env_dot3' then Result := Load_GL_ARB_texture_env_dot3 else if ext = 'GL_ARB_texture_mirrored_repeat' then Result := Load_GL_ARB_texture_mirrored_repeat else if ext = 'GL_ARB_vertex_blend' then Result := Load_GL_ARB_vertex_blend else if ext = 'GL_ARB_vertex_program' then Result := Load_GL_ARB_vertex_program else if ext = 'GL_ARB_window_pos' then Result := Load_GL_ARB_window_pos else if ext = 'GL_EXT_422_pixels' then Result := Load_GL_EXT_422_pixels else if ext = 'GL_EXT_abgr' then Result := Load_GL_EXT_abgr else if ext = 'GL_EXT_bgra' then Result := Load_GL_EXT_bgra else if ext = 'GL_EXT_blend_color' then Result := Load_GL_EXT_blend_color else if ext = 'GL_EXT_blend_func_separate' then Result := Load_GL_EXT_blend_func_separate else if ext = 'GL_EXT_blend_logic_op' then Result := Load_GL_EXT_blend_logic_op else if ext = 'GL_EXT_blend_minmax' then Result := Load_GL_EXT_blend_minmax else if ext = 'GL_EXT_blend_subtract' then Result := Load_GL_EXT_blend_subtract else if ext = 'GL_EXT_clip_volume_hint' then Result := Load_GL_EXT_clip_volume_hint else if ext = 'GL_EXT_color_subtable' then Result := Load_GL_EXT_color_subtable else if ext = 'GL_EXT_compiled_vertex_array' then Result := Load_GL_EXT_compiled_vertex_array else if ext = 'GL_EXT_convolution' then Result := Load_GL_EXT_convolution else if ext = 'GL_EXT_histogram' then Result := Load_GL_EXT_histogram else if ext = 'GL_EXT_multi_draw_arrays' then Result := Load_GL_EXT_multi_draw_arrays else if ext = 'GL_EXT_packed_pixels' then Result := Load_GL_EXT_packed_pixels else if ext = 'GL_EXT_paletted_texture' then Result := Load_GL_EXT_paletted_texture else if ext = 'GL_EXT_point_parameters' then Result := Load_GL_EXT_point_parameters else if ext = 'GL_EXT_polygon_offset' then Result := Load_GL_EXT_polygon_offset else if ext = 'GL_EXT_separate_specular_color' then Result := Load_GL_EXT_separate_specular_color else if ext = 'GL_EXT_shadow_funcs' then Result := Load_GL_EXT_shadow_funcs else if ext = 'GL_EXT_shared_texture_palette' then Result := Load_GL_EXT_shared_texture_palette else if ext = 'GL_EXT_stencil_two_side' then Result := Load_GL_EXT_stencil_two_side else if ext = 'GL_EXT_stencil_wrap' then Result := Load_GL_EXT_stencil_wrap else if ext = 'GL_EXT_subtexture' then Result := Load_GL_EXT_subtexture else if ext = 'GL_EXT_texture3D' then Result := Load_GL_EXT_texture3D else if ext = 'GL_EXT_texture_compression_s3tc' then Result := Load_GL_EXT_texture_compression_s3tc else if ext = 'GL_EXT_texture_env_add' then Result := Load_GL_EXT_texture_env_add else if ext = 'GL_EXT_texture_env_combine' then Result := Load_GL_EXT_texture_env_combine else if ext = 'GL_EXT_texture_env_dot3' then Result := Load_GL_EXT_texture_env_dot3 else if ext = 'GL_EXT_texture_filter_anisotropic' then Result := Load_GL_EXT_texture_filter_anisotropic else if ext = 'GL_EXT_texture_lod_bias' then Result := Load_GL_EXT_texture_lod_bias else if ext = 'GL_EXT_texture_object' then Result := Load_GL_EXT_texture_object else if ext = 'GL_EXT_vertex_array' then Result := Load_GL_EXT_vertex_array else if ext = 'GL_EXT_vertex_shader' then Result := Load_GL_EXT_vertex_shader else if ext = 'GL_EXT_vertex_weighting' then Result := Load_GL_EXT_vertex_weighting else if ext = 'GL_HP_occlusion_test' then Result := Load_GL_HP_occlusion_test else if ext = 'GL_NV_blend_square' then Result := Load_GL_NV_blend_square else if ext = 'GL_NV_copy_depth_to_color' then Result := Load_GL_NV_copy_depth_to_color else if ext = 'GL_NV_depth_clamp' then Result := Load_GL_NV_depth_clamp else if ext = 'GL_NV_evaluators' then Result := Load_GL_NV_evaluators else if ext = 'GL_NV_fence' then Result := Load_GL_NV_fence else if ext = 'GL_NV_fog_distance' then Result := Load_GL_NV_fog_distance else if ext = 'GL_NV_light_max_exponent' then Result := Load_GL_NV_light_max_exponent else if ext = 'GL_NV_multisample_filter_hint' then Result := Load_GL_NV_multisample_filter_hint else if ext = 'GL_NV_occlusion_query' then Result := Load_GL_NV_occlusion_query else if ext = 'GL_NV_packed_depth_stencil' then Result := Load_GL_NV_packed_depth_stencil else if ext = 'GL_NV_point_sprite' then Result := Load_GL_NV_point_sprite else if ext = 'GL_NV_register_combiners' then Result := Load_GL_NV_register_combiners else if ext = 'GL_NV_register_combiners2' then Result := Load_GL_NV_register_combiners2 else if ext = 'GL_NV_texgen_emboss' then Result := Load_GL_NV_texgen_emboss else if ext = 'GL_NV_texgen_reflection' then Result := Load_GL_NV_texgen_reflection else if ext = 'GL_NV_texture_compression_vtc' then Result := Load_GL_NV_texture_compression_vtc else if ext = 'GL_NV_texture_env_combine4' then Result := Load_GL_NV_texture_env_combine4 else if ext = 'GL_NV_texture_rectangle' then Result := Load_GL_NV_texture_rectangle else if ext = 'GL_NV_texture_shader' then Result := Load_GL_NV_texture_shader else if ext = 'GL_NV_texture_shader2' then Result := Load_GL_NV_texture_shader2 else if ext = 'GL_NV_texture_shader3' then Result := Load_GL_NV_texture_shader3 else if ext = 'GL_NV_vertex_array_range' then Result := Load_GL_NV_vertex_array_range else if ext = 'GL_NV_vertex_array_range2' then Result := Load_GL_NV_vertex_array_range2 else if ext = 'GL_NV_vertex_program' then Result := Load_GL_NV_vertex_program else if ext = 'GL_NV_vertex_program1_1' then Result := Load_GL_NV_vertex_program1_1 else if ext = 'GL_ATI_element_array' then Result := Load_GL_ATI_element_array else if ext = 'GL_ATI_envmap_bumpmap' then Result := Load_GL_ATI_envmap_bumpmap else if ext = 'GL_ATI_fragment_shader' then Result := Load_GL_ATI_fragment_shader else if ext = 'GL_ATI_pn_triangles' then Result := Load_GL_ATI_pn_triangles else if ext = 'GL_ATI_texture_mirror_once' then Result := Load_GL_ATI_texture_mirror_once else if ext = 'GL_ATI_vertex_array_object' then Result := Load_GL_ATI_vertex_array_object else if ext = 'GL_ATI_vertex_streams' then Result := Load_GL_ATI_vertex_streams else if ext = 'WGL_I3D_image_buffer' then Result := Load_WGL_I3D_image_buffer else if ext = 'WGL_I3D_swap_frame_lock' then Result := Load_WGL_I3D_swap_frame_lock else if ext = 'WGL_I3D_swap_frame_usage' then Result := Load_WGL_I3D_swap_frame_usage else if ext = 'GL_3DFX_texture_compression_FXT1' then Result := Load_GL_3DFX_texture_compression_FXT1 else if ext = 'GL_IBM_cull_vertex' then Result := Load_GL_IBM_cull_vertex else if ext = 'GL_IBM_multimode_draw_arrays' then Result := Load_GL_IBM_multimode_draw_arrays else if ext = 'GL_IBM_raster_pos_clip' then Result := Load_GL_IBM_raster_pos_clip else if ext = 'GL_IBM_texture_mirrored_repeat' then Result := Load_GL_IBM_texture_mirrored_repeat else if ext = 'GL_IBM_vertex_array_lists' then Result := Load_GL_IBM_vertex_array_lists else if ext = 'GL_MESA_resize_buffers' then Result := Load_GL_MESA_resize_buffers else if ext = 'GL_MESA_window_pos' then Result := Load_GL_MESA_window_pos else if ext = 'GL_OML_interlace' then Result := Load_GL_OML_interlace else if ext = 'GL_OML_resample' then Result := Load_GL_OML_resample else if ext = 'GL_OML_subsample' then Result := Load_GL_OML_subsample else if ext = 'GL_SGIS_generate_mipmap' then Result := Load_GL_SGIS_generate_mipmap else if ext = 'GL_SGIS_multisample' then Result := Load_GL_SGIS_multisample else if ext = 'GL_SGIS_pixel_texture' then Result := Load_GL_SGIS_pixel_texture else if ext = 'GL_SGIS_texture_border_clamp' then Result := Load_GL_SGIS_texture_border_clamp else if ext = 'GL_SGIS_texture_color_mask' then Result := Load_GL_SGIS_texture_color_mask else if ext = 'GL_SGIS_texture_edge_clamp' then Result := Load_GL_SGIS_texture_edge_clamp else if ext = 'GL_SGIS_texture_lod' then Result := Load_GL_SGIS_texture_lod else if ext = 'GL_SGIS_depth_texture' then Result := Load_GL_SGIS_depth_texture else if ext = 'GL_SGIX_fog_offset' then Result := Load_GL_SGIX_fog_offset else if ext = 'GL_SGIX_interlace' then Result := Load_GL_SGIX_interlace else if ext = 'GL_SGIX_shadow_ambient' then Result := Load_GL_SGIX_shadow_ambient else if ext = 'GL_SGI_color_matrix' then Result := Load_GL_SGI_color_matrix else if ext = 'GL_SGI_color_table' then Result := Load_GL_SGI_color_table else if ext = 'GL_SGI_texture_color_table' then Result := Load_GL_SGI_texture_color_table else if ext = 'GL_SUN_vertex' then Result := Load_GL_SUN_vertex else if ext = 'GL_ARB_fragment_program' then Result := Load_GL_ARB_fragment_program else if ext = 'GL_ATI_text_fragment_shader' then Result := Load_GL_ATI_text_fragment_shader else if ext = 'GL_APPLE_client_storage' then Result := Load_GL_APPLE_client_storage else if ext = 'GL_APPLE_element_array' then Result := Load_GL_APPLE_element_array else if ext = 'GL_APPLE_fence' then Result := Load_GL_APPLE_fence else if ext = 'GL_APPLE_vertex_array_object' then Result := Load_GL_APPLE_vertex_array_object else if ext = 'GL_APPLE_vertex_array_range' then Result := Load_GL_APPLE_vertex_array_range else if ext = 'WGL_ARB_pixel_format' then Result := Load_WGL_ARB_pixel_format else if ext = 'WGL_ARB_make_current_read' then Result := Load_WGL_ARB_make_current_read else if ext = 'WGL_ARB_pbuffer' then Result := Load_WGL_ARB_pbuffer else if ext = 'WGL_EXT_swap_control' then Result := Load_WGL_EXT_swap_control else if ext = 'WGL_ARB_render_texture' then Result := Load_WGL_ARB_render_texture else if ext = 'WGL_EXT_extensions_string' then Result := Load_WGL_EXT_extensions_string else if ext = 'WGL_EXT_make_current_read' then Result := Load_WGL_EXT_make_current_read else if ext = 'WGL_EXT_pbuffer' then Result := Load_WGL_EXT_pbuffer else if ext = 'WGL_EXT_pixel_format' then Result := Load_WGL_EXT_pixel_format else if ext = 'WGL_I3D_digital_video_control' then Result := Load_WGL_I3D_digital_video_control else if ext = 'WGL_I3D_gamma' then Result := Load_WGL_I3D_gamma else if ext = 'WGL_I3D_genlock' then Result := Load_WGL_I3D_genlock else if ext = 'GL_ARB_matrix_palette' then Result := Load_GL_ARB_matrix_palette else if ext = 'GL_NV_element_array' then Result := Load_GL_NV_element_array else if ext = 'GL_NV_float_buffer' then Result := Load_GL_NV_float_buffer else if ext = 'GL_NV_fragment_program' then Result := Load_GL_NV_fragment_program else if ext = 'GL_NV_primitive_restart' then Result := Load_GL_NV_primitive_restart else if ext = 'GL_NV_vertex_program2' then Result := Load_GL_NV_vertex_program2 else if ext = 'WGL_NV_render_texture_rectangle' then Result := Load_WGL_NV_render_texture_rectangle else if ext = 'GL_NV_pixel_data_range' then Result := Load_GL_NV_pixel_data_range else if ext = 'GL_EXT_texture_rectangle' then Result := Load_GL_EXT_texture_rectangle else if ext = 'GL_S3_s3tc' then Result := Load_GL_S3_s3tc else if ext = 'GL_ATI_draw_buffers' then Result := Load_GL_ATI_draw_buffers else if ext = 'WGL_ATI_pixel_format_float' then Result := Load_WGL_ATI_pixel_format_float else if ext = 'GL_ATI_texture_env_combine3' then Result := Load_GL_ATI_texture_env_combine3 else if ext = 'GL_ATI_texture_float' then Result := Load_GL_ATI_texture_float else if ext = 'GL_NV_texture_expand_normal' then Result := Load_GL_NV_texture_expand_normal else if ext = 'GL_NV_half_float' then Result := Load_GL_NV_half_float else if ext = 'GL_ATI_map_object_buffer' then Result := Load_GL_ATI_map_object_buffer else if ext = 'GL_ATI_separate_stencil' then Result := Load_GL_ATI_separate_stencil else if ext = 'GL_ATI_vertex_attrib_array_object' then Result := Load_GL_ATI_vertex_attrib_array_object else if ext = 'GL_ARB_vertex_buffer_object' then Result := Load_GL_ARB_vertex_buffer_object else if ext = 'GL_ARB_occlusion_query' then Result := Load_GL_ARB_occlusion_query else if ext = 'GL_ARB_shader_objects' then Result := Load_GL_ARB_shader_objects else if ext = 'GL_ARB_vertex_shader' then Result := Load_GL_ARB_vertex_shader else if ext = 'GL_ARB_fragment_shader' then Result := Load_GL_ARB_fragment_shader else if ext = 'GL_ARB_shading_language_100' then Result := Load_GL_ARB_shading_language_100 else if ext = 'GL_ARB_texture_non_power_of_two' then Result := Load_GL_ARB_texture_non_power_of_two else if ext = 'GL_ARB_point_sprite' then Result := Load_GL_ARB_point_sprite else if ext = 'GL_EXT_depth_bounds_test' then Result := Load_GL_EXT_depth_bounds_test else if ext = 'GL_EXT_secondary_color' then Result := Load_GL_EXT_secondary_color else if ext = 'GL_EXT_texture_mirror_clamp' then Result := Load_GL_EXT_texture_mirror_clamp else if ext = 'GL_EXT_blend_equation_separate' then Result := Load_GL_EXT_blend_equation_separate else if ext = 'GL_MESA_pack_invert' then Result := Load_GL_MESA_pack_invert else if ext = 'GL_MESA_ycbcr_texture' then Result := Load_GL_MESA_ycbcr_texture else if ext = 'GL_ARB_fragment_program_shadow' then Result := Load_GL_ARB_fragment_program_shadow else if ext = 'GL_EXT_fog_coord' then Result := Load_GL_EXT_fog_coord else if ext = 'GL_NV_fragment_program_option' then Result := Load_GL_NV_fragment_program_option else if ext = 'GL_EXT_pixel_buffer_object' then Result := Load_GL_EXT_pixel_buffer_object else if ext = 'GL_NV_fragment_program2' then Result := Load_GL_NV_fragment_program2 else if ext = 'GL_NV_vertex_program2_option' then Result := Load_GL_NV_vertex_program2_option else if ext = 'GL_NV_vertex_program3' then Result := Load_GL_NV_vertex_program3 else if ext = 'GL_ARB_draw_buffers' then Result := Load_GL_ARB_draw_buffers else if ext = 'GL_ARB_texture_rectangle' then Result := Load_GL_ARB_texture_rectangle else if ext = 'GL_ARB_color_buffer_float' then Result := Load_GL_ARB_color_buffer_float else if ext = 'GL_ARB_half_float_pixel' then Result := Load_GL_ARB_half_float_pixel else if ext = 'GL_ARB_texture_float' then Result := Load_GL_ARB_texture_float else if ext = 'GL_EXT_texture_compression_dxt1' then Result := Load_GL_EXT_texture_compression_dxt1 else if ext = 'GL_ARB_pixel_buffer_object' then Result := Load_GL_ARB_pixel_buffer_object else if ext = 'GL_EXT_framebuffer_object' then Result := Load_GL_EXT_framebuffer_object else if ext = 'GL_version_1_4' then Result := Load_GL_version_1_4 else if ext = 'GL_version_1_5' then Result := Load_GL_version_1_5 else if ext = 'GL_version_2_0' then Result := Load_GL_version_2_0 end; end.