DEADSOFTWARE

462db17faea52b7d0ebd983e5500c2b8ccd2a230
[d2df-editor.git] / src / lib / dgl / glExt.pas
1 unit GLext;
3 (**************************************************
4 * OpenGL extension loading library *
5 * Generated by MetaGLext, written by Tom Nuydens *
6 * (tom@delphi3d.net -- http://www.delphi3d.net *
7 **************************************************)
9 //*** Generated on 2/22/2005
11 interface
13 uses
14 Windows, SysUtils, GL;
16 // Not present in Windows.pas.
17 function wglGetProcAddress(proc: PChar): Pointer; stdcall; external 'OpenGL32.dll';
19 // Test if the given extension name is present in the given extension string.
20 function glext_ExtensionSupported(const extension: String; const searchIn: String): Boolean;
22 // Load the extension with the given name.
23 function glext_LoadExtension(ext: String): Boolean;
25 // Some types that were introduced by extensions:
26 type
27 GLintptrARB = Integer;
28 PGLintptrARB = ^GLintptrARB;
30 GLsizeiptrARB = Integer;
31 PGLsizeiptrARB = ^GLsizeiptrARB;
33 GLcharARB = Char;
34 PGLcharARB = ^GLcharARB;
36 GLhandleARB = Cardinal;
37 PGLhandleARB = ^GLhandleARB;
39 GLintptr = Integer;
40 PGLintptr = ^GLintptr;
42 GLsizeiptr = Integer;
43 PGLsizeiptr = ^GLsizeiptr;
45 GLchar = Char;
46 PGLchar = ^GLchar;
48 //***** GL_version_1_2 *****//
49 const
50 GL_UNSIGNED_BYTE_3_3_2 = $8032;
51 GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
52 GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
53 GL_UNSIGNED_INT_8_8_8_8 = $8035;
54 GL_UNSIGNED_INT_10_10_10_2 = $8036;
55 GL_RESCALE_NORMAL = $803A;
56 GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
57 GL_UNSIGNED_SHORT_5_6_5 = $8363;
58 GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
59 GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
60 GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
61 GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
62 GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
63 GL_BGR = $80E0;
64 GL_BGRA = $80E1;
65 GL_MAX_ELEMENTS_VERTICES = $80E8;
66 GL_MAX_ELEMENTS_INDICES = $80E9;
67 GL_CLAMP_TO_EDGE = $812F;
68 GL_TEXTURE_MIN_LOD = $813A;
69 GL_TEXTURE_MAX_LOD = $813B;
70 GL_TEXTURE_BASE_LEVEL = $813C;
71 GL_TEXTURE_MAX_LEVEL = $813D;
72 GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
73 GL_SINGLE_COLOR = $81F9;
74 GL_SEPARATE_SPECULAR_COLOR = $81FA;
75 GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
76 GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
77 GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
78 GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
79 GL_ALIASED_POINT_SIZE_RANGE = $846D;
80 GL_ALIASED_LINE_WIDTH_RANGE = $846E;
81 GL_PACK_SKIP_IMAGES = $806B;
82 GL_PACK_IMAGE_HEIGHT = $806C;
83 GL_UNPACK_SKIP_IMAGES = $806D;
84 GL_UNPACK_IMAGE_HEIGHT = $806E;
85 GL_TEXTURE_3D = $806F;
86 GL_PROXY_TEXTURE_3D = $8070;
87 GL_TEXTURE_DEPTH = $8071;
88 GL_TEXTURE_WRAP_R = $8072;
89 GL_MAX_3D_TEXTURE_SIZE = $8073;
90 var
91 glDrawRangeElements: procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); stdcall = nil;
92 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;
93 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;
94 glCopyTexSubImage3D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall = nil;
96 function Load_GL_version_1_2: Boolean;
98 //***** GL_ARB_imaging *****//
99 const
100 GL_CONSTANT_COLOR = $8001;
101 GL_ONE_MINUS_CONSTANT_COLOR = $8002;
102 GL_CONSTANT_ALPHA = $8003;
103 GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
104 GL_BLEND_COLOR = $8005;
105 GL_FUNC_ADD = $8006;
106 GL_MIN = $8007;
107 GL_MAX = $8008;
108 GL_BLEND_EQUATION = $8009;
109 GL_FUNC_SUBTRACT = $800A;
110 GL_FUNC_REVERSE_SUBTRACT = $800B;
111 GL_CONVOLUTION_1D = $8010;
112 GL_CONVOLUTION_2D = $8011;
113 GL_SEPARABLE_2D = $8012;
114 GL_CONVOLUTION_BORDER_MODE = $8013;
115 GL_CONVOLUTION_FILTER_SCALE = $8014;
116 GL_CONVOLUTION_FILTER_BIAS = $8015;
117 GL_REDUCE = $8016;
118 GL_CONVOLUTION_FORMAT = $8017;
119 GL_CONVOLUTION_WIDTH = $8018;
120 GL_CONVOLUTION_HEIGHT = $8019;
121 GL_MAX_CONVOLUTION_WIDTH = $801A;
122 GL_MAX_CONVOLUTION_HEIGHT = $801B;
123 GL_POST_CONVOLUTION_RED_SCALE = $801C;
124 GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
125 GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
126 GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
127 GL_POST_CONVOLUTION_RED_BIAS = $8020;
128 GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
129 GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
130 GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
131 GL_HISTOGRAM = $8024;
132 GL_PROXY_HISTOGRAM = $8025;
133 GL_HISTOGRAM_WIDTH = $8026;
134 GL_HISTOGRAM_FORMAT = $8027;
135 GL_HISTOGRAM_RED_SIZE = $8028;
136 GL_HISTOGRAM_GREEN_SIZE = $8029;
137 GL_HISTOGRAM_BLUE_SIZE = $802A;
138 GL_HISTOGRAM_ALPHA_SIZE = $802B;
139 GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
140 GL_HISTOGRAM_SINK = $802D;
141 GL_MINMAX = $802E;
142 GL_MINMAX_FORMAT = $802F;
143 GL_MINMAX_SINK = $8030;
144 GL_TABLE_TOO_LARGE = $8031;
145 GL_COLOR_MATRIX = $80B1;
146 GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
147 GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
148 GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
149 GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
150 GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
151 GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
152 GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
153 GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
154 GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
155 GL_POST_COLOR_MATIX_ALPHA_BIAS = $80BB;
156 GL_COLOR_TABLE = $80D0;
157 GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
158 GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
159 GL_PROXY_COLOR_TABLE = $80D3;
160 GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
161 GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
162 GL_COLOR_TABLE_SCALE = $80D6;
163 GL_COLOR_TABLE_BIAS = $80D7;
164 GL_COLOR_TABLE_FORMAT = $80D8;
165 GL_COLOR_TABLE_WIDTH = $80D9;
166 GL_COLOR_TABLE_RED_SIZE = $80DA;
167 GL_COLOR_TABLE_GREEN_SIZE = $80DB;
168 GL_COLOR_TABLE_BLUE_SIZE = $80DC;
169 GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
170 GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
171 GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
172 GL_IGNORE_BORDER = $8150;
173 GL_CONSTANT_BORDER = $8151;
174 GL_WRAP_BORDER = $8152;
175 GL_REPLICATE_BORDER = $8153;
176 GL_CONVOLUTION_BORDER_COLOR = $8154;
177 var
178 glColorTable: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); stdcall = nil;
179 glColorTableParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil;
180 glColorTableParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall = nil;
181 glCopyColorTable: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall = nil;
182 glGetColorTable: procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); stdcall = nil;
183 glGetColorTableParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
184 glGetColorTableParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
185 glColorSubTable: procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); stdcall = nil;
186 glCopyColorSubTable: procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); stdcall = nil;
187 glConvolutionFilter1D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); stdcall = nil;
188 glConvolutionFilter2D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); stdcall = nil;
189 glConvolutionParameterf: procedure(target: GLenum; pname: GLenum; params: GLfloat); stdcall = nil;
190 glConvolutionParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil;
191 glConvolutionParameteri: procedure(target: GLenum; pname: GLenum; params: GLint); stdcall = nil;
192 glConvolutionParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall = nil;
193 glCopyConvolutionFilter1D: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall = nil;
194 glCopyConvolutionFilter2D: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall = nil;
195 glGetConvolutionFilter: procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); stdcall = nil;
196 glGetConvolutionParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
197 glGetConvolutionParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
198 glGetSeparableFilter: procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); stdcall = nil;
199 glSeparableFilter2D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: PGLvoid; const column: PGLvoid); stdcall = nil;
200 glGetHistogram: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); stdcall = nil;
201 glGetHistogramParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
202 glGetHistogramParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
203 glGetMinmax: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); stdcall = nil;
204 glGetMinmaxParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
205 glGetMinmaxParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
206 glHistogram: procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); stdcall = nil;
207 glMinmax: procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); stdcall = nil;
208 glResetHistogram: procedure(target: GLenum); stdcall = nil;
209 glResetMinmax: procedure(target: GLenum); stdcall = nil;
210 glBlendEquation: procedure(mode: GLenum); stdcall = nil;
211 glBlendColor: procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); stdcall = nil;
213 function Load_GL_ARB_imaging: Boolean;
215 //***** GL_version_1_3 *****//
216 const
217 GL_TEXTURE0 = $84C0;
218 GL_TEXTURE1 = $84C1;
219 GL_TEXTURE2 = $84C2;
220 GL_TEXTURE3 = $84C3;
221 GL_TEXTURE4 = $84C4;
222 GL_TEXTURE5 = $84C5;
223 GL_TEXTURE6 = $84C6;
224 GL_TEXTURE7 = $84C7;
225 GL_TEXTURE8 = $84C8;
226 GL_TEXTURE9 = $84C9;
227 GL_TEXTURE10 = $84CA;
228 GL_TEXTURE11 = $84CB;
229 GL_TEXTURE12 = $84CC;
230 GL_TEXTURE13 = $84CD;
231 GL_TEXTURE14 = $84CE;
232 GL_TEXTURE15 = $84CF;
233 GL_TEXTURE16 = $84D0;
234 GL_TEXTURE17 = $84D1;
235 GL_TEXTURE18 = $84D2;
236 GL_TEXTURE19 = $84D3;
237 GL_TEXTURE20 = $84D4;
238 GL_TEXTURE21 = $84D5;
239 GL_TEXTURE22 = $84D6;
240 GL_TEXTURE23 = $84D7;
241 GL_TEXTURE24 = $84D8;
242 GL_TEXTURE25 = $84D9;
243 GL_TEXTURE26 = $84DA;
244 GL_TEXTURE27 = $84DB;
245 GL_TEXTURE28 = $84DC;
246 GL_TEXTURE29 = $84DD;
247 GL_TEXTURE30 = $84DE;
248 GL_TEXTURE31 = $84DF;
249 GL_ACTIVE_TEXTURE = $84E0;
250 GL_CLIENT_ACTIVE_TEXTURE = $84E1;
251 GL_MAX_TEXTURE_UNITS = $84E2;
252 GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
253 GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
254 GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
255 GL_TRANSPOSE_COLOR_MATRIX = $84E6;
256 GL_MULTISAMPLE = $809D;
257 GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
258 GL_SAMPLE_ALPHA_TO_ONE = $809F;
259 GL_SAMPLE_COVERAGE = $80A0;
260 GL_SAMPLE_BUFFERS = $80A8;
261 GL_SAMPLES = $80A9;
262 GL_SAMPLE_COVERAGE_VALUE = $80AA;
263 GL_SAMPLE_COVERAGE_INVERT = $80AB;
264 GL_MULTISAMPLE_BIT = $20000000;
265 GL_NORMAL_MAP = $8511;
266 GL_REFLECTION_MAP = $8512;
267 GL_TEXTURE_CUBE_MAP = $8513;
268 GL_TEXTURE_BINDING_CUBE_MAP = $8514;
269 GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
270 GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
271 GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
272 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
273 GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
274 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
275 GL_PROXY_TEXTURE_CUBE_MAP = $851B;
276 GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
277 GL_COMPRESSED_ALPHA = $84E9;
278 GL_COMPRESSED_LUMINANCE = $84EA;
279 GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
280 GL_COMPRESSED_INTENSITY = $84EC;
281 GL_COMPRESSED_RGB = $84ED;
282 GL_COMPRESSED_RGBA = $84EE;
283 GL_TEXTURE_COMPRESSION_HINT = $84EF;
284 GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
285 GL_TEXTURE_COMPRESSED = $86A1;
286 GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
287 GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
288 GL_CLAMP_TO_BORDER = $812D;
289 GL_CLAMP_TO_BORDER_SGIS = $812D;
290 GL_COMBINE = $8570;
291 GL_COMBINE_RGB = $8571;
292 GL_COMBINE_ALPHA = $8572;
293 GL_SOURCE0_RGB = $8580;
294 GL_SOURCE1_RGB = $8581;
295 GL_SOURCE2_RGB = $8582;
296 GL_SOURCE0_ALPHA = $8588;
297 GL_SOURCE1_ALPHA = $8589;
298 GL_SOURCE2_ALPHA = $858A;
299 GL_OPERAND0_RGB = $8590;
300 GL_OPERAND1_RGB = $8591;
301 GL_OPERAND2_RGB = $8592;
302 GL_OPERAND0_ALPHA = $8598;
303 GL_OPERAND1_ALPHA = $8599;
304 GL_OPERAND2_ALPHA = $859A;
305 GL_RGB_SCALE = $8573;
306 GL_ADD_SIGNED = $8574;
307 GL_INTERPOLATE = $8575;
308 GL_SUBTRACT = $84E7;
309 GL_CONSTANT = $8576;
310 GL_PRIMARY_COLOR = $8577;
311 GL_PREVIOUS = $8578;
312 GL_DOT3_RGB = $86AE;
313 GL_DOT3_RGBA = $86AF;
314 var
315 glActiveTexture: procedure(texture: GLenum); stdcall = nil;
316 glClientActiveTexture: procedure(texture: GLenum); stdcall = nil;
317 glMultiTexCoord1d: procedure(target: GLenum; s: GLdouble); stdcall = nil;
318 glMultiTexCoord1dv: procedure(target: GLenum; const v: PGLdouble); stdcall = nil;
319 glMultiTexCoord1f: procedure(target: GLenum; s: GLfloat); stdcall = nil;
320 glMultiTexCoord1fv: procedure(target: GLenum; const v: PGLfloat); stdcall = nil;
321 glMultiTexCoord1i: procedure(target: GLenum; s: GLint); stdcall = nil;
322 glMultiTexCoord1iv: procedure(target: GLenum; const v: PGLint); stdcall = nil;
323 glMultiTexCoord1s: procedure(target: GLenum; s: GLshort); stdcall = nil;
324 glMultiTexCoord1sv: procedure(target: GLenum; const v: PGLshort); stdcall = nil;
325 glMultiTexCoord2d: procedure(target: GLenum; s: GLdouble; t: GLdouble); stdcall = nil;
326 glMultiTexCoord2dv: procedure(target: GLenum; const v: PGLdouble); stdcall = nil;
327 glMultiTexCoord2f: procedure(target: GLenum; s: GLfloat; t: GLfloat); stdcall = nil;
328 glMultiTexCoord2fv: procedure(target: GLenum; const v: PGLfloat); stdcall = nil;
329 glMultiTexCoord2i: procedure(target: GLenum; s: GLint; t: GLint); stdcall = nil;
330 glMultiTexCoord2iv: procedure(target: GLenum; const v: PGLint); stdcall = nil;
331 glMultiTexCoord2s: procedure(target: GLenum; s: GLshort; t: GLshort); stdcall = nil;
332 glMultiTexCoord2sv: procedure(target: GLenum; const v: PGLshort); stdcall = nil;
333 glMultiTexCoord3d: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); stdcall = nil;
334 glMultiTexCoord3dv: procedure(target: GLenum; const v: PGLdouble); stdcall = nil;
335 glMultiTexCoord3f: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); stdcall = nil;
336 glMultiTexCoord3fv: procedure(target: GLenum; const v: PGLfloat); stdcall = nil;
337 glMultiTexCoord3i: procedure(target: GLenum; s: GLint; t: GLint; r: GLint); stdcall = nil;
338 glMultiTexCoord3iv: procedure(target: GLenum; const v: PGLint); stdcall = nil;
339 glMultiTexCoord3s: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); stdcall = nil;
340 glMultiTexCoord3sv: procedure(target: GLenum; const v: PGLshort); stdcall = nil;
341 glMultiTexCoord4d: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); stdcall = nil;
342 glMultiTexCoord4dv: procedure(target: GLenum; const v: PGLdouble); stdcall = nil;
343 glMultiTexCoord4f: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); stdcall = nil;
344 glMultiTexCoord4fv: procedure(target: GLenum; const v: PGLfloat); stdcall = nil;
345 glMultiTexCoord4i: procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); stdcall = nil;
346 glMultiTexCoord4iv: procedure(target: GLenum; const v: PGLint); stdcall = nil;
347 glMultiTexCoord4s: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); stdcall = nil;
348 glMultiTexCoord4sv: procedure(target: GLenum; const v: PGLshort); stdcall = nil;
349 glLoadTransposeMatrixf: procedure(const m: PGLfloat); stdcall = nil;
350 glLoadTransposeMatrixd: procedure(const m: PGLdouble); stdcall = nil;
351 glMultTransposeMatrixf: procedure(const m: PGLfloat); stdcall = nil;
352 glMultTransposeMatrixd: procedure(const m: PGLdouble); stdcall = nil;
353 glSampleCoverage: procedure(value: GLclampf; invert: GLboolean); stdcall = nil;
354 glCompressedTexImage3D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil;
355 glCompressedTexImage2D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil;
356 glCompressedTexImage1D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil;
357 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;
358 glCompressedTexSubImage2D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); stdcall = nil;
359 glCompressedTexSubImage1D: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); stdcall = nil;
360 glGetCompressedTexImage: procedure(target: GLenum; level: GLint; img: PGLvoid); stdcall = nil;
362 function Load_GL_version_1_3: Boolean;
364 //***** GL_ARB_multitexture *****//
365 const
366 GL_TEXTURE0_ARB = $84C0;
367 GL_TEXTURE1_ARB = $84C1;
368 GL_TEXTURE2_ARB = $84C2;
369 GL_TEXTURE3_ARB = $84C3;
370 GL_TEXTURE4_ARB = $84C4;
371 GL_TEXTURE5_ARB = $84C5;
372 GL_TEXTURE6_ARB = $84C6;
373 GL_TEXTURE7_ARB = $84C7;
374 GL_TEXTURE8_ARB = $84C8;
375 GL_TEXTURE9_ARB = $84C9;
376 GL_TEXTURE10_ARB = $84CA;
377 GL_TEXTURE11_ARB = $84CB;
378 GL_TEXTURE12_ARB = $84CC;
379 GL_TEXTURE13_ARB = $84CD;
380 GL_TEXTURE14_ARB = $84CE;
381 GL_TEXTURE15_ARB = $84CF;
382 GL_TEXTURE16_ARB = $84D0;
383 GL_TEXTURE17_ARB = $84D1;
384 GL_TEXTURE18_ARB = $84D2;
385 GL_TEXTURE19_ARB = $84D3;
386 GL_TEXTURE20_ARB = $84D4;
387 GL_TEXTURE21_ARB = $84D5;
388 GL_TEXTURE22_ARB = $84D6;
389 GL_TEXTURE23_ARB = $84D7;
390 GL_TEXTURE24_ARB = $84D8;
391 GL_TEXTURE25_ARB = $84D9;
392 GL_TEXTURE26_ARB = $84DA;
393 GL_TEXTURE27_ARB = $84DB;
394 GL_TEXTURE28_ARB = $84DC;
395 GL_TEXTURE29_ARB = $84DD;
396 GL_TEXTURE30_ARB = $84DE;
397 GL_TEXTURE31_ARB = $84DF;
398 GL_ACTIVE_TEXTURE_ARB = $84E0;
399 GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
400 GL_MAX_TEXTURE_UNITS_ARB = $84E2;
401 var
402 glActiveTextureARB: procedure(texture: GLenum); stdcall = nil;
403 glClientActiveTextureARB: procedure(texture: GLenum); stdcall = nil;
404 glMultiTexCoord1dARB: procedure(target: GLenum; s: GLdouble); stdcall = nil;
405 glMultiTexCoord1dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall = nil;
406 glMultiTexCoord1fARB: procedure(target: GLenum; s: GLfloat); stdcall = nil;
407 glMultiTexCoord1fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall = nil;
408 glMultiTexCoord1iARB: procedure(target: GLenum; s: GLint); stdcall = nil;
409 glMultiTexCoord1ivARB: procedure(target: GLenum; const v: PGLint); stdcall = nil;
410 glMultiTexCoord1sARB: procedure(target: GLenum; s: GLshort); stdcall = nil;
411 glMultiTexCoord1svARB: procedure(target: GLenum; const v: PGLshort); stdcall = nil;
412 glMultiTexCoord2dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble); stdcall = nil;
413 glMultiTexCoord2dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall = nil;
414 glMultiTexCoord2fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat); stdcall = nil;
415 glMultiTexCoord2fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall = nil;
416 glMultiTexCoord2iARB: procedure(target: GLenum; s: GLint; t: GLint); stdcall = nil;
417 glMultiTexCoord2ivARB: procedure(target: GLenum; const v: PGLint); stdcall = nil;
418 glMultiTexCoord2sARB: procedure(target: GLenum; s: GLshort; t: GLshort); stdcall = nil;
419 glMultiTexCoord2svARB: procedure(target: GLenum; const v: PGLshort); stdcall = nil;
420 glMultiTexCoord3dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); stdcall = nil;
421 glMultiTexCoord3dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall = nil;
422 glMultiTexCoord3fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); stdcall = nil;
423 glMultiTexCoord3fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall = nil;
424 glMultiTexCoord3iARB: procedure(target: GLenum; s: GLint; t: GLint; r: GLint); stdcall = nil;
425 glMultiTexCoord3ivARB: procedure(target: GLenum; const v: PGLint); stdcall = nil;
426 glMultiTexCoord3sARB: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); stdcall = nil;
427 glMultiTexCoord3svARB: procedure(target: GLenum; const v: PGLshort); stdcall = nil;
428 glMultiTexCoord4dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); stdcall = nil;
429 glMultiTexCoord4dvARB: procedure(target: GLenum; const v: PGLdouble); stdcall = nil;
430 glMultiTexCoord4fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); stdcall = nil;
431 glMultiTexCoord4fvARB: procedure(target: GLenum; const v: PGLfloat); stdcall = nil;
432 glMultiTexCoord4iARB: procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); stdcall = nil;
433 glMultiTexCoord4ivARB: procedure(target: GLenum; const v: PGLint); stdcall = nil;
434 glMultiTexCoord4sARB: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); stdcall = nil;
435 glMultiTexCoord4svARB: procedure(target: GLenum; const v: PGLshort); stdcall = nil;
437 function Load_GL_ARB_multitexture: Boolean;
439 //***** GL_ARB_transpose_matrix *****//
440 const
441 GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
442 GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
443 GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
444 GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
445 var
446 glLoadTransposeMatrixfARB: procedure(m: PGLfloat); stdcall = nil;
447 glLoadTransposeMatrixdARB: procedure(m: PGLdouble); stdcall = nil;
448 glMultTransposeMatrixfARB: procedure(m: PGLfloat); stdcall = nil;
449 glMultTransposeMatrixdARB: procedure(m: PGLdouble); stdcall = nil;
451 function Load_GL_ARB_transpose_matrix: Boolean;
453 //***** GL_ARB_multisample *****//
454 const
455 WGL_SAMPLE_BUFFERS_ARB = $2041;
456 WGL_SAMPLES_ARB = $2042;
457 GL_MULTISAMPLE_ARB = $809D;
458 GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
459 GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
460 GL_SAMPLE_COVERAGE_ARB = $80A0;
461 GL_MULTISAMPLE_BIT_ARB = $20000000;
462 GL_SAMPLE_BUFFERS_ARB = $80A8;
463 GL_SAMPLES_ARB = $80A9;
464 GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
465 GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
466 var
467 glSampleCoverageARB: procedure(value: GLclampf; invert: GLboolean); stdcall = nil;
469 function Load_GL_ARB_multisample: Boolean;
471 //***** GL_ARB_texture_env_add *****//
473 function Load_GL_ARB_texture_env_add: Boolean;
475 //***** WGL_ARB_extensions_string *****//
476 var
477 wglGetExtensionsStringARB: function(hdc: HDC): Pchar; stdcall = nil;
479 function Load_WGL_ARB_extensions_string: Boolean;
481 //***** WGL_ARB_buffer_region *****//
482 const
483 WGL_FRONT_COLOR_BUFFER_BIT_ARB = $0001;
484 WGL_BACK_COLOR_BUFFER_BIT_ARB = $0002;
485 WGL_DEPTH_BUFFER_BIT_ARB = $0004;
486 WGL_STENCIL_BUFFER_BIT_ARB = $0008;
487 var
488 wglCreateBufferRegionARB: function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; stdcall = nil;
489 wglDeleteBufferRegionARB: procedure(hRegion: THandle); stdcall = nil;
490 wglSaveBufferRegionARB: function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): BOOL; stdcall = nil;
491 wglRestoreBufferRegionARB: function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): BOOL; stdcall = nil;
493 function Load_WGL_ARB_buffer_region: Boolean;
495 //***** GL_ARB_texture_cube_map *****//
496 const
497 GL_NORMAL_MAP_ARB = $8511;
498 GL_REFLECTION_MAP_ARB = $8512;
499 GL_TEXTURE_CUBE_MAP_ARB = $8513;
500 GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
501 GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
502 GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
503 GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
504 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
505 GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
506 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
507 GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
508 GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
510 function Load_GL_ARB_texture_cube_map: Boolean;
512 //***** GL_ARB_depth_texture *****//
513 const
514 GL_DEPTH_COMPONENT16_ARB = $81A5;
515 GL_DEPTH_COMPONENT24_ARB = $81A6;
516 GL_DEPTH_COMPONENT32_ARB = $81A7;
517 GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
518 GL_DEPTH_TEXTURE_MODE_ARB = $884B;
520 function Load_GL_ARB_depth_texture: Boolean;
522 //***** GL_ARB_point_parameters *****//
523 const
524 GL_POINT_SIZE_MIN_ARB = $8126;
525 GL_POINT_SIZE_MAX_ARB = $8127;
526 GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
527 GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
528 var
529 glPointParameterfARB: procedure(pname: GLenum; param: GLfloat); stdcall = nil;
530 glPointParameterfvARB: procedure(pname: GLenum; params: PGLfloat); stdcall = nil;
532 function Load_GL_ARB_point_parameters: Boolean;
534 //***** GL_ARB_shadow *****//
535 const
536 GL_TEXTURE_COMPARE_MODE_ARB = $884C;
537 GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
538 GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
540 function Load_GL_ARB_shadow: Boolean;
542 //***** GL_ARB_shadow_ambient *****//
543 const
544 GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
546 function Load_GL_ARB_shadow_ambient: Boolean;
548 //***** GL_ARB_texture_border_clamp *****//
549 const
550 GL_CLAMP_TO_BORDER_ARB = $812D;
552 function Load_GL_ARB_texture_border_clamp: Boolean;
554 //***** GL_ARB_texture_compression *****//
555 const
556 GL_COMPRESSED_ALPHA_ARB = $84E9;
557 GL_COMPRESSED_LUMINANCE_ARB = $84EA;
558 GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
559 GL_COMPRESSED_INTENSITY_ARB = $84EC;
560 GL_COMPRESSED_RGB_ARB = $84ED;
561 GL_COMPRESSED_RGBA_ARB = $84EE;
562 GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
563 GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
564 GL_TEXTURE_COMPRESSED_ARB = $86A1;
565 GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
566 GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
567 var
568 glCompressedTexImage3DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil;
569 glCompressedTexImage2DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil;
570 glCompressedTexImage1DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); stdcall = nil;
571 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;
572 glCompressedTexSubImage2DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); stdcall = nil;
573 glCompressedTexSubImage1DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); stdcall = nil;
574 glGetCompressedTexImageARB: procedure(target: GLenum; lod: GLint; img: PGLvoid); stdcall = nil;
576 function Load_GL_ARB_texture_compression: Boolean;
578 //***** GL_ARB_texture_env_combine *****//
579 const
580 GL_COMBINE_ARB = $8570;
581 GL_COMBINE_RGB_ARB = $8571;
582 GL_COMBINE_ALPHA_ARB = $8572;
583 GL_SOURCE0_RGB_ARB = $8580;
584 GL_SOURCE1_RGB_ARB = $8581;
585 GL_SOURCE2_RGB_ARB = $8582;
586 GL_SOURCE0_ALPHA_ARB = $8588;
587 GL_SOURCE1_ALPHA_ARB = $8589;
588 GL_SOURCE2_ALPHA_ARB = $858A;
589 GL_OPERAND0_RGB_ARB = $8590;
590 GL_OPERAND1_RGB_ARB = $8591;
591 GL_OPERAND2_RGB_ARB = $8592;
592 GL_OPERAND0_ALPHA_ARB = $8598;
593 GL_OPERAND1_ALPHA_ARB = $8599;
594 GL_OPERAND2_ALPHA_ARB = $859A;
595 GL_RGB_SCALE_ARB = $8573;
596 GL_ADD_SIGNED_ARB = $8574;
597 GL_INTERPOLATE_ARB = $8575;
598 GL_SUBTRACT_ARB = $84E7;
599 GL_CONSTANT_ARB = $8576;
600 GL_PRIMARY_COLOR_ARB = $8577;
601 GL_PREVIOUS_ARB = $8578;
603 function Load_GL_ARB_texture_env_combine: Boolean;
605 //***** GL_ARB_texture_env_crossbar *****//
607 function Load_GL_ARB_texture_env_crossbar: Boolean;
609 //***** GL_ARB_texture_env_dot3 *****//
610 const
611 GL_DOT3_RGB_ARB = $86AE;
612 GL_DOT3_RGBA_ARB = $86AF;
614 function Load_GL_ARB_texture_env_dot3: Boolean;
616 //***** GL_ARB_texture_mirrored_repeat *****//
617 const
618 GL_MIRRORED_REPEAT_ARB = $8370;
620 function Load_GL_ARB_texture_mirrored_repeat: Boolean;
622 //***** GL_ARB_vertex_blend *****//
623 const
624 GL_MAX_VERTEX_UNITS_ARB = $86A4;
625 GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
626 GL_WEIGHT_SUM_UNITY_ARB = $86A6;
627 GL_VERTEX_BLEND_ARB = $86A7;
628 GL_MODELVIEW0_ARB = $1700;
629 GL_MODELVIEW1_ARB = $850A;
630 GL_MODELVIEW2_ARB = $8722;
631 GL_MODELVIEW3_ARB = $8723;
632 GL_MODELVIEW4_ARB = $8724;
633 GL_MODELVIEW5_ARB = $8725;
634 GL_MODELVIEW6_ARB = $8726;
635 GL_MODELVIEW7_ARB = $8727;
636 GL_MODELVIEW8_ARB = $8728;
637 GL_MODELVIEW9_ARB = $8729;
638 GL_MODELVIEW10_ARB = $872A;
639 GL_MODELVIEW11_ARB = $872B;
640 GL_MODELVIEW12_ARB = $872C;
641 GL_MODELVIEW13_ARB = $872D;
642 GL_MODELVIEW14_ARB = $872E;
643 GL_MODELVIEW15_ARB = $872F;
644 GL_MODELVIEW16_ARB = $8730;
645 GL_MODELVIEW17_ARB = $8731;
646 GL_MODELVIEW18_ARB = $8732;
647 GL_MODELVIEW19_ARB = $8733;
648 GL_MODELVIEW20_ARB = $8734;
649 GL_MODELVIEW21_ARB = $8735;
650 GL_MODELVIEW22_ARB = $8736;
651 GL_MODELVIEW23_ARB = $8737;
652 GL_MODELVIEW24_ARB = $8738;
653 GL_MODELVIEW25_ARB = $8739;
654 GL_MODELVIEW26_ARB = $873A;
655 GL_MODELVIEW27_ARB = $873B;
656 GL_MODELVIEW28_ARB = $873C;
657 GL_MODELVIEW29_ARB = $873D;
658 GL_MODELVIEW30_ARB = $873E;
659 GL_MODELVIEW31_ARB = $873F;
660 GL_CURRENT_WEIGHT_ARB = $86A8;
661 GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
662 GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
663 GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
664 GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
665 GL_WEIGHT_ARRAY_ARB = $86AD;
666 var
667 glWeightbvARB: procedure(size: GLint; weights: PGLbyte); stdcall = nil;
668 glWeightsvARB: procedure(size: GLint; weights: PGLshort); stdcall = nil;
669 glWeightivARB: procedure(size: GLint; weights: PGLint); stdcall = nil;
670 glWeightfvARB: procedure(size: GLint; weights: PGLfloat); stdcall = nil;
671 glWeightdvARB: procedure(size: GLint; weights: PGLdouble); stdcall = nil;
672 glWeightvARB: procedure(size: GLint; weights: PGLdouble); stdcall = nil;
673 glWeightubvARB: procedure(size: GLint; weights: PGLubyte); stdcall = nil;
674 glWeightusvARB: procedure(size: GLint; weights: PGLushort); stdcall = nil;
675 glWeightuivARB: procedure(size: GLint; weights: PGLuint); stdcall = nil;
676 glWeightPointerARB: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall = nil;
677 glVertexBlendARB: procedure(count: GLint); stdcall = nil;
679 function Load_GL_ARB_vertex_blend: Boolean;
681 //***** GL_ARB_vertex_program *****//
682 const
683 GL_VERTEX_PROGRAM_ARB = $8620;
684 GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
685 GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
686 GL_COLOR_SUM_ARB = $8458;
687 GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
688 GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
689 GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
690 GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
691 GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
692 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
693 GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
694 GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
695 GL_PROGRAM_LENGTH_ARB = $8627;
696 GL_PROGRAM_FORMAT_ARB = $8876;
697 GL_PROGRAM_BINDING_ARB = $8677;
698 GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
699 GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
700 GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
701 GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
702 GL_PROGRAM_TEMPORARIES_ARB = $88A4;
703 GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
704 GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
705 GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
706 GL_PROGRAM_PARAMETERS_ARB = $88A8;
707 GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
708 GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
709 GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
710 GL_PROGRAM_ATTRIBS_ARB = $88AC;
711 GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
712 GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
713 GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
714 GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
715 GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
716 GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
717 GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
718 GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
719 GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
720 GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
721 GL_PROGRAM_STRING_ARB = $8628;
722 GL_PROGRAM_ERROR_POSITION_ARB = $864B;
723 GL_CURRENT_MATRIX_ARB = $8641;
724 GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
725 GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
726 GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
727 GL_MAX_PROGRAM_MATRICES_ARB = $862F;
728 GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
729 GL_PROGRAM_ERROR_STRING_ARB = $8874;
730 GL_MATRIX0_ARB = $88C0;
731 GL_MATRIX1_ARB = $88C1;
732 GL_MATRIX2_ARB = $88C2;
733 GL_MATRIX3_ARB = $88C3;
734 GL_MATRIX4_ARB = $88C4;
735 GL_MATRIX5_ARB = $88C5;
736 GL_MATRIX6_ARB = $88C6;
737 GL_MATRIX7_ARB = $88C7;
738 GL_MATRIX8_ARB = $88C8;
739 GL_MATRIX9_ARB = $88C9;
740 GL_MATRIX10_ARB = $88CA;
741 GL_MATRIX11_ARB = $88CB;
742 GL_MATRIX12_ARB = $88CC;
743 GL_MATRIX13_ARB = $88CD;
744 GL_MATRIX14_ARB = $88CE;
745 GL_MATRIX15_ARB = $88CF;
746 GL_MATRIX16_ARB = $88D0;
747 GL_MATRIX17_ARB = $88D1;
748 GL_MATRIX18_ARB = $88D2;
749 GL_MATRIX19_ARB = $88D3;
750 GL_MATRIX20_ARB = $88D4;
751 GL_MATRIX21_ARB = $88D5;
752 GL_MATRIX22_ARB = $88D6;
753 GL_MATRIX23_ARB = $88D7;
754 GL_MATRIX24_ARB = $88D8;
755 GL_MATRIX25_ARB = $88D9;
756 GL_MATRIX26_ARB = $88DA;
757 GL_MATRIX27_ARB = $88DB;
758 GL_MATRIX28_ARB = $88DC;
759 GL_MATRIX29_ARB = $88DD;
760 GL_MATRIX30_ARB = $88DE;
761 GL_MATRIX31_ARB = $88DF;
762 var
763 glVertexAttrib1sARB: procedure(index: GLuint; x: GLshort); stdcall = nil;
764 glVertexAttrib1fARB: procedure(index: GLuint; x: GLfloat); stdcall = nil;
765 glVertexAttrib1dARB: procedure(index: GLuint; x: GLdouble); stdcall = nil;
766 glVertexAttrib2sARB: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall = nil;
767 glVertexAttrib2fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall = nil;
768 glVertexAttrib2dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall = nil;
769 glVertexAttrib3sARB: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall = nil;
770 glVertexAttrib3fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
771 glVertexAttrib3dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil;
772 glVertexAttrib4sARB: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall = nil;
773 glVertexAttrib4fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil;
774 glVertexAttrib4dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil;
775 glVertexAttrib4NubARB: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall = nil;
776 glVertexAttrib1svARB: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
777 glVertexAttrib1fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
778 glVertexAttrib1dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
779 glVertexAttrib2svARB: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
780 glVertexAttrib2fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
781 glVertexAttrib2dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
782 glVertexAttrib3svARB: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
783 glVertexAttrib3fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
784 glVertexAttrib3dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
785 glVertexAttrib4bvARB: procedure(index: GLuint; const v: PGLbyte); stdcall = nil;
786 glVertexAttrib4svARB: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
787 glVertexAttrib4ivARB: procedure(index: GLuint; const v: PGLint); stdcall = nil;
788 glVertexAttrib4ubvARB: procedure(index: GLuint; const v: PGLubyte); stdcall = nil;
789 glVertexAttrib4usvARB: procedure(index: GLuint; const v: PGLushort); stdcall = nil;
790 glVertexAttrib4uivARB: procedure(index: GLuint; const v: PGLuint); stdcall = nil;
791 glVertexAttrib4fvARB: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
792 glVertexAttrib4dvARB: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
793 glVertexAttrib4NbvARB: procedure(index: GLuint; const v: PGLbyte); stdcall = nil;
794 glVertexAttrib4NsvARB: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
795 glVertexAttrib4NivARB: procedure(index: GLuint; const v: PGLint); stdcall = nil;
796 glVertexAttrib4NubvARB: procedure(index: GLuint; const v: PGLubyte); stdcall = nil;
797 glVertexAttrib4NusvARB: procedure(index: GLuint; const v: PGLushort); stdcall = nil;
798 glVertexAttrib4NuivARB: procedure(index: GLuint; const v: PGLuint); stdcall = nil;
799 glVertexAttribPointerARB: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const pointer: PGLvoid); stdcall = nil;
800 glEnableVertexAttribArrayARB: procedure(index: GLuint); stdcall = nil;
801 glDisableVertexAttribArrayARB: procedure(index: GLuint); stdcall = nil;
802 glProgramStringARB: procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); stdcall = nil;
803 glBindProgramARB: procedure(target: GLenum; _program: GLuint); stdcall = nil;
804 glDeleteProgramsARB: procedure(n: GLsizei; const programs: PGLuint); stdcall = nil;
805 glGenProgramsARB: procedure(n: GLsizei; programs: PGLuint); stdcall = nil;
806 glProgramEnvParameter4dARB: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil;
807 glProgramEnvParameter4dvARB: procedure(target: GLenum; index: GLuint; const params: PGLdouble); stdcall = nil;
808 glProgramEnvParameter4fARB: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil;
809 glProgramEnvParameter4fvARB: procedure(target: GLenum; index: GLuint; const params: PGLfloat); stdcall = nil;
810 glProgramLocalParameter4dARB: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil;
811 glProgramLocalParameter4dvARB: procedure(target: GLenum; index: GLuint; const params: PGLdouble); stdcall = nil;
812 glProgramLocalParameter4fARB: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil;
813 glProgramLocalParameter4fvARB: procedure(target: GLenum; index: GLuint; const params: PGLfloat); stdcall = nil;
814 glGetProgramEnvParameterdvARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); stdcall = nil;
815 glGetProgramEnvParameterfvARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); stdcall = nil;
816 glGetProgramLocalParameterdvARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); stdcall = nil;
817 glGetProgramLocalParameterfvARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); stdcall = nil;
818 glGetProgramivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
819 glGetProgramStringARB: procedure(target: GLenum; pname: GLenum; _string: PGLvoid); stdcall = nil;
820 glGetVertexAttribdvARB: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall = nil;
821 glGetVertexAttribfvARB: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil;
822 glGetVertexAttribivARB: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
823 glGetVertexAttribPointervARB: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); stdcall = nil;
824 glIsProgramARB: function(_program: GLuint): GLboolean; stdcall = nil;
826 function Load_GL_ARB_vertex_program: Boolean;
828 //***** GL_ARB_window_pos *****//
829 var
830 glWindowPos2dARB: procedure(x: GLdouble; y: GLdouble); stdcall = nil;
831 glWindowPos2fARB: procedure(x: GLfloat; y: GLfloat); stdcall = nil;
832 glWindowPos2iARB: procedure(x: GLint; y: GLint); stdcall = nil;
833 glWindowPos2sARB: procedure(x: GLshort; y: GLshort); stdcall = nil;
834 glWindowPos2dvARB: procedure(const p: PGLdouble); stdcall = nil;
835 glWindowPos2fvARB: procedure(const p: PGLfloat); stdcall = nil;
836 glWindowPos2ivARB: procedure(const p: PGLint); stdcall = nil;
837 glWindowPos2svARB: procedure(const p: PGLshort); stdcall = nil;
838 glWindowPos3dARB: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil;
839 glWindowPos3fARB: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
840 glWindowPos3iARB: procedure(x: GLint; y: GLint; z: GLint); stdcall = nil;
841 glWindowPos3sARB: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall = nil;
842 glWindowPos3dvARB: procedure(const p: PGLdouble); stdcall = nil;
843 glWindowPos3fvARB: procedure(const p: PGLfloat); stdcall = nil;
844 glWindowPos3ivARB: procedure(const p: PGLint); stdcall = nil;
845 glWindowPos3svARB: procedure(const p: PGLshort); stdcall = nil;
847 function Load_GL_ARB_window_pos: Boolean;
849 //***** GL_EXT_422_pixels *****//
850 const
851 GL_422_EXT = $80CC;
852 GL_422_REV_EXT = $80CD;
853 GL_422_AVERAGE_EXT = $80CE;
854 GL_422_REV_AVERAGE_EXT = $80CF;
856 function Load_GL_EXT_422_pixels: Boolean;
858 //***** GL_EXT_abgr *****//
859 const
860 GL_ABGR_EXT = $8000;
862 function Load_GL_EXT_abgr: Boolean;
864 //***** GL_EXT_bgra *****//
865 const
866 GL_BGR_EXT = $80E0;
867 GL_BGRA_EXT = $80E1;
869 function Load_GL_EXT_bgra: Boolean;
871 //***** GL_EXT_blend_color *****//
872 const
873 GL_CONSTANT_COLOR_EXT = $8001;
874 GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
875 GL_CONSTANT_ALPHA_EXT = $8003;
876 GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
877 GL_BLEND_COLOR_EXT = $8005;
878 var
879 glBlendColorEXT: procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); stdcall = nil;
881 function Load_GL_EXT_blend_color: Boolean;
883 //***** GL_EXT_blend_func_separate *****//
884 const
885 GL_BLEND_DST_RGB_EXT = $80C8;
886 GL_BLEND_SRC_RGB_EXT = $80C9;
887 GL_BLEND_DST_ALPHA_EXT = $80CA;
888 GL_BLEND_SRC_ALPHA_EXT = $80CB;
889 var
890 glBlendFuncSeparateEXT: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); stdcall = nil;
892 function Load_GL_EXT_blend_func_separate: Boolean;
894 //***** GL_EXT_blend_logic_op *****//
896 function Load_GL_EXT_blend_logic_op: Boolean;
898 //***** GL_EXT_blend_minmax *****//
899 const
900 GL_FUNC_ADD_EXT = $8006;
901 GL_MIN_EXT = $8007;
902 GL_MAX_EXT = $8008;
903 GL_BLEND_EQUATION_EXT = $8009;
904 var
905 glBlendEquationEXT: procedure(mode: GLenum); stdcall = nil;
907 function Load_GL_EXT_blend_minmax: Boolean;
909 //***** GL_EXT_blend_subtract *****//
910 const
911 GL_FUNC_SUBTRACT_EXT = $800A;
912 GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
914 function Load_GL_EXT_blend_subtract: Boolean;
916 //***** GL_EXT_clip_volume_hint *****//
917 const
918 GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
920 function Load_GL_EXT_clip_volume_hint: Boolean;
922 //***** GL_EXT_color_subtable *****//
923 var
924 glColorSubTableEXT: procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); stdcall = nil;
925 glCopyColorSubTableEXT: procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); stdcall = nil;
927 function Load_GL_EXT_color_subtable: Boolean;
929 //***** GL_EXT_compiled_vertex_array *****//
930 const
931 GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
932 GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
933 var
934 glLockArraysEXT: procedure(first: GLint; count: GLsizei); stdcall = nil;
935 glUnlockArraysEXT: procedure(); stdcall = nil;
937 function Load_GL_EXT_compiled_vertex_array: Boolean;
939 //***** GL_EXT_convolution *****//
940 const
941 GL_CONVOLUTION_1D_EXT = $8010;
942 GL_CONVOLUTION_2D_EXT = $8011;
943 GL_SEPARABLE_2D_EXT = $8012;
944 GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
945 GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
946 GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
947 GL_REDUCE_EXT = $8016;
948 GL_CONVOLUTION_FORMAT_EXT = $8017;
949 GL_CONVOLUTION_WIDTH_EXT = $8018;
950 GL_CONVOLUTION_HEIGHT_EXT = $8019;
951 GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
952 GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
953 GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
954 GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
955 GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
956 GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
957 GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
958 GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
959 GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
960 GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
961 var
962 glConvolutionFilter1DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); stdcall = nil;
963 glConvolutionFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); stdcall = nil;
964 glCopyConvolutionFilter1DEXT: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall = nil;
965 glCopyConvolutionFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); stdcall = nil;
966 glGetConvolutionFilterEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); stdcall = nil;
967 glSeparableFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: PGLvoid; const column: PGLvoid); stdcall = nil;
968 glGetSeparableFilterEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); stdcall = nil;
969 glConvolutionParameteriEXT: procedure(target: GLenum; pname: GLenum; param: GLint); stdcall = nil;
970 glConvolutionParameterivEXT: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall = nil;
971 glConvolutionParameterfEXT: procedure(target: GLenum; pname: GLenum; param: GLfloat); stdcall = nil;
972 glConvolutionParameterfvEXT: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil;
973 glGetConvolutionParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
974 glGetConvolutionParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
976 function Load_GL_EXT_convolution: Boolean;
978 //***** GL_EXT_histogram *****//
979 const
980 GL_HISTOGRAM_EXT = $8024;
981 GL_PROXY_HISTOGRAM_EXT = $8025;
982 GL_HISTOGRAM_WIDTH_EXT = $8026;
983 GL_HISTOGRAM_FORMAT_EXT = $8027;
984 GL_HISTOGRAM_RED_SIZE_EXT = $8028;
985 GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
986 GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
987 GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
988 GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
989 GL_HISTOGRAM_SINK_EXT = $802D;
990 GL_MINMAX_EXT = $802E;
991 GL_MINMAX_FORMAT_EXT = $802F;
992 GL_MINMAX_SINK_EXT = $8030;
993 var
994 glHistogramEXT: procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); stdcall = nil;
995 glResetHistogramEXT: procedure(target: GLenum); stdcall = nil;
996 glGetHistogramEXT: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); stdcall = nil;
997 glGetHistogramParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
998 glGetHistogramParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
999 glMinmaxEXT: procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); stdcall = nil;
1000 glResetMinmaxEXT: procedure(target: GLenum); stdcall = nil;
1001 glGetMinmaxEXT: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); stdcall = nil;
1002 glGetMinmaxParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
1003 glGetMinmaxParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
1005 function Load_GL_EXT_histogram: Boolean;
1007 //***** GL_EXT_multi_draw_arrays *****//
1008 var
1009 glMultiDrawArraysEXT: procedure(mode: GLenum; first: PGLint; count: PGLsizei; primcount: GLsizei); stdcall = nil;
1010 glMultiDrawElementsEXT: procedure(mode: GLenum; count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); stdcall = nil;
1012 function Load_GL_EXT_multi_draw_arrays: Boolean;
1014 //***** GL_EXT_packed_pixels *****//
1015 const
1016 GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
1017 GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
1018 GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
1019 GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
1020 GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
1022 function Load_GL_EXT_packed_pixels: Boolean;
1024 //***** GL_EXT_paletted_texture *****//
1025 const
1026 GL_COLOR_INDEX1_EXT = $80E2;
1027 GL_COLOR_INDEX2_EXT = $80E3;
1028 GL_COLOR_INDEX4_EXT = $80E4;
1029 GL_COLOR_INDEX8_EXT = $80E5;
1030 GL_COLOR_INDEX12_EXT = $80E6;
1031 GL_COLOR_INDEX16_EXT = $80E7;
1032 GL_COLOR_TABLE_FORMAT_EXT = $80D8;
1033 GL_COLOR_TABLE_WIDTH_EXT = $80D9;
1034 GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
1035 GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
1036 GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
1037 GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
1038 GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
1039 GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
1040 GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
1041 GL_TEXTURE_1D = $0DE0;
1042 GL_TEXTURE_2D = $0DE1;
1043 GL_TEXTURE_3D_EXT = $806F;
1044 // GL_TEXTURE_CUBE_MAP_ARB { already defined }
1045 GL_PROXY_TEXTURE_1D = $8063;
1046 GL_PROXY_TEXTURE_2D = $8064;
1047 GL_PROXY_TEXTURE_3D_EXT = $8070;
1048 // GL_PROXY_TEXTURE_CUBE_MAP_ARB { already defined }
1049 // GL_TEXTURE_1D { already defined }
1050 // GL_TEXTURE_2D { already defined }
1051 // GL_TEXTURE_3D_EXT { already defined }
1052 // GL_TEXTURE_CUBE_MAP_ARB { already defined }
1053 var
1054 glColorTableEXT: procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); stdcall = nil;
1055 // glColorSubTableEXT { already defined }
1056 glGetColorTableEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); stdcall = nil;
1057 glGetColorTableParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
1058 glGetColorTableParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
1060 function Load_GL_EXT_paletted_texture: Boolean;
1062 //***** GL_EXT_point_parameters *****//
1063 const
1064 GL_POINT_SIZE_MIN_EXT = $8126;
1065 GL_POINT_SIZE_MAX_EXT = $8127;
1066 GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
1067 GL_DISTANCE_ATTENUATION_EXT = $8129;
1068 var
1069 glPointParameterfEXT: procedure(pname: GLenum; param: GLfloat); stdcall = nil;
1070 glPointParameterfvEXT: procedure(pname: GLenum; params: PGLfloat); stdcall = nil;
1072 function Load_GL_EXT_point_parameters: Boolean;
1074 //***** GL_EXT_polygon_offset *****//
1075 const
1076 GL_POLYGON_OFFSET_EXT = $8037;
1077 GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
1078 GL_POLYGON_OFFSET_BIAS_EXT = $8039;
1079 var
1080 glPolygonOffsetEXT: procedure(factor: GLfloat; bias: GLfloat); stdcall = nil;
1082 function Load_GL_EXT_polygon_offset: Boolean;
1084 //***** GL_EXT_separate_specular_color *****//
1085 const
1086 GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
1087 GL_SINGLE_COLOR_EXT = $81F9;
1088 GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
1090 function Load_GL_EXT_separate_specular_color: Boolean;
1092 //***** GL_EXT_shadow_funcs *****//
1094 function Load_GL_EXT_shadow_funcs: Boolean;
1096 //***** GL_EXT_shared_texture_palette *****//
1097 const
1098 GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
1100 function Load_GL_EXT_shared_texture_palette: Boolean;
1102 //***** GL_EXT_stencil_two_side *****//
1103 const
1104 GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
1105 GL_ACTIVE_STENCIL_FACE_EXT = $8911;
1106 var
1107 glActiveStencilFaceEXT: procedure(face: GLenum); stdcall = nil;
1109 function Load_GL_EXT_stencil_two_side: Boolean;
1111 //***** GL_EXT_stencil_wrap *****//
1112 const
1113 GL_INCR_WRAP_EXT = $8507;
1114 GL_DECR_WRAP_EXT = $8508;
1116 function Load_GL_EXT_stencil_wrap: Boolean;
1118 //***** GL_EXT_subtexture *****//
1119 var
1120 glTexSubImage1DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); stdcall = nil;
1121 glTexSubImage2DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); stdcall = nil;
1122 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;
1124 function Load_GL_EXT_subtexture: Boolean;
1126 //***** GL_EXT_texture3D *****//
1127 const
1128 GL_PACK_SKIP_IMAGES_EXT = $806B;
1129 GL_PACK_IMAGE_HEIGHT_EXT = $806C;
1130 GL_UNPACK_SKIP_IMAGES_EXT = $806D;
1131 GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
1132 // GL_TEXTURE_3D_EXT { already defined }
1133 // GL_PROXY_TEXTURE_3D_EXT { already defined }
1134 GL_TEXTURE_DEPTH_EXT = $8071;
1135 GL_TEXTURE_WRAP_R_EXT = $8072;
1136 GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
1137 var
1138 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;
1140 function Load_GL_EXT_texture3D: Boolean;
1142 //***** GL_EXT_texture_compression_s3tc *****//
1143 const
1144 GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
1145 GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
1146 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
1147 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
1149 function Load_GL_EXT_texture_compression_s3tc: Boolean;
1151 //***** GL_EXT_texture_env_add *****//
1153 function Load_GL_EXT_texture_env_add: Boolean;
1155 //***** GL_EXT_texture_env_combine *****//
1156 const
1157 GL_COMBINE_EXT = $8570;
1158 GL_COMBINE_RGB_EXT = $8571;
1159 GL_COMBINE_ALPHA_EXT = $8572;
1160 GL_SOURCE0_RGB_EXT = $8580;
1161 GL_SOURCE1_RGB_EXT = $8581;
1162 GL_SOURCE2_RGB_EXT = $8582;
1163 GL_SOURCE0_ALPHA_EXT = $8588;
1164 GL_SOURCE1_ALPHA_EXT = $8589;
1165 GL_SOURCE2_ALPHA_EXT = $858A;
1166 GL_OPERAND0_RGB_EXT = $8590;
1167 GL_OPERAND1_RGB_EXT = $8591;
1168 GL_OPERAND2_RGB_EXT = $8592;
1169 GL_OPERAND0_ALPHA_EXT = $8598;
1170 GL_OPERAND1_ALPHA_EXT = $8599;
1171 GL_OPERAND2_ALPHA_EXT = $859A;
1172 GL_RGB_SCALE_EXT = $8573;
1173 GL_ADD_SIGNED_EXT = $8574;
1174 GL_INTERPOLATE_EXT = $8575;
1175 GL_CONSTANT_EXT = $8576;
1176 GL_PRIMARY_COLOR_EXT = $8577;
1177 GL_PREVIOUS_EXT = $8578;
1179 function Load_GL_EXT_texture_env_combine: Boolean;
1181 //***** GL_EXT_texture_env_dot3 *****//
1182 const
1183 GL_DOT3_RGB_EXT = $8740;
1184 GL_DOT3_RGBA_EXT = $8741;
1186 function Load_GL_EXT_texture_env_dot3: Boolean;
1188 //***** GL_EXT_texture_filter_anisotropic *****//
1189 const
1190 GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
1191 GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
1193 function Load_GL_EXT_texture_filter_anisotropic: Boolean;
1195 //***** GL_EXT_texture_lod_bias *****//
1196 const
1197 GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
1198 GL_TEXTURE_LOD_BIAS_EXT = $8501;
1199 GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
1201 function Load_GL_EXT_texture_lod_bias: Boolean;
1203 //***** GL_EXT_texture_object *****//
1204 const
1205 GL_TEXTURE_PRIORITY_EXT = $8066;
1206 GL_TEXTURE_RESIDENT_EXT = $8067;
1207 GL_TEXTURE_1D_BINDING_EXT = $8068;
1208 GL_TEXTURE_2D_BINDING_EXT = $8069;
1209 GL_TEXTURE_3D_BINDING_EXT = $806A;
1210 var
1211 glGenTexturesEXT: procedure(n: GLsizei; textures: PGLuint); stdcall = nil;
1212 glDeleteTexturesEXT: procedure(n: GLsizei; const textures: PGLuint); stdcall = nil;
1213 glBindTextureEXT: procedure(target: GLenum; texture: GLuint); stdcall = nil;
1214 glPrioritizeTexturesEXT: procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); stdcall = nil;
1215 glAreTexturesResidentEXT: function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; stdcall = nil;
1216 glIsTextureEXT: function(texture: GLuint): GLboolean; stdcall = nil;
1218 function Load_GL_EXT_texture_object: Boolean;
1220 //***** GL_EXT_vertex_array *****//
1221 const
1222 GL_VERTEX_ARRAY_EXT = $8074;
1223 GL_NORMAL_ARRAY_EXT = $8075;
1224 GL_COLOR_ARRAY_EXT = $8076;
1225 GL_INDEX_ARRAY_EXT = $8077;
1226 GL_TEXTURE_COORD_ARRAY_EXT = $8078;
1227 GL_EDGE_FLAG_ARRAY_EXT = $8079;
1228 GL_DOUBLE_EXT = $140A;
1229 GL_VERTEX_ARRAY_SIZE_EXT = $807A;
1230 GL_VERTEX_ARRAY_TYPE_EXT = $807B;
1231 GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
1232 GL_VERTEX_ARRAY_COUNT_EXT = $807D;
1233 GL_NORMAL_ARRAY_TYPE_EXT = $807E;
1234 GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
1235 GL_NORMAL_ARRAY_COUNT_EXT = $8080;
1236 GL_COLOR_ARRAY_SIZE_EXT = $8081;
1237 GL_COLOR_ARRAY_TYPE_EXT = $8082;
1238 GL_COLOR_ARRAY_STRIDE_EXT = $8083;
1239 GL_COLOR_ARRAY_COUNT_EXT = $8084;
1240 GL_INDEX_ARRAY_TYPE_EXT = $8085;
1241 GL_INDEX_ARRAY_STRIDE_EXT = $8086;
1242 GL_INDEX_ARRAY_COUNT_EXT = $8087;
1243 GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
1244 GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
1245 GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
1246 GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
1247 GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
1248 GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
1249 GL_VERTEX_ARRAY_POINTER_EXT = $808E;
1250 GL_NORMAL_ARRAY_POINTER_EXT = $808F;
1251 GL_COLOR_ARRAY_POINTER_EXT = $8090;
1252 GL_INDEX_ARRAY_POINTER_EXT = $8091;
1253 GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
1254 GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
1255 var
1256 glArrayElementEXT: procedure(i: GLint); stdcall = nil;
1257 glDrawArraysEXT: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall = nil;
1258 glVertexPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); stdcall = nil;
1259 glNormalPointerEXT: procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); stdcall = nil;
1260 glColorPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); stdcall = nil;
1261 glIndexPointerEXT: procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); stdcall = nil;
1262 glTexCoordPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); stdcall = nil;
1263 glEdgeFlagPointerEXT: procedure(stride: GLsizei; count: GLsizei; const pointer: PGLboolean); stdcall = nil;
1264 glGetPointervEXT: procedure(pname: GLenum; params: PGLvoid); stdcall = nil;
1266 function Load_GL_EXT_vertex_array: Boolean;
1268 //***** GL_EXT_vertex_shader *****//
1269 const
1270 GL_VERTEX_SHADER_EXT = $8780;
1271 GL_VARIANT_VALUE_EXT = $87E4;
1272 GL_VARIANT_DATATYPE_EXT = $87E5;
1273 GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
1274 GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
1275 GL_VARIANT_ARRAY_EXT = $87E8;
1276 GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
1277 GL_INVARIANT_VALUE_EXT = $87EA;
1278 GL_INVARIANT_DATATYPE_EXT = $87EB;
1279 GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
1280 GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
1281 GL_OP_INDEX_EXT = $8782;
1282 GL_OP_NEGATE_EXT = $8783;
1283 GL_OP_DOT3_EXT = $8784;
1284 GL_OP_DOT4_EXT = $8785;
1285 GL_OP_MUL_EXT = $8786;
1286 GL_OP_ADD_EXT = $8787;
1287 GL_OP_MADD_EXT = $8788;
1288 GL_OP_FRAC_EXT = $8789;
1289 GL_OP_MAX_EXT = $878A;
1290 GL_OP_MIN_EXT = $878B;
1291 GL_OP_SET_GE_EXT = $878C;
1292 GL_OP_SET_LT_EXT = $878D;
1293 GL_OP_CLAMP_EXT = $878E;
1294 GL_OP_FLOOR_EXT = $878F;
1295 GL_OP_ROUND_EXT = $8790;
1296 GL_OP_EXP_BASE_2_EXT = $8791;
1297 GL_OP_LOG_BASE_2_EXT = $8792;
1298 GL_OP_POWER_EXT = $8793;
1299 GL_OP_RECIP_EXT = $8794;
1300 GL_OP_RECIP_SQRT_EXT = $8795;
1301 GL_OP_SUB_EXT = $8796;
1302 GL_OP_CROSS_PRODUCT_EXT = $8797;
1303 GL_OP_MULTIPLY_MATRIX_EXT = $8798;
1304 GL_OP_MOV_EXT = $8799;
1305 GL_OUTPUT_VERTEX_EXT = $879A;
1306 GL_OUTPUT_COLOR0_EXT = $879B;
1307 GL_OUTPUT_COLOR1_EXT = $879C;
1308 GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
1309 GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
1310 GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
1311 GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
1312 GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
1313 GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
1314 GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
1315 GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
1316 GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
1317 GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
1318 GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
1319 GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
1320 GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
1321 GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
1322 GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
1323 GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
1324 GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
1325 GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
1326 GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
1327 GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
1328 GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
1329 GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
1330 GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
1331 GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
1332 GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
1333 GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
1334 GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
1335 GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
1336 GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
1337 GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
1338 GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
1339 GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
1340 GL_OUTPUT_FOG_EXT = $87BD;
1341 GL_SCALAR_EXT = $87BE;
1342 GL_VECTOR_EXT = $87BF;
1343 GL_MATRIX_EXT = $87C0;
1344 GL_VARIANT_EXT = $87C1;
1345 GL_INVARIANT_EXT = $87C2;
1346 GL_LOCAL_CONSTANT_EXT = $87C3;
1347 GL_LOCAL_EXT = $87C4;
1348 GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
1349 GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
1350 GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
1351 GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
1352 GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
1353 GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
1354 GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
1355 GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
1356 GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
1357 GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
1358 GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
1359 GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
1360 GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
1361 GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
1362 GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
1363 GL_VERTEX_SHADER_BINDING_EXT = $8781;
1364 GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
1365 GL_X_EXT = $87D5;
1366 GL_Y_EXT = $87D6;
1367 GL_Z_EXT = $87D7;
1368 GL_W_EXT = $87D8;
1369 GL_NEGATIVE_X_EXT = $87D9;
1370 GL_NEGATIVE_Y_EXT = $87DA;
1371 GL_NEGATIVE_Z_EXT = $87DB;
1372 GL_NEGATIVE_W_EXT = $87DC;
1373 GL_ZERO_EXT = $87DD;
1374 GL_ONE_EXT = $87DE;
1375 GL_NEGATIVE_ONE_EXT = $87DF;
1376 GL_NORMALIZED_RANGE_EXT = $87E0;
1377 GL_FULL_RANGE_EXT = $87E1;
1378 GL_CURRENT_VERTEX_EXT = $87E2;
1379 GL_MVP_MATRIX_EXT = $87E3;
1380 var
1381 glBeginVertexShaderEXT: procedure(); stdcall = nil;
1382 glEndVertexShaderEXT: procedure(); stdcall = nil;
1383 glBindVertexShaderEXT: procedure(id: GLuint); stdcall = nil;
1384 glGenVertexShadersEXT: function(range: GLuint): GLuint; stdcall = nil;
1385 glDeleteVertexShaderEXT: procedure(id: GLuint); stdcall = nil;
1386 glShaderOp1EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint); stdcall = nil;
1387 glShaderOp2EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); stdcall = nil;
1388 glShaderOp3EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); stdcall = nil;
1389 glSwizzleEXT: procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); stdcall = nil;
1390 glWriteMaskEXT: procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); stdcall = nil;
1391 glInsertComponentEXT: procedure(res: GLuint; src: GLuint; num: GLuint); stdcall = nil;
1392 glExtractComponentEXT: procedure(res: GLuint; src: GLuint; num: GLuint); stdcall = nil;
1393 glGenSymbolsEXT: function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; stdcall = nil;
1394 glSetInvariantEXT: procedure(id: GLuint; _type: GLenum; addr: PGLvoid); stdcall = nil;
1395 glSetLocalConstantEXT: procedure(id: GLuint; _type: GLenum; addr: PGLvoid); stdcall = nil;
1396 glVariantbvEXT: procedure(id: GLuint; addr: PGLbyte); stdcall = nil;
1397 glVariantsvEXT: procedure(id: GLuint; addr: PGLshort); stdcall = nil;
1398 glVariantivEXT: procedure(id: GLuint; addr: PGLint); stdcall = nil;
1399 glVariantfvEXT: procedure(id: GLuint; addr: PGLfloat); stdcall = nil;
1400 glVariantdvEXT: procedure(id: GLuint; addr: PGLdouble); stdcall = nil;
1401 glVariantubvEXT: procedure(id: GLuint; addr: PGLubyte); stdcall = nil;
1402 glVariantusvEXT: procedure(id: GLuint; addr: PGLushort); stdcall = nil;
1403 glVariantuivEXT: procedure(id: GLuint; addr: PGLuint); stdcall = nil;
1404 glVariantPointerEXT: procedure(id: GLuint; _type: GLenum; stride: GLuint; addr: PGLvoid); stdcall = nil;
1405 glEnableVariantClientStateEXT: procedure(id: GLuint); stdcall = nil;
1406 glDisableVariantClientStateEXT: procedure(id: GLuint); stdcall = nil;
1407 glBindLightParameterEXT: function(light: GLenum; value: GLenum): GLuint; stdcall = nil;
1408 glBindMaterialParameterEXT: function(face: GLenum; value: GLenum): GLuint; stdcall = nil;
1409 glBindTexGenParameterEXT: function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; stdcall = nil;
1410 glBindTextureUnitParameterEXT: function(_unit: GLenum; value: GLenum): GLuint; stdcall = nil;
1411 glBindParameterEXT: function(value: GLenum): GLuint; stdcall = nil;
1412 glIsVariantEnabledEXT: function(id: GLuint; cap: GLenum): GLboolean; stdcall = nil;
1413 glGetVariantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall = nil;
1414 glGetVariantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall = nil;
1415 glGetVariantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall = nil;
1416 glGetVariantPointervEXT: procedure(id: GLuint; value: GLenum; data: PGLvoid); stdcall = nil;
1417 glGetInvariantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall = nil;
1418 glGetInvariantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall = nil;
1419 glGetInvariantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall = nil;
1420 glGetLocalConstantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); stdcall = nil;
1421 glGetLocalConstantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); stdcall = nil;
1422 glGetLocalConstantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); stdcall = nil;
1424 function Load_GL_EXT_vertex_shader: Boolean;
1426 //***** GL_EXT_vertex_weighting *****//
1427 const
1428 GL_VERTEX_WEIGHTING_EXT = $8509;
1429 GL_MODELVIEW0_EXT = $1700;
1430 GL_MODELVIEW1_EXT = $850A;
1431 GL_MODELVIEW0_MATRIX_EXT = $0BA6;
1432 GL_MODELVIEW1_MATRIX_EXT = $8506;
1433 GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
1434 GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
1435 GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
1436 GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
1437 GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
1438 GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
1439 GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
1440 GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
1441 var
1442 glVertexWeightfEXT: procedure(weight: GLfloat); stdcall = nil;
1443 glVertexWeightfvEXT: procedure(weight: PGLfloat); stdcall = nil;
1444 glVertexWeightPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall = nil;
1446 function Load_GL_EXT_vertex_weighting: Boolean;
1448 //***** GL_HP_occlusion_test *****//
1449 const
1450 GL_OCCLUSION_TEST_HP = $8165;
1451 GL_OCCLUSION_TEST_RESULT_HP = $8166;
1453 function Load_GL_HP_occlusion_test: Boolean;
1455 //***** GL_NV_blend_square *****//
1457 function Load_GL_NV_blend_square: Boolean;
1459 //***** GL_NV_copy_depth_to_color *****//
1460 const
1461 GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
1462 GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
1464 function Load_GL_NV_copy_depth_to_color: Boolean;
1466 //***** GL_NV_depth_clamp *****//
1467 const
1468 GL_DEPTH_CLAMP_NV = $864F;
1470 function Load_GL_NV_depth_clamp: Boolean;
1472 //***** GL_NV_evaluators *****//
1473 const
1474 GL_EVAL_2D_NV = $86C0;
1475 GL_EVAL_TRIANGULAR_2D_NV = $86C1;
1476 GL_MAP_TESSELLATION_NV = $86C2;
1477 GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
1478 GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
1479 GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
1480 GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
1481 GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
1482 GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
1483 GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
1484 GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
1485 GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
1486 GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
1487 GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
1488 GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
1489 GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
1490 GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
1491 GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
1492 GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
1493 GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
1494 GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
1495 GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
1496 GL_MAX_MAP_TESSELLATION_NV = $86D6;
1497 GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
1498 var
1499 glMapControlPointsNV: procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; uorder: GLint; vorder: GLint; _packed: GLboolean; const points: PGLvoid); stdcall = nil;
1500 glMapParameterivNV: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall = nil;
1501 glMapParameterfvNV: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil;
1502 glGetMapControlPointsNV: procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); stdcall = nil;
1503 glGetMapParameterivNV: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
1504 glGetMapParameterfvNV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
1505 glGetMapAttribParameterivNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
1506 glGetMapAttribParameterfvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil;
1507 glEvalMapsNV: procedure(target: GLenum; mode: GLenum); stdcall = nil;
1509 function Load_GL_NV_evaluators: Boolean;
1511 //***** GL_NV_fence *****//
1512 const
1513 GL_ALL_COMPLETED_NV = $84F2;
1514 GL_FENCE_STATUS_NV = $84F3;
1515 GL_FENCE_CONDITION_NV = $84F4;
1516 var
1517 glGenFencesNV: procedure(n: GLsizei; fences: PGLuint); stdcall = nil;
1518 glDeleteFencesNV: procedure(n: GLsizei; const fences: PGLuint); stdcall = nil;
1519 glSetFenceNV: procedure(fence: GLuint; condition: GLenum); stdcall = nil;
1520 glTestFenceNV: function(fence: GLuint): GLboolean; stdcall = nil;
1521 glFinishFenceNV: procedure(fence: GLuint); stdcall = nil;
1522 glIsFenceNV: function(fence: GLuint): GLboolean; stdcall = nil;
1523 glGetFenceivNV: procedure(fence: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
1525 function Load_GL_NV_fence: Boolean;
1527 //***** GL_NV_fog_distance *****//
1528 const
1529 GL_FOG_DISTANCE_MODE_NV = $855A;
1530 GL_EYE_RADIAL_NV = $855B;
1531 GL_EYE_PLANE_ABSOLUTE_NV = $855C;
1533 function Load_GL_NV_fog_distance: Boolean;
1535 //***** GL_NV_light_max_exponent *****//
1536 const
1537 GL_MAX_SHININESS_NV = $8504;
1538 GL_MAX_SPOT_EXPONENT_NV = $8505;
1540 function Load_GL_NV_light_max_exponent: Boolean;
1542 //***** GL_NV_multisample_filter_hint *****//
1543 const
1544 GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
1546 function Load_GL_NV_multisample_filter_hint: Boolean;
1548 //***** GL_NV_occlusion_query *****//
1549 // GL_OCCLUSION_TEST_HP { already defined }
1550 // GL_OCCLUSION_TEST_RESULT_HP { already defined }
1551 const
1552 GL_PIXEL_COUNTER_BITS_NV = $8864;
1553 GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
1554 GL_PIXEL_COUNT_NV = $8866;
1555 GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
1556 var
1557 glGenOcclusionQueriesNV: procedure(n: GLsizei; ids: PGLuint); stdcall = nil;
1558 glDeleteOcclusionQueriesNV: procedure(n: GLsizei; const ids: PGLuint); stdcall = nil;
1559 glIsOcclusionQueryNV: function(id: GLuint): GLboolean; stdcall = nil;
1560 glBeginOcclusionQueryNV: procedure(id: GLuint); stdcall = nil;
1561 glEndOcclusionQueryNV: procedure(); stdcall = nil;
1562 glGetOcclusionQueryivNV: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
1563 glGetOcclusionQueryuivNV: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall = nil;
1565 function Load_GL_NV_occlusion_query: Boolean;
1567 //***** GL_NV_packed_depth_stencil *****//
1568 const
1569 GL_DEPTH_STENCIL_NV = $84F9;
1570 GL_UNSIGNED_INT_24_8_NV = $84FA;
1572 function Load_GL_NV_packed_depth_stencil: Boolean;
1574 //***** GL_NV_point_sprite *****//
1575 const
1576 GL_POINT_SPRITE_NV = $8861;
1577 GL_COORD_REPLACE_NV = $8862;
1578 GL_POINT_SPRITE_R_MODE_NV = $8863;
1579 var
1580 glPointParameteriNV: procedure(pname: GLenum; param: GLint); stdcall = nil;
1581 glPointParameterivNV: procedure(pname: GLenum; const params: PGLint); stdcall = nil;
1583 function Load_GL_NV_point_sprite: Boolean;
1585 //***** GL_NV_register_combiners *****//
1586 const
1587 GL_REGISTER_COMBINERS_NV = $8522;
1588 GL_COMBINER0_NV = $8550;
1589 GL_COMBINER1_NV = $8551;
1590 GL_COMBINER2_NV = $8552;
1591 GL_COMBINER3_NV = $8553;
1592 GL_COMBINER4_NV = $8554;
1593 GL_COMBINER5_NV = $8555;
1594 GL_COMBINER6_NV = $8556;
1595 GL_COMBINER7_NV = $8557;
1596 GL_VARIABLE_A_NV = $8523;
1597 GL_VARIABLE_B_NV = $8524;
1598 GL_VARIABLE_C_NV = $8525;
1599 GL_VARIABLE_D_NV = $8526;
1600 GL_VARIABLE_E_NV = $8527;
1601 GL_VARIABLE_F_NV = $8528;
1602 GL_VARIABLE_G_NV = $8529;
1603 GL_CONSTANT_COLOR0_NV = $852A;
1604 GL_CONSTANT_COLOR1_NV = $852B;
1605 GL_PRIMARY_COLOR_NV = $852C;
1606 GL_SECONDARY_COLOR_NV = $852D;
1607 GL_SPARE0_NV = $852E;
1608 GL_SPARE1_NV = $852F;
1609 GL_UNSIGNED_IDENTITY_NV = $8536;
1610 GL_UNSIGNED_INVERT_NV = $8537;
1611 GL_EXPAND_NORMAL_NV = $8538;
1612 GL_EXPAND_NEGATE_NV = $8539;
1613 GL_HALF_BIAS_NORMAL_NV = $853A;
1614 GL_HALF_BIAS_NEGATE_NV = $853B;
1615 GL_SIGNED_IDENTITY_NV = $853C;
1616 GL_SIGNED_NEGATE_NV = $853D;
1617 GL_E_TIMES_F_NV = $8531;
1618 GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
1619 GL_SCALE_BY_TWO_NV = $853E;
1620 GL_SCALE_BY_FOUR_NV = $853F;
1621 GL_SCALE_BY_ONE_HALF_NV = $8540;
1622 GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
1623 GL_DISCARD_NV = $8530;
1624 GL_COMBINER_INPUT_NV = $8542;
1625 GL_COMBINER_MAPPING_NV = $8543;
1626 GL_COMBINER_COMPONENT_USAGE_NV = $8544;
1627 GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
1628 GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
1629 GL_COMBINER_MUX_SUM_NV = $8547;
1630 GL_COMBINER_SCALE_NV = $8548;
1631 GL_COMBINER_BIAS_NV = $8549;
1632 GL_COMBINER_AB_OUTPUT_NV = $854A;
1633 GL_COMBINER_CD_OUTPUT_NV = $854B;
1634 GL_COMBINER_SUM_OUTPUT_NV = $854C;
1635 GL_NUM_GENERAL_COMBINERS_NV = $854E;
1636 GL_COLOR_SUM_CLAMP_NV = $854F;
1637 GL_MAX_GENERAL_COMBINERS_NV = $854D;
1638 var
1639 glCombinerParameterfvNV: procedure(pname: GLenum; const params: PGLfloat); stdcall = nil;
1640 glCombinerParameterivNV: procedure(pname: GLenum; const params: PGLint); stdcall = nil;
1641 glCombinerParameterfNV: procedure(pname: GLenum; param: GLfloat); stdcall = nil;
1642 glCombinerParameteriNV: procedure(pname: GLenum; param: GLint); stdcall = nil;
1643 glCombinerInputNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); stdcall = nil;
1644 glCombinerOutputNV: procedure(stage: GLenum; portion: GLenum; abOutput: GLenum; cdOutput: GLenum; sumOutput: GLenum; scale: GLenum; bias: GLenum; abDotProduct: GLboolean; cdDotProduct: GLboolean; muxSum: GLboolean); stdcall = nil;
1645 glFinalCombinerInputNV: procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); stdcall = nil;
1646 glGetCombinerInputParameterfvNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
1647 glGetCombinerInputParameterivNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
1648 glGetCombinerOutputParameterfvNV: procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
1649 glGetCombinerOutputParameterivNV: procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
1650 glGetFinalCombinerInputParameterfvNV: procedure(variable: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
1651 glGetFinalCombinerInputParameterivNV: procedure(variable: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
1653 function Load_GL_NV_register_combiners: Boolean;
1655 //***** GL_NV_register_combiners2 *****//
1656 const
1657 GL_PER_STAGE_CONSTANTS_NV = $8535;
1658 var
1659 glCombinerStageParameterfvNV: procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil;
1660 glGetCombinerStageParameterfvNV: procedure(stage: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
1662 function Load_GL_NV_register_combiners2: Boolean;
1664 //***** GL_NV_texgen_emboss *****//
1665 const
1666 GL_EMBOSS_MAP_NV = $855F;
1667 GL_EMBOSS_LIGHT_NV = $855D;
1668 GL_EMBOSS_CONSTANT_NV = $855E;
1670 function Load_GL_NV_texgen_emboss: Boolean;
1672 //***** GL_NV_texgen_reflection *****//
1673 const
1674 GL_NORMAL_MAP_NV = $8511;
1675 GL_REFLECTION_MAP_NV = $8512;
1677 function Load_GL_NV_texgen_reflection: Boolean;
1679 //***** GL_NV_texture_compression_vtc *****//
1680 // GL_COMPRESSED_RGB_S3TC_DXT1_EXT { already defined }
1681 // GL_COMPRESSED_RGBA_S3TC_DXT1_EXT { already defined }
1682 // GL_COMPRESSED_RGBA_S3TC_DXT3_EXT { already defined }
1683 // GL_COMPRESSED_RGBA_S3TC_DXT5_EXT { already defined }
1685 function Load_GL_NV_texture_compression_vtc: Boolean;
1687 //***** GL_NV_texture_env_combine4 *****//
1688 const
1689 GL_COMBINE4_NV = $8503;
1690 GL_SOURCE3_RGB_NV = $8583;
1691 GL_SOURCE3_ALPHA_NV = $858B;
1692 GL_OPERAND3_RGB_NV = $8593;
1693 GL_OPERAND3_ALPHA_NV = $859B;
1695 function Load_GL_NV_texture_env_combine4: Boolean;
1697 //***** GL_NV_texture_rectangle *****//
1698 const
1699 GL_TEXTURE_RECTANGLE_NV = $84F5;
1700 GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
1701 GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
1702 GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
1704 function Load_GL_NV_texture_rectangle: Boolean;
1706 //***** GL_NV_texture_shader *****//
1707 const
1708 GL_TEXTURE_SHADER_NV = $86DE;
1709 GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
1710 GL_SHADER_OPERATION_NV = $86DF;
1711 GL_CULL_MODES_NV = $86E0;
1712 GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
1713 GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
1714 GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
1715 GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
1716 GL_CONST_EYE_NV = $86E5;
1717 GL_SHADER_CONSISTENT_NV = $86DD;
1718 GL_PASS_THROUGH_NV = $86E6;
1719 GL_CULL_FRAGMENT_NV = $86E7;
1720 GL_OFFSET_TEXTURE_2D_NV = $86E8;
1721 GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
1722 GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
1723 GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
1724 GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
1725 GL_DOT_PRODUCT_NV = $86EC;
1726 GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
1727 GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
1728 GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
1729 GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
1730 GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
1731 GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
1732 GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
1733 GL_HILO_NV = $86F4;
1734 GL_DSDT_NV = $86F5;
1735 GL_DSDT_MAG_NV = $86F6;
1736 GL_DSDT_MAG_VIB_NV = $86F7;
1737 GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
1738 GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
1739 GL_SIGNED_RGBA_NV = $86FB;
1740 GL_SIGNED_RGBA8_NV = $86FC;
1741 GL_SIGNED_RGB_NV = $86FE;
1742 GL_SIGNED_RGB8_NV = $86FF;
1743 GL_SIGNED_LUMINANCE_NV = $8701;
1744 GL_SIGNED_LUMINANCE8_NV = $8702;
1745 GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
1746 GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
1747 GL_SIGNED_ALPHA_NV = $8705;
1748 GL_SIGNED_ALPHA8_NV = $8706;
1749 GL_SIGNED_INTENSITY_NV = $8707;
1750 GL_SIGNED_INTENSITY8_NV = $8708;
1751 GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
1752 GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
1753 GL_HILO16_NV = $86F8;
1754 GL_SIGNED_HILO_NV = $86F9;
1755 GL_SIGNED_HILO16_NV = $86FA;
1756 GL_DSDT8_NV = $8709;
1757 GL_DSDT8_MAG8_NV = $870A;
1758 GL_DSDT_MAG_INTENSITY_NV = $86DC;
1759 GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
1760 GL_HI_SCALE_NV = $870E;
1761 GL_LO_SCALE_NV = $870F;
1762 GL_DS_SCALE_NV = $8710;
1763 GL_DT_SCALE_NV = $8711;
1764 GL_MAGNITUDE_SCALE_NV = $8712;
1765 GL_VIBRANCE_SCALE_NV = $8713;
1766 GL_HI_BIAS_NV = $8714;
1767 GL_LO_BIAS_NV = $8715;
1768 GL_DS_BIAS_NV = $8716;
1769 GL_DT_BIAS_NV = $8717;
1770 GL_MAGNITUDE_BIAS_NV = $8718;
1771 GL_VIBRANCE_BIAS_NV = $8719;
1772 GL_TEXTURE_BORDER_VALUES_NV = $871A;
1773 GL_TEXTURE_HI_SIZE_NV = $871B;
1774 GL_TEXTURE_LO_SIZE_NV = $871C;
1775 GL_TEXTURE_DS_SIZE_NV = $871D;
1776 GL_TEXTURE_DT_SIZE_NV = $871E;
1777 GL_TEXTURE_MAG_SIZE_NV = $871F;
1779 function Load_GL_NV_texture_shader: Boolean;
1781 //***** GL_NV_texture_shader2 *****//
1782 const
1783 GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
1784 // GL_HILO_NV { already defined }
1785 // GL_DSDT_NV { already defined }
1786 // GL_DSDT_MAG_NV { already defined }
1787 // GL_DSDT_MAG_VIB_NV { already defined }
1788 // GL_UNSIGNED_INT_S8_S8_8_8_NV { already defined }
1789 // GL_UNSIGNED_INT_8_8_S8_S8_REV_NV { already defined }
1790 // GL_SIGNED_RGBA_NV { already defined }
1791 // GL_SIGNED_RGBA8_NV { already defined }
1792 // GL_SIGNED_RGB_NV { already defined }
1793 // GL_SIGNED_RGB8_NV { already defined }
1794 // GL_SIGNED_LUMINANCE_NV { already defined }
1795 // GL_SIGNED_LUMINANCE8_NV { already defined }
1796 // GL_SIGNED_LUMINANCE_ALPHA_NV { already defined }
1797 // GL_SIGNED_LUMINANCE8_ALPHA8_NV { already defined }
1798 // GL_SIGNED_ALPHA_NV { already defined }
1799 // GL_SIGNED_ALPHA8_NV { already defined }
1800 // GL_SIGNED_INTENSITY_NV { already defined }
1801 // GL_SIGNED_INTENSITY8_NV { already defined }
1802 // GL_SIGNED_RGB_UNSIGNED_ALPHA_NV { already defined }
1803 // GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV { already defined }
1804 // GL_HILO16_NV { already defined }
1805 // GL_SIGNED_HILO_NV { already defined }
1806 // GL_SIGNED_HILO16_NV { already defined }
1807 // GL_DSDT8_NV { already defined }
1808 // GL_DSDT8_MAG8_NV { already defined }
1809 // GL_DSDT_MAG_INTENSITY_NV { already defined }
1810 // GL_DSDT8_MAG8_INTENSITY8_NV { already defined }
1812 function Load_GL_NV_texture_shader2: Boolean;
1814 //***** GL_NV_texture_shader3 *****//
1815 const
1816 GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
1817 GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
1818 GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
1819 GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
1820 GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
1821 GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
1822 GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
1823 GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
1824 GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
1825 GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
1826 GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
1827 GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
1828 GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
1829 GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
1830 GL_HILO8_NV = $885E;
1831 GL_SIGNED_HILO8_NV = $885F;
1832 GL_FORCE_BLUE_TO_ONE_NV = $8860;
1834 function Load_GL_NV_texture_shader3: Boolean;
1836 //***** GL_NV_vertex_array_range *****//
1837 const
1838 GL_VERTEX_ARRAY_RANGE_NV = $851D;
1839 GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
1840 GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
1841 GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
1842 GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
1843 var
1844 glVertexArrayRangeNV: procedure(length: GLsizei; pointer: PGLvoid); stdcall = nil;
1845 glFlushVertexArrayRangeNV: procedure(); stdcall = nil;
1846 wglAllocateMemoryNV: function(size: GLsizei; readFrequency: GLfloat; writeFrequency: GLfloat; priority: GLfloat): PGLvoid; stdcall = nil;
1847 wglFreeMemoryNV: procedure(pointer: PGLvoid); stdcall = nil;
1849 function Load_GL_NV_vertex_array_range: Boolean;
1851 //***** GL_NV_vertex_array_range2 *****//
1852 const
1853 GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
1855 function Load_GL_NV_vertex_array_range2: Boolean;
1857 //***** GL_NV_vertex_program *****//
1858 const
1859 GL_VERTEX_PROGRAM_NV = $8620;
1860 GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
1861 GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
1862 GL_VERTEX_STATE_PROGRAM_NV = $8621;
1863 GL_ATTRIB_ARRAY_SIZE_NV = $8623;
1864 GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
1865 GL_ATTRIB_ARRAY_TYPE_NV = $8625;
1866 GL_CURRENT_ATTRIB_NV = $8626;
1867 GL_PROGRAM_PARAMETER_NV = $8644;
1868 GL_ATTRIB_ARRAY_POINTER_NV = $8645;
1869 GL_PROGRAM_TARGET_NV = $8646;
1870 GL_PROGRAM_LENGTH_NV = $8627;
1871 GL_PROGRAM_RESIDENT_NV = $8647;
1872 GL_PROGRAM_STRING_NV = $8628;
1873 GL_TRACK_MATRIX_NV = $8648;
1874 GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
1875 GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
1876 GL_MAX_TRACK_MATRICES_NV = $862F;
1877 GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
1878 GL_CURRENT_MATRIX_NV = $8641;
1879 GL_VERTEX_PROGRAM_BINDING_NV = $864A;
1880 GL_PROGRAM_ERROR_POSITION_NV = $864B;
1881 GL_MODELVIEW_PROJECTION_NV = $8629;
1882 GL_MATRIX0_NV = $8630;
1883 GL_MATRIX1_NV = $8631;
1884 GL_MATRIX2_NV = $8632;
1885 GL_MATRIX3_NV = $8633;
1886 GL_MATRIX4_NV = $8634;
1887 GL_MATRIX5_NV = $8635;
1888 GL_MATRIX6_NV = $8636;
1889 GL_MATRIX7_NV = $8637;
1890 GL_IDENTITY_NV = $862A;
1891 GL_INVERSE_NV = $862B;
1892 GL_TRANSPOSE_NV = $862C;
1893 GL_INVERSE_TRANSPOSE_NV = $862D;
1894 GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
1895 GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
1896 GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
1897 GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
1898 GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
1899 GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
1900 GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
1901 GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
1902 GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
1903 GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
1904 GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
1905 GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
1906 GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
1907 GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
1908 GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
1909 GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
1910 GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
1911 GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
1912 GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
1913 GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
1914 GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
1915 GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
1916 GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
1917 GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
1918 GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
1919 GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
1920 GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
1921 GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
1922 GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
1923 GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
1924 GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
1925 GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
1926 GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
1927 GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
1928 GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
1929 GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
1930 GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
1931 GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
1932 GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
1933 GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
1934 GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
1935 GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
1936 GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
1937 GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
1938 GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
1939 GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
1940 GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
1941 GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
1942 var
1943 glBindProgramNV: procedure(target: GLenum; id: GLuint); stdcall = nil;
1944 glDeleteProgramsNV: procedure(n: GLsizei; const ids: PGLuint); stdcall = nil;
1945 glExecuteProgramNV: procedure(target: GLenum; id: GLuint; const params: PGLfloat); stdcall = nil;
1946 glGenProgramsNV: procedure(n: GLsizei; ids: PGLuint); stdcall = nil;
1947 glAreProgramsResidentNV: function(n: GLsizei; const ids: PGLuint; residences: PGLboolean): GLboolean; stdcall = nil;
1948 glRequestResidentProgramsNV: procedure(n: GLsizei; ids: PGLuint); stdcall = nil;
1949 glGetProgramParameterfvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil;
1950 glGetProgramParameterdvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); stdcall = nil;
1951 glGetProgramivNV: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
1952 glGetProgramStringNV: procedure(id: GLuint; pname: GLenum; _program: PGLubyte); stdcall = nil;
1953 glGetTrackMatrixivNV: procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
1954 glGetVertexAttribdvNV: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall = nil;
1955 glGetVertexAttribfvNV: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil;
1956 glGetVertexAttribivNV: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
1957 glGetVertexAttribPointervNV: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); stdcall = nil;
1958 glIsProgramNV: function(id: GLuint): GLboolean; stdcall = nil;
1959 glLoadProgramNV: procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); stdcall = nil;
1960 glProgramParameter4fNV: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil;
1961 glProgramParameter4fvNV: procedure(target: GLenum; index: GLuint; const params: PGLfloat); stdcall = nil;
1962 glProgramParameters4dvNV: procedure(target: GLenum; index: GLuint; num: GLuint; const params: PGLdouble); stdcall = nil;
1963 glProgramParameters4fvNV: procedure(target: GLenum; index: GLuint; num: GLuint; const params: PGLfloat); stdcall = nil;
1964 glTrackMatrixNV: procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); stdcall = nil;
1965 glVertexAttribPointerNV: procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const pointer: PGLvoid); stdcall = nil;
1966 glVertexAttrib1sNV: procedure(index: GLuint; x: GLshort); stdcall = nil;
1967 glVertexAttrib1fNV: procedure(index: GLuint; x: GLfloat); stdcall = nil;
1968 glVertexAttrib1dNV: procedure(index: GLuint; x: GLdouble); stdcall = nil;
1969 glVertexAttrib2sNV: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall = nil;
1970 glVertexAttrib2fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall = nil;
1971 glVertexAttrib2dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall = nil;
1972 glVertexAttrib3sNV: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall = nil;
1973 glVertexAttrib3fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
1974 glVertexAttrib3dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil;
1975 glVertexAttrib4sNV: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall = nil;
1976 glVertexAttrib4fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil;
1977 glVertexAttrib4dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil;
1978 glVertexAttrib4ubNV: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall = nil;
1979 glVertexAttrib1svNV: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
1980 glVertexAttrib1fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
1981 glVertexAttrib1dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
1982 glVertexAttrib2svNV: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
1983 glVertexAttrib2fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
1984 glVertexAttrib2dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
1985 glVertexAttrib3svNV: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
1986 glVertexAttrib3fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
1987 glVertexAttrib3dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
1988 glVertexAttrib4svNV: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
1989 glVertexAttrib4fvNV: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
1990 glVertexAttrib4dvNV: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
1991 glVertexAttrib4ubvNV: procedure(index: GLuint; const v: PGLubyte); stdcall = nil;
1992 glVertexAttribs1svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); stdcall = nil;
1993 glVertexAttribs1fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); stdcall = nil;
1994 glVertexAttribs1dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); stdcall = nil;
1995 glVertexAttribs2svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); stdcall = nil;
1996 glVertexAttribs2fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); stdcall = nil;
1997 glVertexAttribs2dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); stdcall = nil;
1998 glVertexAttribs3svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); stdcall = nil;
1999 glVertexAttribs3fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); stdcall = nil;
2000 glVertexAttribs3dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); stdcall = nil;
2001 glVertexAttribs4svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); stdcall = nil;
2002 glVertexAttribs4fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); stdcall = nil;
2003 glVertexAttribs4dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); stdcall = nil;
2004 glVertexAttribs4ubvNV: procedure(index: GLuint; n: GLsizei; const v: PGLubyte); stdcall = nil;
2006 function Load_GL_NV_vertex_program: Boolean;
2008 //***** GL_NV_vertex_program1_1 *****//
2010 function Load_GL_NV_vertex_program1_1: Boolean;
2012 //***** GL_ATI_element_array *****//
2013 const
2014 GL_ELEMENT_ARRAY_ATI = $8768;
2015 GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
2016 GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
2017 var
2018 glElementPointerATI: procedure(_type: GLenum; const pointer: PGLvoid); stdcall = nil;
2019 glDrawElementArrayATI: procedure(mode: GLenum; count: GLsizei); stdcall = nil;
2020 glDrawRangeElementArrayATI: procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); stdcall = nil;
2022 function Load_GL_ATI_element_array: Boolean;
2024 //***** GL_ATI_envmap_bumpmap *****//
2025 const
2026 GL_BUMP_ROT_MATRIX_ATI = $8775;
2027 GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
2028 GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
2029 GL_BUMP_TEX_UNITS_ATI = $8778;
2030 GL_DUDV_ATI = $8779;
2031 GL_DU8DV8_ATI = $877A;
2032 GL_BUMP_ENVMAP_ATI = $877B;
2033 GL_BUMP_TARGET_ATI = $877C;
2034 var
2035 glTexBumpParameterivATI: procedure(pname: GLenum; param: PGLint); stdcall = nil;
2036 glTexBumpParameterfvATI: procedure(pname: GLenum; param: PGLfloat); stdcall = nil;
2037 glGetTexBumpParameterivATI: procedure(pname: GLenum; param: PGLint); stdcall = nil;
2038 glGetTexBumpParameterfvATI: procedure(pname: GLenum; param: PGLfloat); stdcall = nil;
2040 function Load_GL_ATI_envmap_bumpmap: Boolean;
2042 //***** GL_ATI_fragment_shader *****//
2043 const
2044 GL_FRAGMENT_SHADER_ATI = $8920;
2045 GL_REG_0_ATI = $8921;
2046 GL_REG_1_ATI = $8922;
2047 GL_REG_2_ATI = $8923;
2048 GL_REG_3_ATI = $8924;
2049 GL_REG_4_ATI = $8925;
2050 GL_REG_5_ATI = $8926;
2051 GL_CON_0_ATI = $8941;
2052 GL_CON_1_ATI = $8942;
2053 GL_CON_2_ATI = $8943;
2054 GL_CON_3_ATI = $8944;
2055 GL_CON_4_ATI = $8945;
2056 GL_CON_5_ATI = $8946;
2057 GL_CON_6_ATI = $8947;
2058 GL_CON_7_ATI = $8948;
2059 GL_MOV_ATI = $8961;
2060 GL_ADD_ATI = $8963;
2061 GL_MUL_ATI = $8964;
2062 GL_SUB_ATI = $8965;
2063 GL_DOT3_ATI = $8966;
2064 GL_DOT4_ATI = $8967;
2065 GL_MAD_ATI = $8968;
2066 GL_LERP_ATI = $8969;
2067 GL_CND_ATI = $896A;
2068 GL_CND0_ATI = $896B;
2069 GL_DOT2_ADD_ATI = $896C;
2070 GL_SECONDARY_INTERPOLATOR_ATI = $896D;
2071 GL_SWIZZLE_STR_ATI = $8976;
2072 GL_SWIZZLE_STQ_ATI = $8977;
2073 GL_SWIZZLE_STR_DR_ATI = $8978;
2074 GL_SWIZZLE_STQ_DQ_ATI = $8979;
2075 GL_RED_BIT_ATI = $0001;
2076 GL_GREEN_BIT_ATI = $0002;
2077 GL_BLUE_BIT_ATI = $0004;
2078 GL_2X_BIT_ATI = $0001;
2079 GL_4X_BIT_ATI = $0002;
2080 GL_8X_BIT_ATI = $0004;
2081 GL_HALF_BIT_ATI = $0008;
2082 GL_QUARTER_BIT_ATI = $0010;
2083 GL_EIGHTH_BIT_ATI = $0020;
2084 GL_SATURATE_BIT_ATI = $0040;
2085 // GL_2X_BIT_ATI { already defined }
2086 GL_COMP_BIT_ATI = $0002;
2087 GL_NEGATE_BIT_ATI = $0004;
2088 GL_BIAS_BIT_ATI = $0008;
2089 var
2090 glGenFragmentShadersATI: function(range: GLuint): GLuint; stdcall = nil;
2091 glBindFragmentShaderATI: procedure(id: GLuint); stdcall = nil;
2092 glDeleteFragmentShaderATI: procedure(id: GLuint); stdcall = nil;
2093 glBeginFragmentShaderATI: procedure(); stdcall = nil;
2094 glEndFragmentShaderATI: procedure(); stdcall = nil;
2095 glPassTexCoordATI: procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); stdcall = nil;
2096 glSampleMapATI: procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); stdcall = nil;
2097 glColorFragmentOp1ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); stdcall = nil;
2098 glColorFragmentOp2ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); stdcall = nil;
2099 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;
2100 glAlphaFragmentOp1ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); stdcall = nil;
2101 glAlphaFragmentOp2ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); stdcall = nil;
2102 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;
2103 glSetFragmentShaderConstantATI: procedure(dst: GLuint; const value: PGLfloat); stdcall = nil;
2105 function Load_GL_ATI_fragment_shader: Boolean;
2107 //***** GL_ATI_pn_triangles *****//
2108 const
2109 GL_PN_TRIANGLES_ATI = $87F0;
2110 GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
2111 GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
2112 GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
2113 GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
2114 GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
2115 GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
2116 GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
2117 GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
2118 var
2119 glPNTrianglesiATI: procedure(pname: GLenum; param: GLint); stdcall = nil;
2120 glPNTrianglesfATI: procedure(pname: GLenum; param: GLfloat); stdcall = nil;
2122 function Load_GL_ATI_pn_triangles: Boolean;
2124 //***** GL_ATI_texture_mirror_once *****//
2125 const
2126 GL_MIRROR_CLAMP_ATI = $8742;
2127 GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
2129 function Load_GL_ATI_texture_mirror_once: Boolean;
2131 //***** GL_ATI_vertex_array_object *****//
2132 const
2133 GL_STATIC_ATI = $8760;
2134 GL_DYNAMIC_ATI = $8761;
2135 GL_PRESERVE_ATI = $8762;
2136 GL_DISCARD_ATI = $8763;
2137 GL_OBJECT_BUFFER_SIZE_ATI = $8764;
2138 GL_OBJECT_BUFFER_USAGE_ATI = $8765;
2139 GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
2140 GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
2141 var
2142 glNewObjectBufferATI: function(size: GLsizei; const pointer: PGLvoid; usage: GLenum): GLuint; stdcall = nil;
2143 glIsObjectBufferATI: function(buffer: GLuint): GLboolean; stdcall = nil;
2144 glUpdateObjectBufferATI: procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const pointer: PGLvoid; preserve: GLenum); stdcall = nil;
2145 glGetObjectBufferfvATI: procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil;
2146 glGetObjectBufferivATI: procedure(buffer: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
2147 glDeleteObjectBufferATI: procedure(buffer: GLuint); stdcall = nil;
2148 glArrayObjectATI: procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall = nil;
2149 glGetArrayObjectfvATI: procedure(_array: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
2150 glGetArrayObjectivATI: procedure(_array: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
2151 glVariantArrayObjectATI: procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall = nil;
2152 glGetVariantArrayObjectfvATI: procedure(id: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil;
2153 glGetVariantArrayObjectivATI: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
2155 function Load_GL_ATI_vertex_array_object: Boolean;
2157 //***** GL_ATI_vertex_streams *****//
2158 const
2159 GL_MAX_VERTEX_STREAMS_ATI = $876B;
2160 GL_VERTEX_STREAM0_ATI = $876C;
2161 GL_VERTEX_STREAM1_ATI = $876D;
2162 GL_VERTEX_STREAM2_ATI = $876E;
2163 GL_VERTEX_STREAM3_ATI = $876F;
2164 GL_VERTEX_STREAM4_ATI = $8770;
2165 GL_VERTEX_STREAM5_ATI = $8771;
2166 GL_VERTEX_STREAM6_ATI = $8772;
2167 GL_VERTEX_STREAM7_ATI = $8773;
2168 GL_VERTEX_SOURCE_ATI = $8774;
2169 var
2170 glVertexStream1s: procedure(stream: GLenum; coords: GLshort); stdcall = nil;
2171 glVertexStream1i: procedure(stream: GLenum; coords: GLint); stdcall = nil;
2172 glVertexStream1f: procedure(stream: GLenum; coords: GLfloat); stdcall = nil;
2173 glVertexStream1d: procedure(stream: GLenum; coords: GLdouble); stdcall = nil;
2174 glVertexStream1sv: procedure(stream: GLenum; coords: GLshort); stdcall = nil;
2175 glVertexStream1iv: procedure(stream: GLenum; coords: GLint); stdcall = nil;
2176 glVertexStream1fv: procedure(stream: GLenum; coords: GLfloat); stdcall = nil;
2177 glVertexStream1dv: procedure(stream: GLenum; coords: GLdouble); stdcall = nil;
2178 glVertexStream2s: procedure(stream: GLenum; coords: GLshort); stdcall = nil;
2179 glVertexStream2i: procedure(stream: GLenum; coords: GLint); stdcall = nil;
2180 glVertexStream2f: procedure(stream: GLenum; coords: GLfloat); stdcall = nil;
2181 glVertexStream2d: procedure(stream: GLenum; coords: GLdouble); stdcall = nil;
2182 glVertexStream2sv: procedure(stream: GLenum; coords: GLshort); stdcall = nil;
2183 glVertexStream2iv: procedure(stream: GLenum; coords: GLint); stdcall = nil;
2184 glVertexStream2fv: procedure(stream: GLenum; coords: GLfloat); stdcall = nil;
2185 glVertexStream2dv: procedure(stream: GLenum; coords: GLdouble); stdcall = nil;
2186 glVertexStream3s: procedure(stream: GLenum; coords: GLshort); stdcall = nil;
2187 glVertexStream3i: procedure(stream: GLenum; coords: GLint); stdcall = nil;
2188 glVertexStream3f: procedure(stream: GLenum; coords: GLfloat); stdcall = nil;
2189 glVertexStream3d: procedure(stream: GLenum; coords: GLdouble); stdcall = nil;
2190 glVertexStream3sv: procedure(stream: GLenum; coords: GLshort); stdcall = nil;
2191 glVertexStream3iv: procedure(stream: GLenum; coords: GLint); stdcall = nil;
2192 glVertexStream3fv: procedure(stream: GLenum; coords: GLfloat); stdcall = nil;
2193 glVertexStream3dv: procedure(stream: GLenum; coords: GLdouble); stdcall = nil;
2194 glVertexStream4s: procedure(stream: GLenum; coords: GLshort); stdcall = nil;
2195 glVertexStream4i: procedure(stream: GLenum; coords: GLint); stdcall = nil;
2196 glVertexStream4f: procedure(stream: GLenum; coords: GLfloat); stdcall = nil;
2197 glVertexStream4d: procedure(stream: GLenum; coords: GLdouble); stdcall = nil;
2198 glVertexStream4sv: procedure(stream: GLenum; coords: GLshort); stdcall = nil;
2199 glVertexStream4iv: procedure(stream: GLenum; coords: GLint); stdcall = nil;
2200 glVertexStream4fv: procedure(stream: GLenum; coords: GLfloat); stdcall = nil;
2201 glVertexStream4dv: procedure(stream: GLenum; coords: GLdouble); stdcall = nil;
2202 glNormalStream3b: procedure(stream: GLenum; coords: GLbyte); stdcall = nil;
2203 glNormalStream3s: procedure(stream: GLenum; coords: GLshort); stdcall = nil;
2204 glNormalStream3i: procedure(stream: GLenum; coords: GLint); stdcall = nil;
2205 glNormalStream3f: procedure(stream: GLenum; coords: GLfloat); stdcall = nil;
2206 glNormalStream3d: procedure(stream: GLenum; coords: GLdouble); stdcall = nil;
2207 glNormalStream3bv: procedure(stream: GLenum; coords: GLbyte); stdcall = nil;
2208 glNormalStream3sv: procedure(stream: GLenum; coords: GLshort); stdcall = nil;
2209 glNormalStream3iv: procedure(stream: GLenum; coords: GLint); stdcall = nil;
2210 glNormalStream3fv: procedure(stream: GLenum; coords: GLfloat); stdcall = nil;
2211 glNormalStream3dv: procedure(stream: GLenum; coords: GLdouble); stdcall = nil;
2212 glClientActiveVertexStream: procedure(stream: GLenum); stdcall = nil;
2213 glVertexBlendEnvi: procedure(pname: GLenum; param: GLint); stdcall = nil;
2214 glVertexBlendEnvf: procedure(pname: GLenum; param: GLfloat); stdcall = nil;
2216 function Load_GL_ATI_vertex_streams: Boolean;
2218 //***** WGL_I3D_image_buffer *****//
2219 const
2220 WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $0001;
2221 WGL_IMAGE_BUFFER_LOCK_I3D = $0002;
2222 var
2223 wglCreateImageBufferI3D: function(hDC: HDC; dwSize: DWORD; uFlags: UINT): PGLvoid; stdcall = nil;
2224 wglDestroyImageBufferI3D: function(hDC: HDC; pAddress: PGLvoid): BOOL; stdcall = nil;
2225 wglAssociateImageBufferEventsI3D: function(hdc: HDC; pEvent: PHandle; pAddress: PGLvoid; pSize: PDWORD; count: UINT): BOOL; stdcall = nil;
2226 wglReleaseImageBufferEventsI3D: function(hdc: HDC; pAddress: PGLvoid; count: UINT): BOOL; stdcall = nil;
2228 function Load_WGL_I3D_image_buffer: Boolean;
2230 //***** WGL_I3D_swap_frame_lock *****//
2231 var
2232 wglEnableFrameLockI3D: function(): BOOL; stdcall = nil;
2233 wglDisableFrameLockI3D: function(): BOOL; stdcall = nil;
2234 wglIsEnabledFrameLockI3D: function(pFlag: PBOOL): BOOL; stdcall = nil;
2235 wglQueryFrameLockMasterI3D: function(pFlag: PBOOL): BOOL; stdcall = nil;
2237 function Load_WGL_I3D_swap_frame_lock: Boolean;
2239 //***** WGL_I3D_swap_frame_usage *****//
2240 var
2241 wglGetFrameUsageI3D: function(pUsage: PGLfloat): BOOL; stdcall = nil;
2242 wglBeginFrameTrackingI3D: function(): BOOL; stdcall = nil;
2243 wglEndFrameTrackingI3D: function(): BOOL; stdcall = nil;
2244 wglQueryFrameTrackingI3D: function(pFrameCount: PDWORD; pMissedFrames: PDWORD; pLastMissedUsage: PGLfloat): BOOL; stdcall = nil;
2246 function Load_WGL_I3D_swap_frame_usage: Boolean;
2248 //***** GL_3DFX_texture_compression_FXT1 *****//
2249 const
2250 GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
2251 GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
2253 function Load_GL_3DFX_texture_compression_FXT1: Boolean;
2255 //***** GL_IBM_cull_vertex *****//
2256 const
2257 GL_CULL_VERTEX_IBM = $1928A;
2259 function Load_GL_IBM_cull_vertex: Boolean;
2261 //***** GL_IBM_multimode_draw_arrays *****//
2262 var
2263 glMultiModeDrawArraysIBM: procedure(mode: PGLenum; first: PGLint; count: PGLsizei; primcount: GLsizei; modestride: GLint); stdcall = nil;
2264 glMultiModeDrawElementsIBM: procedure(mode: PGLenum; count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); stdcall = nil;
2266 function Load_GL_IBM_multimode_draw_arrays: Boolean;
2268 //***** GL_IBM_raster_pos_clip *****//
2269 const
2270 GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
2272 function Load_GL_IBM_raster_pos_clip: Boolean;
2274 //***** GL_IBM_texture_mirrored_repeat *****//
2275 const
2276 GL_MIRRORED_REPEAT_IBM = $8370;
2278 function Load_GL_IBM_texture_mirrored_repeat: Boolean;
2280 //***** GL_IBM_vertex_array_lists *****//
2281 const
2282 GL_VERTEX_ARRAY_LIST_IBM = $1929E;
2283 GL_NORMAL_ARRAY_LIST_IBM = $1929F;
2284 GL_COLOR_ARRAY_LIST_IBM = $192A0;
2285 GL_INDEX_ARRAY_LIST_IBM = $192A1;
2286 GL_TEXTURE_COORD_ARRAY_LIST_IBM = $192A2;
2287 GL_EDGE_FLAG_ARRAY_LIST_IBM = $192A3;
2288 GL_FOG_COORDINATE_ARRAY_LIST_IBM = $192A4;
2289 GL_SECONDARY_COLOR_ARRAY_LIST_IBM = $192A5;
2290 GL_VERTEX_ARRAY_LIST_STRIDE_IBM = $192A8;
2291 GL_NORMAL_ARRAY_LIST_STRIDE_IBM = $192A9;
2292 GL_COLOR_ARRAY_LIST_STRIDE_IBM = $192AA;
2293 GL_INDEX_ARRAY_LIST_STRIDE_IBM = $192AB;
2294 GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = $192AC;
2295 GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = $192AD;
2296 GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = $192AE;
2297 GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = $192AF;
2298 var
2299 glColorPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil;
2300 glSecondaryColorPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil;
2301 glEdgeFlagPointerListIBM: procedure(stride: GLint; const pointer: PGLboolean; ptrstride: GLint); stdcall = nil;
2302 glFogCoordPointerListIBM: procedure(_type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil;
2303 glNormalPointerListIBM: procedure(_type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil;
2304 glTexCoordPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil;
2305 glVertexPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); stdcall = nil;
2307 function Load_GL_IBM_vertex_array_lists: Boolean;
2309 //***** GL_MESA_resize_buffers *****//
2310 var
2311 glResizeBuffersMESA: procedure(); stdcall = nil;
2313 function Load_GL_MESA_resize_buffers: Boolean;
2315 //***** GL_MESA_window_pos *****//
2316 var
2317 glWindowPos2dMESA: procedure(x: GLdouble; y: GLdouble); stdcall = nil;
2318 glWindowPos2fMESA: procedure(x: GLfloat; y: GLfloat); stdcall = nil;
2319 glWindowPos2iMESA: procedure(x: GLint; y: GLint); stdcall = nil;
2320 glWindowPos2sMESA: procedure(x: GLshort; y: GLshort); stdcall = nil;
2321 glWindowPos2ivMESA: procedure(const p: PGLint); stdcall = nil;
2322 glWindowPos2svMESA: procedure(const p: PGLshort); stdcall = nil;
2323 glWindowPos2fvMESA: procedure(const p: PGLfloat); stdcall = nil;
2324 glWindowPos2dvMESA: procedure(const p: PGLdouble); stdcall = nil;
2325 glWindowPos3iMESA: procedure(x: GLint; y: GLint; z: GLint); stdcall = nil;
2326 glWindowPos3sMESA: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall = nil;
2327 glWindowPos3fMESA: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2328 glWindowPos3dMESA: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil;
2329 glWindowPos3ivMESA: procedure(const p: PGLint); stdcall = nil;
2330 glWindowPos3svMESA: procedure(const p: PGLshort); stdcall = nil;
2331 glWindowPos3fvMESA: procedure(const p: PGLfloat); stdcall = nil;
2332 glWindowPos3dvMESA: procedure(const p: PGLdouble); stdcall = nil;
2333 glWindowPos4iMESA: procedure(x: GLint; y: GLint; z: GLint; w: GLint); stdcall = nil;
2334 glWindowPos4sMESA: procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall = nil;
2335 glWindowPos4fMESA: procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil;
2336 glWindowPos4dMESA: procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil;
2337 glWindowPos4ivMESA: procedure(const p: PGLint); stdcall = nil;
2338 glWindowPos4svMESA: procedure(const p: PGLshort); stdcall = nil;
2339 glWindowPos4fvMESA: procedure(const p: PGLfloat); stdcall = nil;
2340 glWindowPos4dvMESA: procedure(const p: PGLdouble); stdcall = nil;
2342 function Load_GL_MESA_window_pos: Boolean;
2344 //***** GL_OML_interlace *****//
2345 const
2346 GL_INTERLACE_OML = $8980;
2347 GL_INTERLACE_READ_OML = $8981;
2349 function Load_GL_OML_interlace: Boolean;
2351 //***** GL_OML_resample *****//
2352 const
2353 GL_PACK_RESAMPLE_OML = $8984;
2354 GL_UNPACK_RESAMPLE_OML = $8985;
2355 GL_RESAMPLE_REPLICATE_OML = $8986;
2356 GL_RESAMPLE_ZERO_FILL_OML = $8987;
2357 GL_RESAMPLE_AVERAGE_OML = $8988;
2358 GL_RESAMPLE_DECIMATE_OML = $8989;
2359 // GL_RESAMPLE_AVERAGE_OML { already defined }
2361 function Load_GL_OML_resample: Boolean;
2363 //***** GL_OML_subsample *****//
2364 const
2365 GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
2366 GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
2368 function Load_GL_OML_subsample: Boolean;
2370 //***** GL_SGIS_generate_mipmap *****//
2371 const
2372 GL_GENERATE_MIPMAP_SGIS = $8191;
2373 GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
2375 function Load_GL_SGIS_generate_mipmap: Boolean;
2377 //***** GL_SGIS_multisample *****//
2378 const
2379 GLX_SAMPLE_BUFFERS_SGIS = $186A0;
2380 GLX_SAMPLES_SGIS = $186A1;
2381 GL_MULTISAMPLE_SGIS = $809D;
2382 GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
2383 GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
2384 GL_SAMPLE_MASK_SGIS = $80A0;
2385 GL_MULTISAMPLE_BIT_EXT = $20000000;
2386 GL_1PASS_SGIS = $80A1;
2387 GL_2PASS_0_SGIS = $80A2;
2388 GL_2PASS_1_SGIS = $80A3;
2389 GL_4PASS_0_SGIS = $80A4;
2390 GL_4PASS_1_SGIS = $80A5;
2391 GL_4PASS_2_SGIS = $80A6;
2392 GL_4PASS_3_SGIS = $80A7;
2393 GL_SAMPLE_BUFFERS_SGIS = $80A8;
2394 GL_SAMPLES_SGIS = $80A9;
2395 GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
2396 GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
2397 GL_SAMPLE_PATTERN_SGIS = $80AC;
2398 var
2399 glSampleMaskSGIS: procedure(value: GLclampf; invert: GLboolean); stdcall = nil;
2400 glSamplePatternSGIS: procedure(pattern: GLenum); stdcall = nil;
2402 function Load_GL_SGIS_multisample: Boolean;
2404 //***** GL_SGIS_pixel_texture *****//
2405 const
2406 GL_PIXEL_TEXTURE_SGIS = $8353;
2407 GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
2408 GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
2409 GL_PIXEL_GROUP_COLOR_SGIS = $8356;
2410 var
2411 glPixelTexGenParameteriSGIS: procedure(pname: GLenum; param: GLint); stdcall = nil;
2412 glPixelTexGenParameterfSGIS: procedure(pname: GLenum; param: GLfloat); stdcall = nil;
2413 glGetPixelTexGenParameterivSGIS: procedure(pname: GLenum; params: GLint); stdcall = nil;
2414 glGetPixelTexGenParameterfvSGIS: procedure(pname: GLenum; params: GLfloat); stdcall = nil;
2416 function Load_GL_SGIS_pixel_texture: Boolean;
2418 //***** GL_SGIS_texture_border_clamp *****//
2419 // GL_CLAMP_TO_BORDER_SGIS { already defined }
2421 function Load_GL_SGIS_texture_border_clamp: Boolean;
2423 //***** GL_SGIS_texture_color_mask *****//
2424 const
2425 GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
2426 var
2427 glTextureColorMaskSGIS: procedure(r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); stdcall = nil;
2429 function Load_GL_SGIS_texture_color_mask: Boolean;
2431 //***** GL_SGIS_texture_edge_clamp *****//
2432 const
2433 GL_CLAMP_TO_EDGE_SGIS = $812F;
2435 function Load_GL_SGIS_texture_edge_clamp: Boolean;
2437 //***** GL_SGIS_texture_lod *****//
2438 const
2439 GL_TEXTURE_MIN_LOD_SGIS = $813A;
2440 GL_TEXTURE_MAX_LOD_SGIS = $813B;
2441 GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
2442 GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
2444 function Load_GL_SGIS_texture_lod: Boolean;
2446 //***** GL_SGIS_depth_texture *****//
2447 const
2448 GL_DEPTH_COMPONENT16_SGIX = $81A5;
2449 GL_DEPTH_COMPONENT24_SGIX = $81A6;
2450 GL_DEPTH_COMPONENT32_SGIX = $81A7;
2452 function Load_GL_SGIS_depth_texture: Boolean;
2454 //***** GL_SGIX_fog_offset *****//
2455 const
2456 GL_FOG_OFFSET_SGIX = $8198;
2457 GL_FOG_OFFSET_VALUE_SGIX = $8199;
2459 function Load_GL_SGIX_fog_offset: Boolean;
2461 //***** GL_SGIX_interlace *****//
2462 const
2463 GL_INTERLACE_SGIX = $8094;
2465 function Load_GL_SGIX_interlace: Boolean;
2467 //***** GL_SGIX_shadow_ambient *****//
2468 const
2469 GL_SHADOW_AMBIENT_SGIX = $80BF;
2471 function Load_GL_SGIX_shadow_ambient: Boolean;
2473 //***** GL_SGI_color_matrix *****//
2474 const
2475 GL_COLOR_MATRIX_SGI = $80B1;
2476 GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
2477 GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
2478 GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
2479 GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
2480 GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
2481 GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
2482 GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
2483 GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
2484 GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
2485 GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
2487 function Load_GL_SGI_color_matrix: Boolean;
2489 //***** GL_SGI_color_table *****//
2490 const
2491 GL_COLOR_TABLE_SGI = $80D0;
2492 GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
2493 GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
2494 GL_PROXY_COLOR_TABLE_SGI = $80D3;
2495 GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
2496 GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
2497 GL_COLOR_TABLE_SCALE_SGI = $80D6;
2498 GL_COLOR_TABLE_BIAS_SGI = $80D7;
2499 GL_COLOR_TABLE_FORMAT_SGI = $80D8;
2500 GL_COLOR_TABLE_WIDTH_SGI = $80D9;
2501 GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
2502 GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
2503 GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
2504 GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
2505 GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
2506 GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
2507 var
2508 glColorTableSGI: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); stdcall = nil;
2509 glCopyColorTableSGI: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); stdcall = nil;
2510 glColorTableParameterivSGI: procedure(target: GLenum; pname: GLenum; const params: PGLint); stdcall = nil;
2511 glColorTableParameterfvSGI: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); stdcall = nil;
2512 glGetColorTableSGI: procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); stdcall = nil;
2513 glGetColorTableParameterivSGI: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
2514 glGetColorTableParameterfvSGI: procedure(target: GLenum; pname: GLenum; params: PGLfloat); stdcall = nil;
2516 function Load_GL_SGI_color_table: Boolean;
2518 //***** GL_SGI_texture_color_table *****//
2519 const
2520 GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
2521 GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
2523 function Load_GL_SGI_texture_color_table: Boolean;
2525 //***** GL_SUN_vertex *****//
2526 var
2527 glColor4ubVertex2fSUN: procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); stdcall = nil;
2528 glColor4ubVertex2fvSUN: procedure(const c: PGLubyte; const v: PGLfloat); stdcall = nil;
2529 glColor4ubVertex3fSUN: procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2530 glColor4ubVertex3fvSUN: procedure(const c: PGLubyte; const v: PGLfloat); stdcall = nil;
2531 glColor3fVertex3fSUN: procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2532 glColor3fVertex3fvSUN: procedure(const c: PGLfloat; const v: PGLfloat); stdcall = nil;
2533 glNormal3fVertex3fSUN: procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2534 glNormal3fVertex3fvSUN: procedure(const n: PGLfloat; const v: PGLfloat); stdcall = nil;
2535 glColor4fNormal3fVertex3fSUN: procedure(r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2536 glColor4fNormal3fVertex3fvSUN: procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil;
2537 glTexCoord2fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2538 glTexCoord2fVertex3fvSUN: procedure(const tc: PGLfloat; const v: PGLfloat); stdcall = nil;
2539 glTexCoord4fVertex4fSUN: procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil;
2540 glTexCoord4fVertex4fvSUN: procedure(const tc: PGLfloat; const v: PGLfloat); stdcall = nil;
2541 glTexCoord2fColor4ubVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2542 glTexCoord2fColor4ubVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); stdcall = nil;
2543 glTexCoord2fColor3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2544 glTexCoord2fColor3fVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); stdcall = nil;
2545 glTexCoord2fNormal3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2546 glTexCoord2fNormal3fVertex3fvSUN: procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil;
2547 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;
2548 glTexCoord2fColor4fNormal3fVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil;
2549 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;
2550 glTexCoord4fColor4fNormal3fVertex4fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil;
2551 glReplacementCodeuiVertex3fSUN: procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2552 glReplacementCodeuiVertex3fvSUN: procedure(const rc: PGLuint; const v: PGLfloat); stdcall = nil;
2553 glReplacementCodeuiColor4ubVertex3fSUN: procedure(rc: GLuint; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2554 glReplacementCodeuiColor4ubVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); stdcall = nil;
2555 glReplacementCodeuiColor3fVertex3fSUN: procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2556 glReplacementCodeuiColor3fVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); stdcall = nil;
2557 glReplacementCodeuiNormal3fVertex3fSUN: procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2558 glReplacementCodeuiNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); stdcall = nil;
2559 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;
2560 glReplacementCodeuiColor4fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil;
2561 glReplacementCodeuiTexCoord2fVertex3fSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2562 glReplacementCodeuiTexCoord2fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); stdcall = nil;
2563 glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
2564 glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil;
2565 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;
2566 glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); stdcall = nil;
2568 function Load_GL_SUN_vertex: Boolean;
2570 //***** GL_ARB_fragment_program *****//
2571 const
2572 GL_FRAGMENT_PROGRAM_ARB = $8804;
2573 // GL_PROGRAM_FORMAT_ASCII_ARB { already defined }
2574 // GL_PROGRAM_LENGTH_ARB { already defined }
2575 // GL_PROGRAM_FORMAT_ARB { already defined }
2576 // GL_PROGRAM_BINDING_ARB { already defined }
2577 // GL_PROGRAM_INSTRUCTIONS_ARB { already defined }
2578 // GL_MAX_PROGRAM_INSTRUCTIONS_ARB { already defined }
2579 // GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB { already defined }
2580 // GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB { already defined }
2581 // GL_PROGRAM_TEMPORARIES_ARB { already defined }
2582 // GL_MAX_PROGRAM_TEMPORARIES_ARB { already defined }
2583 // GL_PROGRAM_NATIVE_TEMPORARIES_ARB { already defined }
2584 // GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB { already defined }
2585 // GL_PROGRAM_PARAMETERS_ARB { already defined }
2586 // GL_MAX_PROGRAM_PARAMETERS_ARB { already defined }
2587 // GL_PROGRAM_NATIVE_PARAMETERS_ARB { already defined }
2588 // GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB { already defined }
2589 // GL_PROGRAM_ATTRIBS_ARB { already defined }
2590 // GL_MAX_PROGRAM_ATTRIBS_ARB { already defined }
2591 // GL_PROGRAM_NATIVE_ATTRIBS_ARB { already defined }
2592 // GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB { already defined }
2593 // GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB { already defined }
2594 // GL_MAX_PROGRAM_ENV_PARAMETERS_ARB { already defined }
2595 // GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB { already defined }
2596 GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
2597 GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
2598 GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
2599 GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
2600 GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
2601 GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
2602 GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
2603 GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
2604 GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
2605 GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
2606 GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
2607 GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
2608 // GL_PROGRAM_STRING_ARB { already defined }
2609 // GL_PROGRAM_ERROR_POSITION_ARB { already defined }
2610 // GL_CURRENT_MATRIX_ARB { already defined }
2611 // GL_TRANSPOSE_CURRENT_MATRIX_ARB { already defined }
2612 // GL_CURRENT_MATRIX_STACK_DEPTH_ARB { already defined }
2613 // GL_MAX_PROGRAM_MATRICES_ARB { already defined }
2614 // GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB { already defined }
2615 GL_MAX_TEXTURE_COORDS_ARB = $8871;
2616 GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
2617 // GL_PROGRAM_ERROR_STRING_ARB { already defined }
2618 // GL_MATRIX0_ARB { already defined }
2619 // GL_MATRIX1_ARB { already defined }
2620 // GL_MATRIX2_ARB { already defined }
2621 // GL_MATRIX3_ARB { already defined }
2622 // GL_MATRIX4_ARB { already defined }
2623 // GL_MATRIX5_ARB { already defined }
2624 // GL_MATRIX6_ARB { already defined }
2625 // GL_MATRIX7_ARB { already defined }
2626 // GL_MATRIX8_ARB { already defined }
2627 // GL_MATRIX9_ARB { already defined }
2628 // GL_MATRIX10_ARB { already defined }
2629 // GL_MATRIX11_ARB { already defined }
2630 // GL_MATRIX12_ARB { already defined }
2631 // GL_MATRIX13_ARB { already defined }
2632 // GL_MATRIX14_ARB { already defined }
2633 // GL_MATRIX15_ARB { already defined }
2634 // GL_MATRIX16_ARB { already defined }
2635 // GL_MATRIX17_ARB { already defined }
2636 // GL_MATRIX18_ARB { already defined }
2637 // GL_MATRIX19_ARB { already defined }
2638 // GL_MATRIX20_ARB { already defined }
2639 // GL_MATRIX21_ARB { already defined }
2640 // GL_MATRIX22_ARB { already defined }
2641 // GL_MATRIX23_ARB { already defined }
2642 // GL_MATRIX24_ARB { already defined }
2643 // GL_MATRIX25_ARB { already defined }
2644 // GL_MATRIX26_ARB { already defined }
2645 // GL_MATRIX27_ARB { already defined }
2646 // GL_MATRIX28_ARB { already defined }
2647 // GL_MATRIX29_ARB { already defined }
2648 // GL_MATRIX30_ARB { already defined }
2649 // GL_MATRIX31_ARB { already defined }
2650 // glProgramStringARB { already defined }
2651 // glBindProgramARB { already defined }
2652 // glDeleteProgramsARB { already defined }
2653 // glGenProgramsARB { already defined }
2654 // glProgramEnvParameter4dARB { already defined }
2655 // glProgramEnvParameter4dvARB { already defined }
2656 // glProgramEnvParameter4fARB { already defined }
2657 // glProgramEnvParameter4fvARB { already defined }
2658 // glProgramLocalParameter4dARB { already defined }
2659 // glProgramLocalParameter4dvARB { already defined }
2660 // glProgramLocalParameter4fARB { already defined }
2661 // glProgramLocalParameter4fvARB { already defined }
2662 // glGetProgramEnvParameterdvARB { already defined }
2663 // glGetProgramEnvParameterfvARB { already defined }
2664 // glGetProgramLocalParameterdvARB { already defined }
2665 // glGetProgramLocalParameterfvARB { already defined }
2666 // glGetProgramivARB { already defined }
2667 // glGetProgramStringARB { already defined }
2668 // glIsProgramARB { already defined }
2670 function Load_GL_ARB_fragment_program: Boolean;
2672 //***** GL_ATI_text_fragment_shader *****//
2673 const
2674 GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
2676 function Load_GL_ATI_text_fragment_shader: Boolean;
2678 //***** GL_APPLE_client_storage *****//
2679 const
2680 GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
2682 function Load_GL_APPLE_client_storage: Boolean;
2684 //***** GL_APPLE_element_array *****//
2685 const
2686 GL_ELEMENT_ARRAY_APPLE = $8768;
2687 GL_ELEMENT_ARRAY_TYPE_APPLE = $8769;
2688 GL_ELEMENT_ARRAY_POINTER_APPLE = $876A;
2689 var
2690 glElementPointerAPPLE: procedure(_type: GLenum; const pointer: PGLvoid); stdcall = nil;
2691 glDrawElementArrayAPPLE: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall = nil;
2692 glDrawRangeElementArrayAPPLE: procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); stdcall = nil;
2693 glMultiDrawElementArrayAPPLE: procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall = nil;
2694 glMultiDrawRangeElementArrayAPPLE: procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall = nil;
2696 function Load_GL_APPLE_element_array: Boolean;
2698 //***** GL_APPLE_fence *****//
2699 const
2700 GL_DRAW_PIXELS_APPLE = $8A0A;
2701 GL_FENCE_APPLE = $8A0B;
2702 var
2703 glGenFencesAPPLE: procedure(n: GLsizei; fences: PGLuint); stdcall = nil;
2704 glDeleteFencesAPPLE: procedure(n: GLsizei; const fences: PGLuint); stdcall = nil;
2705 glSetFenceAPPLE: procedure(fence: GLuint); stdcall = nil;
2706 glIsFenceAPPLE: function(fence: GLuint): GLboolean; stdcall = nil;
2707 glTestFenceAPPLE: function(fence: GLuint): GLboolean; stdcall = nil;
2708 glFinishFenceAPPLE: procedure(fence: GLuint); stdcall = nil;
2709 glTestObjectAPPLE: function(_object: GLenum; name: GLuint): GLboolean; stdcall = nil;
2710 glFinishObjectAPPLE: procedure(_object: GLenum; name: GLint); stdcall = nil;
2712 function Load_GL_APPLE_fence: Boolean;
2714 //***** GL_APPLE_vertex_array_object *****//
2715 const
2716 GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
2717 var
2718 glBindVertexArrayAPPLE: procedure(_array: GLuint); stdcall = nil;
2719 glDeleteVertexArraysAPPLE: procedure(n: GLsizei; const arrays: PGLuint); stdcall = nil;
2720 glGenVertexArraysAPPLE: procedure(n: GLsizei; const arrays: PGLuint); stdcall = nil;
2721 glIsVertexArrayAPPLE: function(_array: GLuint): GLboolean; stdcall = nil;
2723 function Load_GL_APPLE_vertex_array_object: Boolean;
2725 //***** GL_APPLE_vertex_array_range *****//
2726 const
2727 GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
2728 GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
2729 GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE = $8520;
2730 GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
2731 GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
2732 GL_STORAGE_CACHED_APPLE = $85BE;
2733 GL_STORAGE_SHARED_APPLE = $85BF;
2734 var
2735 glVertexArrayRangeAPPLE: procedure(length: GLsizei; pointer: PGLvoid); stdcall = nil;
2736 glFlushVertexArrayRangeAPPLE: procedure(length: GLsizei; pointer: PGLvoid); stdcall = nil;
2737 glVertexArrayParameteriAPPLE: procedure(pname: GLenum; param: GLint); stdcall = nil;
2739 function Load_GL_APPLE_vertex_array_range: Boolean;
2741 //***** WGL_ARB_pixel_format *****//
2742 const
2743 WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
2744 WGL_DRAW_TO_WINDOW_ARB = $2001;
2745 WGL_DRAW_TO_BITMAP_ARB = $2002;
2746 WGL_ACCELERATION_ARB = $2003;
2747 WGL_NEED_PALETTE_ARB = $2004;
2748 WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
2749 WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
2750 WGL_SWAP_METHOD_ARB = $2007;
2751 WGL_NUMBER_OVERLAYS_ARB = $2008;
2752 WGL_NUMBER_UNDERLAYS_ARB = $2009;
2753 WGL_TRANSPARENT_ARB = $200A;
2754 WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
2755 WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
2756 WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
2757 WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
2758 WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
2759 WGL_SHARE_DEPTH_ARB = $200C;
2760 WGL_SHARE_STENCIL_ARB = $200D;
2761 WGL_SHARE_ACCUM_ARB = $200E;
2762 WGL_SUPPORT_GDI_ARB = $200F;
2763 WGL_SUPPORT_OPENGL_ARB = $2010;
2764 WGL_DOUBLE_BUFFER_ARB = $2011;
2765 WGL_STEREO_ARB = $2012;
2766 WGL_PIXEL_TYPE_ARB = $2013;
2767 WGL_COLOR_BITS_ARB = $2014;
2768 WGL_RED_BITS_ARB = $2015;
2769 WGL_RED_SHIFT_ARB = $2016;
2770 WGL_GREEN_BITS_ARB = $2017;
2771 WGL_GREEN_SHIFT_ARB = $2018;
2772 WGL_BLUE_BITS_ARB = $2019;
2773 WGL_BLUE_SHIFT_ARB = $201A;
2774 WGL_ALPHA_BITS_ARB = $201B;
2775 WGL_ALPHA_SHIFT_ARB = $201C;
2776 WGL_ACCUM_BITS_ARB = $201D;
2777 WGL_ACCUM_RED_BITS_ARB = $201E;
2778 WGL_ACCUM_GREEN_BITS_ARB = $201F;
2779 WGL_ACCUM_BLUE_BITS_ARB = $2020;
2780 WGL_ACCUM_ALPHA_BITS_ARB = $2021;
2781 WGL_DEPTH_BITS_ARB = $2022;
2782 WGL_STENCIL_BITS_ARB = $2023;
2783 WGL_AUX_BUFFERS_ARB = $2024;
2784 WGL_NO_ACCELERATION_ARB = $2025;
2785 WGL_GENERIC_ACCELERATION_ARB = $2026;
2786 WGL_FULL_ACCELERATION_ARB = $2027;
2787 WGL_SWAP_EXCHANGE_ARB = $2028;
2788 WGL_SWAP_COPY_ARB = $2029;
2789 WGL_SWAP_UNDEFINED_ARB = $202A;
2790 WGL_TYPE_RGBA_ARB = $202B;
2791 WGL_TYPE_COLORINDEX_ARB = $202C;
2792 var
2793 wglGetPixelFormatAttribivARB: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): BOOL; stdcall = nil;
2794 wglGetPixelFormatAttribfvARB: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): BOOL; stdcall = nil;
2795 wglChoosePixelFormatARB: function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall = nil;
2797 function Load_WGL_ARB_pixel_format: Boolean;
2799 //***** WGL_ARB_make_current_read *****//
2800 const
2801 WGL_ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
2802 WGL_ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
2803 var
2804 wglMakeContextCurrentARB: function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): BOOL; stdcall = nil;
2805 wglGetCurrentReadDCARB: function(): HDC; stdcall = nil;
2807 function Load_WGL_ARB_make_current_read: Boolean;
2809 //***** WGL_ARB_pbuffer *****//
2810 const
2811 WGL_DRAW_TO_PBUFFER_ARB = $202D;
2812 // WGL_DRAW_TO_PBUFFER_ARB { already defined }
2813 WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
2814 WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
2815 WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
2816 WGL_PBUFFER_LARGEST_ARB = $2033;
2817 WGL_PBUFFER_WIDTH_ARB = $2034;
2818 WGL_PBUFFER_HEIGHT_ARB = $2035;
2819 WGL_PBUFFER_LOST_ARB = $2036;
2820 var
2821 wglCreatePbufferARB: function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): THandle; stdcall = nil;
2822 wglGetPbufferDCARB: function(hPbuffer: THandle): HDC; stdcall = nil;
2823 wglReleasePbufferDCARB: function(hPbuffer: THandle; hDC: HDC): GLint; stdcall = nil;
2824 wglDestroyPbufferARB: function(hPbuffer: THandle): BOOL; stdcall = nil;
2825 wglQueryPbufferARB: function(hPbuffer: THandle; iAttribute: GLint; piValue: PGLint): BOOL; stdcall = nil;
2827 function Load_WGL_ARB_pbuffer: Boolean;
2829 //***** WGL_EXT_swap_control *****//
2830 var
2831 wglSwapIntervalEXT: function(interval: GLint): BOOL; stdcall = nil;
2832 wglGetSwapIntervalEXT: function(): GLint; stdcall = nil;
2834 function Load_WGL_EXT_swap_control: Boolean;
2836 //***** WGL_ARB_render_texture *****//
2837 const
2838 WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
2839 WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
2840 WGL_TEXTURE_FORMAT_ARB = $2072;
2841 WGL_TEXTURE_TARGET_ARB = $2073;
2842 WGL_MIPMAP_TEXTURE_ARB = $2074;
2843 WGL_TEXTURE_RGB_ARB = $2075;
2844 WGL_TEXTURE_RGBA_ARB = $2076;
2845 WGL_NO_TEXTURE_ARB = $2077;
2846 WGL_TEXTURE_CUBE_MAP_ARB = $2078;
2847 WGL_TEXTURE_1D_ARB = $2079;
2848 WGL_TEXTURE_2D_ARB = $207A;
2849 // WGL_NO_TEXTURE_ARB { already defined }
2850 WGL_MIPMAP_LEVEL_ARB = $207B;
2851 WGL_CUBE_MAP_FACE_ARB = $207C;
2852 WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
2853 WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
2854 WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
2855 WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
2856 WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
2857 WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
2858 WGL_FRONT_LEFT_ARB = $2083;
2859 WGL_FRONT_RIGHT_ARB = $2084;
2860 WGL_BACK_LEFT_ARB = $2085;
2861 WGL_BACK_RIGHT_ARB = $2086;
2862 WGL_AUX0_ARB = $2087;
2863 WGL_AUX1_ARB = $2088;
2864 WGL_AUX2_ARB = $2089;
2865 WGL_AUX3_ARB = $208A;
2866 WGL_AUX4_ARB = $208B;
2867 WGL_AUX5_ARB = $208C;
2868 WGL_AUX6_ARB = $208D;
2869 WGL_AUX7_ARB = $208E;
2870 WGL_AUX8_ARB = $208F;
2871 WGL_AUX9_ARB = $2090;
2872 var
2873 wglBindTexImageARB: function(hPbuffer: THandle; iBuffer: GLint): BOOL; stdcall = nil;
2874 wglReleaseTexImageARB: function(hPbuffer: THandle; iBuffer: GLint): BOOL; stdcall = nil;
2875 wglSetPbufferAttribARB: function(hPbuffer: THandle; const piAttribList: PGLint): BOOL; stdcall = nil;
2877 function Load_WGL_ARB_render_texture: Boolean;
2879 //***** WGL_EXT_extensions_string *****//
2880 var
2881 wglGetExtensionsStringEXT: function(): Pchar; stdcall = nil;
2883 function Load_WGL_EXT_extensions_string: Boolean;
2885 //***** WGL_EXT_make_current_read *****//
2886 var
2887 wglMakeContextCurrentEXT: function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): BOOL; stdcall = nil;
2888 wglGetCurrentReadDCEXT: function(): HDC; stdcall = nil;
2890 function Load_WGL_EXT_make_current_read: Boolean;
2892 //***** WGL_EXT_pbuffer *****//
2893 const
2894 WGL_DRAW_TO_PBUFFER_EXT = $202D;
2895 WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
2896 WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
2897 WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
2898 WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
2899 WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
2900 WGL_PBUFFER_LARGEST_EXT = $2033;
2901 WGL_PBUFFER_WIDTH_EXT = $2034;
2902 WGL_PBUFFER_HEIGHT_EXT = $2035;
2903 var
2904 wglCreatePbufferEXT: function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): THandle; stdcall = nil;
2905 wglGetPbufferDCEXT: function(hPbuffer: THandle): HDC; stdcall = nil;
2906 wglReleasePbufferDCEXT: function(hPbuffer: THandle; hDC: HDC): GLint; stdcall = nil;
2907 wglDestroyPbufferEXT: function(hPbuffer: THandle): BOOL; stdcall = nil;
2908 wglQueryPbufferEXT: function(hPbuffer: THandle; iAttribute: GLint; piValue: PGLint): BOOL; stdcall = nil;
2910 function Load_WGL_EXT_pbuffer: Boolean;
2912 //***** WGL_EXT_pixel_format *****//
2913 const
2914 WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
2915 WGL_DRAW_TO_WINDOW_EXT = $2001;
2916 WGL_DRAW_TO_BITMAP_EXT = $2002;
2917 WGL_ACCELERATION_EXT = $2003;
2918 WGL_NEED_PALETTE_EXT = $2004;
2919 WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
2920 WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
2921 WGL_SWAP_METHOD_EXT = $2007;
2922 WGL_NUMBER_OVERLAYS_EXT = $2008;
2923 WGL_NUMBER_UNDERLAYS_EXT = $2009;
2924 WGL_TRANSPARENT_EXT = $200A;
2925 WGL_TRANSPARENT_VALUE_EXT = $200B;
2926 WGL_SHARE_DEPTH_EXT = $200C;
2927 WGL_SHARE_STENCIL_EXT = $200D;
2928 WGL_SHARE_ACCUM_EXT = $200E;
2929 WGL_SUPPORT_GDI_EXT = $200F;
2930 WGL_SUPPORT_OPENGL_EXT = $2010;
2931 WGL_DOUBLE_BUFFER_EXT = $2011;
2932 WGL_STEREO_EXT = $2012;
2933 WGL_PIXEL_TYPE_EXT = $2013;
2934 WGL_COLOR_BITS_EXT = $2014;
2935 WGL_RED_BITS_EXT = $2015;
2936 WGL_RED_SHIFT_EXT = $2016;
2937 WGL_GREEN_BITS_EXT = $2017;
2938 WGL_GREEN_SHIFT_EXT = $2018;
2939 WGL_BLUE_BITS_EXT = $2019;
2940 WGL_BLUE_SHIFT_EXT = $201A;
2941 WGL_ALPHA_BITS_EXT = $201B;
2942 WGL_ALPHA_SHIFT_EXT = $201C;
2943 WGL_ACCUM_BITS_EXT = $201D;
2944 WGL_ACCUM_RED_BITS_EXT = $201E;
2945 WGL_ACCUM_GREEN_BITS_EXT = $201F;
2946 WGL_ACCUM_BLUE_BITS_EXT = $2020;
2947 WGL_ACCUM_ALPHA_BITS_EXT = $2021;
2948 WGL_DEPTH_BITS_EXT = $2022;
2949 WGL_STENCIL_BITS_EXT = $2023;
2950 WGL_AUX_BUFFERS_EXT = $2024;
2951 WGL_NO_ACCELERATION_EXT = $2025;
2952 WGL_GENERIC_ACCELERATION_EXT = $2026;
2953 WGL_FULL_ACCELERATION_EXT = $2027;
2954 WGL_SWAP_EXCHANGE_EXT = $2028;
2955 WGL_SWAP_COPY_EXT = $2029;
2956 WGL_SWAP_UNDEFINED_EXT = $202A;
2957 WGL_TYPE_RGBA_EXT = $202B;
2958 WGL_TYPE_COLORINDEX_EXT = $202C;
2959 var
2960 wglGetPixelFormatAttribivEXT: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): BOOL; stdcall = nil;
2961 wglGetPixelFormatAttribfvEXT: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): BOOL; stdcall = nil;
2962 wglChoosePixelFormatEXT: function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; stdcall = nil;
2964 function Load_WGL_EXT_pixel_format: Boolean;
2966 //***** WGL_I3D_digital_video_control *****//
2967 const
2968 WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
2969 WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
2970 WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
2971 WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
2972 var
2973 wglGetDigitalVideoParametersI3D: function(hDC: HDC; iAttribute: GLint; piValue: PGLint): BOOL; stdcall = nil;
2974 wglSetDigitalVideoParametersI3D: function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): BOOL; stdcall = nil;
2976 function Load_WGL_I3D_digital_video_control: Boolean;
2978 //***** WGL_I3D_gamma *****//
2979 const
2980 WGL_GAMMA_TABLE_SIZE_I3D = $204E;
2981 WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
2982 // WGL_GAMMA_EXCLUDE_DESKTOP_I3D { already defined }
2983 var
2984 wglGetGammaTableParametersI3D: function(hDC: HDC; iAttribute: GLint; piValue: PGLint): BOOL; stdcall = nil;
2985 wglSetGammaTableParametersI3D: function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): BOOL; stdcall = nil;
2986 wglGetGammaTableI3D: function(hDC: HDC; iEntries: GLint; puRed: PGLUSHORT; puGreen: PGLUSHORT; puBlue: PGLUSHORT): BOOL; stdcall = nil;
2987 wglSetGammaTableI3D: function(hDC: HDC; iEntries: GLint; const puRed: PGLUSHORT; const puGreen: PGLUSHORT; const puBlue: PGLUSHORT): BOOL; stdcall = nil;
2989 function Load_WGL_I3D_gamma: Boolean;
2991 //***** WGL_I3D_genlock *****//
2992 const
2993 WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
2994 WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D = $2045;
2995 WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D = $2046;
2996 WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D = $2047;
2997 WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
2998 WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
2999 WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
3000 WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
3001 WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
3002 var
3003 wglEnableGenlockI3D: function(hDC: HDC): BOOL; stdcall = nil;
3004 wglDisableGenlockI3D: function(hDC: HDC): BOOL; stdcall = nil;
3005 wglIsEnabledGenlockI3D: function(hDC: HDC; pFlag: PBOOL): BOOL; stdcall = nil;
3006 wglGenlockSourceI3D: function(hDC: HDC; uSource: GLUINT): BOOL; stdcall = nil;
3007 wglGetGenlockSourceI3D: function(hDC: HDC; uSource: PGLUINT): BOOL; stdcall = nil;
3008 wglGenlockSourceEdgeI3D: function(hDC: HDC; uEdge: GLUINT): BOOL; stdcall = nil;
3009 wglGetGenlockSourceEdgeI3D: function(hDC: HDC; uEdge: PGLUINT): BOOL; stdcall = nil;
3010 wglGenlockSampleRateI3D: function(hDC: HDC; uRate: GLUINT): BOOL; stdcall = nil;
3011 wglGetGenlockSampleRateI3D: function(hDC: HDC; uRate: PGLUINT): BOOL; stdcall = nil;
3012 wglGenlockSourceDelayI3D: function(hDC: HDC; uDelay: GLUINT): BOOL; stdcall = nil;
3013 wglGetGenlockSourceDelayI3D: function(hDC: HDC; uDelay: PGLUINT): BOOL; stdcall = nil;
3014 wglQueryGenlockMaxSourceDelayI3D: function(hDC: HDC; uMaxLineDelay: PGLUINT; uMaxPixelDelay: PGLUINT): BOOL; stdcall = nil;
3016 function Load_WGL_I3D_genlock: Boolean;
3018 //***** GL_ARB_matrix_palette *****//
3019 const
3020 GL_MATRIX_PALETTE_ARB = $8840;
3021 GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
3022 GL_MAX_PALETTE_MATRICES_ARB = $8842;
3023 GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
3024 GL_MATRIX_INDEX_ARRAY_ARB = $8844;
3025 GL_CURRENT_MATRIX_INDEX_ARB = $8845;
3026 GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
3027 GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
3028 GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
3029 GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
3030 var
3031 glCurrentPaletteMatrixARB: procedure(index: GLint); stdcall = nil;
3032 glMatrixIndexubvARB: procedure(size: GLint; indices: PGLubyte); stdcall = nil;
3033 glMatrixIndexusvARB: procedure(size: GLint; indices: PGLushort); stdcall = nil;
3034 glMatrixIndexuivARB: procedure(size: GLint; indices: PGLuint); stdcall = nil;
3035 glMatrixIndexPointerARB: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall = nil;
3037 function Load_GL_ARB_matrix_palette: Boolean;
3039 //***** GL_NV_element_array *****//
3040 const
3041 GL_ELEMENT_ARRAY_TYPE_NV = $8769;
3042 GL_ELEMENT_ARRAY_POINTER_NV = $876A;
3043 var
3044 glElementPointerNV: procedure(_type: GLenum; const pointer: PGLvoid); stdcall = nil;
3045 glDrawElementArrayNV: procedure(mode: GLenum; first: GLint; count: GLsizei); stdcall = nil;
3046 glDrawRangeElementArrayNV: procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); stdcall = nil;
3047 glMultiDrawElementArrayNV: procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall = nil;
3048 glMultiDrawRangeElementArrayNV: procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); stdcall = nil;
3050 function Load_GL_NV_element_array: Boolean;
3052 //***** GL_NV_float_buffer *****//
3053 const
3054 GL_FLOAT_R_NV = $8880;
3055 GL_FLOAT_RG_NV = $8881;
3056 GL_FLOAT_RGB_NV = $8882;
3057 GL_FLOAT_RGBA_NV = $8883;
3058 GL_FLOAT_R16_NV = $8884;
3059 GL_FLOAT_R32_NV = $8885;
3060 GL_FLOAT_RG16_NV = $8886;
3061 GL_FLOAT_RG32_NV = $8887;
3062 GL_FLOAT_RGB16_NV = $8888;
3063 GL_FLOAT_RGB32_NV = $8889;
3064 GL_FLOAT_RGBA16_NV = $888A;
3065 GL_FLOAT_RGBA32_NV = $888B;
3066 GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
3067 GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
3068 GL_FLOAT_RGBA_MODE_NV = $888E;
3069 WGL_FLOAT_COMPONENTS_NV = $20B0;
3070 WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
3071 WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
3072 WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
3073 WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
3074 WGL_TEXTURE_FLOAT_R_NV = $20B5;
3075 WGL_TEXTURE_FLOAT_RG_NV = $20B6;
3076 WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
3077 WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
3079 function Load_GL_NV_float_buffer: Boolean;
3081 //***** GL_NV_fragment_program *****//
3082 const
3083 GL_FRAGMENT_PROGRAM_NV = $8870;
3084 GL_MAX_TEXTURE_COORDS_NV = $8871;
3085 GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
3086 GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
3087 GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
3088 GL_PROGRAM_ERROR_STRING_NV = $8874;
3089 var
3090 glProgramNamedParameter4fNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil;
3091 glProgramNamedParameter4dNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil;
3092 glGetProgramNamedParameterfvNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); stdcall = nil;
3093 glGetProgramNamedParameterdvNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); stdcall = nil;
3094 // glProgramLocalParameter4dARB { already defined }
3095 // glProgramLocalParameter4dvARB { already defined }
3096 // glProgramLocalParameter4fARB { already defined }
3097 // glProgramLocalParameter4fvARB { already defined }
3098 // glGetProgramLocalParameterdvARB { already defined }
3099 // glGetProgramLocalParameterfvARB { already defined }
3101 function Load_GL_NV_fragment_program: Boolean;
3103 //***** GL_NV_primitive_restart *****//
3104 const
3105 GL_PRIMITIVE_RESTART_NV = $8558;
3106 GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
3107 var
3108 glPrimitiveRestartNV: procedure(); stdcall = nil;
3109 glPrimitiveRestartIndexNV: procedure(index: GLuint); stdcall = nil;
3111 function Load_GL_NV_primitive_restart: Boolean;
3113 //***** GL_NV_vertex_program2 *****//
3115 function Load_GL_NV_vertex_program2: Boolean;
3117 //***** WGL_NV_render_texture_rectangle *****//
3118 const
3119 WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
3120 WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
3121 WGL_TEXTURE_RECTANGLE_NV = $20A2;
3123 function Load_WGL_NV_render_texture_rectangle: Boolean;
3125 //***** GL_NV_pixel_data_range *****//
3126 const
3127 GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
3128 GL_READ_PIXEL_DATA_RANGE_NV = $8879;
3129 GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
3130 GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
3131 GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
3132 GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
3133 var
3134 glPixelDataRangeNV: procedure(target: GLenum; length: GLsizei; pointer: PGLvoid); stdcall = nil;
3135 glFlushPixelDataRangeNV: procedure(target: GLenum); stdcall = nil;
3136 // wglAllocateMemoryNV { already defined }
3137 // wglFreeMemoryNV { already defined }
3139 function Load_GL_NV_pixel_data_range: Boolean;
3141 //***** GL_EXT_texture_rectangle *****//
3142 const
3143 GL_TEXTURE_RECTANGLE_EXT = $84F5;
3144 GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
3145 GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
3146 GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
3148 function Load_GL_EXT_texture_rectangle: Boolean;
3150 //***** GL_S3_s3tc *****//
3151 const
3152 GL_RGB_S3TC = $83A0;
3153 GL_RGB4_S3TC = $83A1;
3154 GL_RGBA_S3TC = $83A2;
3155 GL_RGBA4_S3TC = $83A3;
3157 function Load_GL_S3_s3tc: Boolean;
3159 //***** GL_ATI_draw_buffers *****//
3160 const
3161 GL_MAX_DRAW_BUFFERS_ATI = $8824;
3162 GL_DRAW_BUFFER0_ATI = $8825;
3163 GL_DRAW_BUFFER1_ATI = $8826;
3164 GL_DRAW_BUFFER2_ATI = $8827;
3165 GL_DRAW_BUFFER3_ATI = $8828;
3166 GL_DRAW_BUFFER4_ATI = $8829;
3167 GL_DRAW_BUFFER5_ATI = $882A;
3168 GL_DRAW_BUFFER6_ATI = $882B;
3169 GL_DRAW_BUFFER7_ATI = $882C;
3170 GL_DRAW_BUFFER8_ATI = $882D;
3171 GL_DRAW_BUFFER9_ATI = $882E;
3172 GL_DRAW_BUFFER10_ATI = $882F;
3173 GL_DRAW_BUFFER11_ATI = $8830;
3174 GL_DRAW_BUFFER12_ATI = $8831;
3175 GL_DRAW_BUFFER13_ATI = $8832;
3176 GL_DRAW_BUFFER14_ATI = $8833;
3177 GL_DRAW_BUFFER15_ATI = $8834;
3178 var
3179 glDrawBuffersATI: procedure(n: GLsizei; const bufs: PGLenum); stdcall = nil;
3181 function Load_GL_ATI_draw_buffers: Boolean;
3183 //***** WGL_ATI_pixel_format_float *****//
3184 const
3185 WGL_RGBA_FLOAT_MODE_ATI = $8820;
3186 WGL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
3187 WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
3189 function Load_WGL_ATI_pixel_format_float: Boolean;
3191 //***** GL_ATI_texture_env_combine3 *****//
3192 const
3193 GL_MODULATE_ADD_ATI = $8744;
3194 GL_MODULATE_SIGNED_ADD_ATI = $8745;
3195 GL_MODULATE_SUBTRACT_ATI = $8746;
3197 function Load_GL_ATI_texture_env_combine3: Boolean;
3199 //***** GL_ATI_texture_float *****//
3200 const
3201 GL_RGBA_FLOAT32_ATI = $8814;
3202 GL_RGB_FLOAT32_ATI = $8815;
3203 GL_ALPHA_FLOAT32_ATI = $8816;
3204 GL_INTENSITY_FLOAT32_ATI = $8817;
3205 GL_LUMINANCE_FLOAT32_ATI = $8818;
3206 GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
3207 GL_RGBA_FLOAT16_ATI = $881A;
3208 GL_RGB_FLOAT16_ATI = $881B;
3209 GL_ALPHA_FLOAT16_ATI = $881C;
3210 GL_INTENSITY_FLOAT16_ATI = $881D;
3211 GL_LUMINANCE_FLOAT16_ATI = $881E;
3212 GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
3214 function Load_GL_ATI_texture_float: Boolean;
3216 //***** GL_NV_texture_expand_normal *****//
3217 const
3218 GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
3220 function Load_GL_NV_texture_expand_normal: Boolean;
3222 //***** GL_NV_half_float *****//
3223 const
3224 GL_HALF_FLOAT_NV = $140B;
3225 var
3226 glVertex2hNV: procedure(x: GLushort; y: GLushort); stdcall = nil;
3227 glVertex2hvNV: procedure(const v: PGLushort); stdcall = nil;
3228 glVertex3hNV: procedure(x: GLushort; y: GLushort; z: GLushort); stdcall = nil;
3229 glVertex3hvNV: procedure(const v: PGLushort); stdcall = nil;
3230 glVertex4hNV: procedure(x: GLushort; y: GLushort; z: GLushort; w: GLushort); stdcall = nil;
3231 glVertex4hvNV: procedure(const v: PGLushort); stdcall = nil;
3232 glNormal3hNV: procedure(nx: GLushort; ny: GLushort; nz: GLushort); stdcall = nil;
3233 glNormal3hvNV: procedure(const v: PGLushort); stdcall = nil;
3234 glColor3hNV: procedure(red: GLushort; green: GLushort; blue: GLushort); stdcall = nil;
3235 glColor3hvNV: procedure(const v: PGLushort); stdcall = nil;
3236 glColor4hNV: procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); stdcall = nil;
3237 glColor4hvNV: procedure(const v: PGLushort); stdcall = nil;
3238 glTexCoord1hNV: procedure(s: GLushort); stdcall = nil;
3239 glTexCoord1hvNV: procedure(const v: PGLushort); stdcall = nil;
3240 glTexCoord2hNV: procedure(s: GLushort; t: GLushort); stdcall = nil;
3241 glTexCoord2hvNV: procedure(const v: PGLushort); stdcall = nil;
3242 glTexCoord3hNV: procedure(s: GLushort; t: GLushort; r: GLushort); stdcall = nil;
3243 glTexCoord3hvNV: procedure(const v: PGLushort); stdcall = nil;
3244 glTexCoord4hNV: procedure(s: GLushort; t: GLushort; r: GLushort; q: GLushort); stdcall = nil;
3245 glTexCoord4hvNV: procedure(const v: PGLushort); stdcall = nil;
3246 glMultiTexCoord1hNV: procedure(target: GLenum; s: GLushort); stdcall = nil;
3247 glMultiTexCoord1hvNV: procedure(target: GLenum; const v: PGLushort); stdcall = nil;
3248 glMultiTexCoord2hNV: procedure(target: GLenum; s: GLushort; t: GLushort); stdcall = nil;
3249 glMultiTexCoord2hvNV: procedure(target: GLenum; const v: PGLushort); stdcall = nil;
3250 glMultiTexCoord3hNV: procedure(target: GLenum; s: GLushort; t: GLushort; r: GLushort); stdcall = nil;
3251 glMultiTexCoord3hvNV: procedure(target: GLenum; const v: PGLushort); stdcall = nil;
3252 glMultiTexCoord4hNV: procedure(target: GLenum; s: GLushort; t: GLushort; r: GLushort; q: GLushort); stdcall = nil;
3253 glMultiTexCoord4hvNV: procedure(target: GLenum; const v: PGLushort); stdcall = nil;
3254 glFogCoordhNV: procedure(fog: GLushort); stdcall = nil;
3255 glFogCoordhvNV: procedure(const fog: PGLushort); stdcall = nil;
3256 glSecondaryColor3hNV: procedure(red: GLushort; green: GLushort; blue: GLushort); stdcall = nil;
3257 glSecondaryColor3hvNV: procedure(const v: PGLushort); stdcall = nil;
3258 glVertexWeighthNV: procedure(weight: GLushort); stdcall = nil;
3259 glVertexWeighthvNV: procedure(const weight: PGLushort); stdcall = nil;
3260 glVertexAttrib1hNV: procedure(index: GLuint; x: GLushort); stdcall = nil;
3261 glVertexAttrib1hvNV: procedure(index: GLuint; const v: PGLushort); stdcall = nil;
3262 glVertexAttrib2hNV: procedure(index: GLuint; x: GLushort; y: GLushort); stdcall = nil;
3263 glVertexAttrib2hvNV: procedure(index: GLuint; const v: PGLushort); stdcall = nil;
3264 glVertexAttrib3hNV: procedure(index: GLuint; x: GLushort; y: GLushort; z: GLushort); stdcall = nil;
3265 glVertexAttrib3hvNV: procedure(index: GLuint; const v: PGLushort); stdcall = nil;
3266 glVertexAttrib4hNV: procedure(index: GLuint; x: GLushort; y: GLushort; z: GLushort; w: GLushort); stdcall = nil;
3267 glVertexAttrib4hvNV: procedure(index: GLuint; const v: PGLushort); stdcall = nil;
3268 glVertexAttribs1hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); stdcall = nil;
3269 glVertexAttribs2hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); stdcall = nil;
3270 glVertexAttribs3hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); stdcall = nil;
3271 glVertexAttribs4hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); stdcall = nil;
3273 function Load_GL_NV_half_float: Boolean;
3275 //***** GL_ATI_map_object_buffer *****//
3276 var
3277 glMapObjectBufferATI: function(buffer: GLuint): PGLvoid; stdcall = nil;
3278 glUnmapObjectBufferATI: procedure(buffer: GLuint); stdcall = nil;
3280 function Load_GL_ATI_map_object_buffer: Boolean;
3282 //***** GL_ATI_separate_stencil *****//
3283 const
3284 GL_KEEP = $1E00;
3285 GL_ZERO = $0000;
3286 GL_REPLACE = $1E01;
3287 GL_INCR = $1E02;
3288 GL_DECR = $1E03;
3289 GL_INVERT = $150A;
3290 GL_NEVER = $0200;
3291 GL_LESS = $0201;
3292 GL_LEQUAL = $0203;
3293 GL_GREATER = $0204;
3294 GL_GEQUAL = $0206;
3295 GL_EQUAL = $0202;
3296 GL_NOTEQUAL = $0205;
3297 GL_ALWAYS = $0207;
3298 GL_FRONT = $0404;
3299 GL_BACK = $0405;
3300 GL_FRONT_AND_BACK = $0408;
3301 GL_STENCIL_BACK_FUNC_ATI = $8800;
3302 GL_STENCIL_BACK_FAIL_ATI = $8801;
3303 GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
3304 GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
3305 var
3306 glStencilOpSeparateATI: procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); stdcall = nil;
3307 glStencilFuncSeparateATI: procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); stdcall = nil;
3309 function Load_GL_ATI_separate_stencil: Boolean;
3311 //***** GL_ATI_vertex_attrib_array_object *****//
3312 var
3313 glVertexAttribArrayObjectATI: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); stdcall = nil;
3314 glGetVertexAttribArrayObjectfvATI: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil;
3315 glGetVertexAttribArrayObjectivATI: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
3317 function Load_GL_ATI_vertex_attrib_array_object: Boolean;
3319 //***** GL_ARB_vertex_buffer_object *****//
3320 const
3321 GL_ARRAY_BUFFER_ARB = $8892;
3322 GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
3323 GL_ARRAY_BUFFER_BINDING_ARB = $8894;
3324 GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
3325 GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
3326 GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
3327 GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
3328 GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
3329 GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
3330 GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
3331 GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
3332 GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
3333 GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
3334 GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
3335 GL_STREAM_DRAW_ARB = $88E0;
3336 GL_STREAM_READ_ARB = $88E1;
3337 GL_STREAM_COPY_ARB = $88E2;
3338 GL_STATIC_DRAW_ARB = $88E4;
3339 GL_STATIC_READ_ARB = $88E5;
3340 GL_STATIC_COPY_ARB = $88E6;
3341 GL_DYNAMIC_DRAW_ARB = $88E8;
3342 GL_DYNAMIC_READ_ARB = $88E9;
3343 GL_DYNAMIC_COPY_ARB = $88EA;
3344 GL_READ_ONLY_ARB = $88B8;
3345 GL_WRITE_ONLY_ARB = $88B9;
3346 GL_READ_WRITE_ARB = $88BA;
3347 GL_BUFFER_SIZE_ARB = $8764;
3348 GL_BUFFER_USAGE_ARB = $8765;
3349 GL_BUFFER_ACCESS_ARB = $88BB;
3350 GL_BUFFER_MAPPED_ARB = $88BC;
3351 GL_BUFFER_MAP_POINTER_ARB = $88BD;
3352 var
3353 glBindBufferARB: procedure(target: GLenum; buffer: GLuint); stdcall = nil;
3354 glDeleteBuffersARB: procedure(n: GLsizei; const buffers: PGLuint); stdcall = nil;
3355 glGenBuffersARB: procedure(n: GLsizei; buffers: PGLuint); stdcall = nil;
3356 glIsBufferARB: function(buffer: GLuint): GLboolean; stdcall = nil;
3357 glBufferDataARB: procedure(target: GLenum; size: GLsizeiptrARB; const data: PGLvoid; usage: GLenum); stdcall = nil;
3358 glBufferSubDataARB: procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; const data: PGLvoid); stdcall = nil;
3359 glGetBufferSubDataARB: procedure(target: GLenum; offset: GLintptrARB; size: GLsizeiptrARB; data: PGLvoid); stdcall = nil;
3360 glMapBufferARB: function(target: GLenum; access: GLenum): PGLvoid; stdcall = nil;
3361 glUnmapBufferARB: function(target: GLenum): GLboolean; stdcall = nil;
3362 glGetBufferParameterivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
3363 glGetBufferPointervARB: procedure(target: GLenum; pname: GLenum; params: PGLvoid); stdcall = nil;
3365 function Load_GL_ARB_vertex_buffer_object: Boolean;
3367 //***** GL_ARB_occlusion_query *****//
3368 const
3369 GL_SAMPLES_PASSED_ARB = $8914;
3370 GL_QUERY_COUNTER_BITS_ARB = $8864;
3371 GL_CURRENT_QUERY_ARB = $8865;
3372 GL_QUERY_RESULT_ARB = $8866;
3373 GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
3374 var
3375 glGenQueriesARB: procedure(n: GLsizei; ids: PGLuint); stdcall = nil;
3376 glDeleteQueriesARB: procedure(n: GLsizei; const ids: PGLuint); stdcall = nil;
3377 glIsQueryARB: function(id: GLuint): GLboolean; stdcall = nil;
3378 glBeginQueryARB: procedure(target: GLenum; id: GLuint); stdcall = nil;
3379 glEndQueryARB: procedure(target: GLenum); stdcall = nil;
3380 glGetQueryivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
3381 glGetQueryObjectivARB: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
3382 glGetQueryObjectuivARB: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall = nil;
3384 function Load_GL_ARB_occlusion_query: Boolean;
3386 //***** GL_ARB_shader_objects *****//
3387 const
3388 GL_PROGRAM_OBJECT_ARB = $8B40;
3389 GL_OBJECT_TYPE_ARB = $8B4E;
3390 GL_OBJECT_SUBTYPE_ARB = $8B4F;
3391 GL_OBJECT_DELETE_STATUS_ARB = $8B80;
3392 GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
3393 GL_OBJECT_LINK_STATUS_ARB = $8B82;
3394 GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
3395 GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
3396 GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
3397 GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
3398 GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
3399 GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
3400 GL_SHADER_OBJECT_ARB = $8B48;
3401 GL_FLOAT = $1406;
3402 GL_FLOAT_VEC2_ARB = $8B50;
3403 GL_FLOAT_VEC3_ARB = $8B51;
3404 GL_FLOAT_VEC4_ARB = $8B52;
3405 GL_INT = $1404;
3406 GL_INT_VEC2_ARB = $8B53;
3407 GL_INT_VEC3_ARB = $8B54;
3408 GL_INT_VEC4_ARB = $8B55;
3409 GL_BOOL_ARB = $8B56;
3410 GL_BOOL_VEC2_ARB = $8B57;
3411 GL_BOOL_VEC3_ARB = $8B58;
3412 GL_BOOL_VEC4_ARB = $8B59;
3413 GL_FLOAT_MAT2_ARB = $8B5A;
3414 GL_FLOAT_MAT3_ARB = $8B5B;
3415 GL_FLOAT_MAT4_ARB = $8B5C;
3416 var
3417 glDeleteObjectARB: procedure(obj: GLhandleARB); stdcall = nil;
3418 glGetHandleARB: function(pname: GLenum): GLhandleARB; stdcall = nil;
3419 glDetachObjectARB: procedure(containerObj: GLhandleARB; attachedObj: GLhandleARB); stdcall = nil;
3420 glCreateShaderObjectARB: function(shaderType: GLenum): GLhandleARB; stdcall = nil;
3421 glShaderSourceARB: procedure(shaderObj: GLhandleARB; count: GLsizei; const _string: PGLvoid; const length: PGLint); stdcall = nil;
3422 glCompileShaderARB: procedure(shaderObj: GLhandleARB); stdcall = nil;
3423 glCreateProgramObjectARB: function(): GLhandleARB; stdcall = nil;
3424 glAttachObjectARB: procedure(containerObj: GLhandleARB; obj: GLhandleARB); stdcall = nil;
3425 glLinkProgramARB: procedure(programObj: GLhandleARB); stdcall = nil;
3426 glUseProgramObjectARB: procedure(programObj: GLhandleARB); stdcall = nil;
3427 glValidateProgramARB: procedure(programObj: GLhandleARB); stdcall = nil;
3428 glUniform1fARB: procedure(location: GLint; v0: GLfloat); stdcall = nil;
3429 glUniform2fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat); stdcall = nil;
3430 glUniform3fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); stdcall = nil;
3431 glUniform4fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); stdcall = nil;
3432 glUniform1iARB: procedure(location: GLint; v0: GLint); stdcall = nil;
3433 glUniform2iARB: procedure(location: GLint; v0: GLint; v1: GLint); stdcall = nil;
3434 glUniform3iARB: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint); stdcall = nil;
3435 glUniform4iARB: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); stdcall = nil;
3436 glUniform1fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall = nil;
3437 glUniform2fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall = nil;
3438 glUniform3fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall = nil;
3439 glUniform4fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); stdcall = nil;
3440 glUniform1ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall = nil;
3441 glUniform2ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall = nil;
3442 glUniform3ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall = nil;
3443 glUniform4ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); stdcall = nil;
3444 glUniformMatrix2fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall = nil;
3445 glUniformMatrix3fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall = nil;
3446 glUniformMatrix4fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); stdcall = nil;
3447 glGetObjectParameterfvARB: procedure(obj: GLhandleARB; pname: GLenum; params: PGLfloat); stdcall = nil;
3448 glGetObjectParameterivARB: procedure(obj: GLhandleARB; pname: GLenum; params: PGLint); stdcall = nil;
3449 glGetInfoLogARB: procedure(obj: GLhandleARB; maxLength: GLsizei; length: PGLsizei; infoLog: PGLcharARB); stdcall = nil;
3450 glGetAttachedObjectsARB: procedure(containerObj: GLhandleARB; maxCount: GLsizei; count: PGLsizei; obj: PGLhandleARB); stdcall = nil;
3451 glGetUniformLocationARB: function(programObj: GLhandleARB; const name: PGLcharARB): GLint; stdcall = nil;
3452 glGetActiveUniformARB: procedure(programObj: GLhandleARB; index: GLuint; maxLength: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLcharARB); stdcall = nil;
3453 glGetUniformfvARB: procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); stdcall = nil;
3454 glGetUniformivARB: procedure(programObj: GLhandleARB; location: GLint; params: PGLint); stdcall = nil;
3455 glGetShaderSourceARB: procedure(obj: GLhandleARB; maxLength: GLsizei; length: PGLsizei; source: PGLcharARB); stdcall = nil;
3457 function Load_GL_ARB_shader_objects: Boolean;
3459 //***** GL_ARB_vertex_shader *****//
3460 const
3461 GL_VERTEX_SHADER_ARB = $8B31;
3462 GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
3463 GL_MAX_VARYING_FLOATS_ARB = $8B4B;
3464 // GL_MAX_VERTEX_ATTRIBS_ARB { already defined }
3465 // GL_MAX_TEXTURE_IMAGE_UNITS_ARB { already defined }
3466 GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
3467 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
3468 // GL_MAX_TEXTURE_COORDS_ARB { already defined }
3469 // GL_VERTEX_PROGRAM_POINT_SIZE_ARB { already defined }
3470 // GL_VERTEX_PROGRAM_TWO_SIDE_ARB { already defined }
3471 // GL_OBJECT_TYPE_ARB { already defined }
3472 // GL_OBJECT_SUBTYPE_ARB { already defined }
3473 GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
3474 GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
3475 // GL_SHADER_OBJECT_ARB { already defined }
3476 // GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB { already defined }
3477 // GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB { already defined }
3478 // GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB { already defined }
3479 // GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB { already defined }
3480 // GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB { already defined }
3481 // GL_CURRENT_VERTEX_ATTRIB_ARB { already defined }
3482 // GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB { already defined }
3483 // GL_FLOAT { already defined }
3484 // GL_FLOAT_VEC2_ARB { already defined }
3485 // GL_FLOAT_VEC3_ARB { already defined }
3486 // GL_FLOAT_VEC4_ARB { already defined }
3487 // GL_FLOAT_MAT2_ARB { already defined }
3488 // GL_FLOAT_MAT3_ARB { already defined }
3489 // GL_FLOAT_MAT4_ARB { already defined }
3490 // glVertexAttrib1fARB { already defined }
3491 // glVertexAttrib1sARB { already defined }
3492 // glVertexAttrib1dARB { already defined }
3493 // glVertexAttrib2fARB { already defined }
3494 // glVertexAttrib2sARB { already defined }
3495 // glVertexAttrib2dARB { already defined }
3496 // glVertexAttrib3fARB { already defined }
3497 // glVertexAttrib3sARB { already defined }
3498 // glVertexAttrib3dARB { already defined }
3499 // glVertexAttrib4fARB { already defined }
3500 // glVertexAttrib4sARB { already defined }
3501 // glVertexAttrib4dARB { already defined }
3502 // glVertexAttrib4NubARB { already defined }
3503 // glVertexAttrib1fvARB { already defined }
3504 // glVertexAttrib1svARB { already defined }
3505 // glVertexAttrib1dvARB { already defined }
3506 // glVertexAttrib2fvARB { already defined }
3507 // glVertexAttrib2svARB { already defined }
3508 // glVertexAttrib2dvARB { already defined }
3509 // glVertexAttrib3fvARB { already defined }
3510 // glVertexAttrib3svARB { already defined }
3511 // glVertexAttrib3dvARB { already defined }
3512 // glVertexAttrib4fvARB { already defined }
3513 // glVertexAttrib4svARB { already defined }
3514 // glVertexAttrib4dvARB { already defined }
3515 // glVertexAttrib4ivARB { already defined }
3516 // glVertexAttrib4bvARB { already defined }
3517 // glVertexAttrib4ubvARB { already defined }
3518 // glVertexAttrib4usvARB { already defined }
3519 // glVertexAttrib4uivARB { already defined }
3520 // glVertexAttrib4NbvARB { already defined }
3521 // glVertexAttrib4NsvARB { already defined }
3522 // glVertexAttrib4NivARB { already defined }
3523 // glVertexAttrib4NubvARB { already defined }
3524 // glVertexAttrib4NusvARB { already defined }
3525 // glVertexAttrib4NuivARB { already defined }
3526 // glVertexAttribPointerARB { already defined }
3527 // glEnableVertexAttribArrayARB { already defined }
3528 // glDisableVertexAttribArrayARB { already defined }
3529 var
3530 glBindAttribLocationARB: procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); stdcall = nil;
3531 glGetActiveAttribARB: procedure(programObj: GLhandleARB; index: GLuint; maxLength: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLcharARB); stdcall = nil;
3532 glGetAttribLocationARB: function(programObj: GLhandleARB; const name: PGLcharARB): GLint; stdcall = nil;
3533 // glGetVertexAttribdvARB { already defined }
3534 // glGetVertexAttribfvARB { already defined }
3535 // glGetVertexAttribivARB { already defined }
3536 // glGetVertexAttribPointervARB { already defined }
3538 function Load_GL_ARB_vertex_shader: Boolean;
3540 //***** GL_ARB_fragment_shader *****//
3541 const
3542 GL_FRAGMENT_SHADER_ARB = $8B30;
3543 GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49;
3544 // GL_MAX_TEXTURE_COORDS_ARB { already defined }
3545 // GL_MAX_TEXTURE_IMAGE_UNITS_ARB { already defined }
3546 // GL_OBJECT_TYPE_ARB { already defined }
3547 // GL_OBJECT_SUBTYPE_ARB { already defined }
3548 // GL_SHADER_OBJECT_ARB { already defined }
3550 function Load_GL_ARB_fragment_shader: Boolean;
3552 //***** GL_ARB_shading_language_100 *****//
3553 const
3554 GL_SHADING_LANGUAGE_VERSION_ARB = $8B8C;
3556 function Load_GL_ARB_shading_language_100: Boolean;
3558 //***** GL_ARB_texture_non_power_of_two *****//
3560 function Load_GL_ARB_texture_non_power_of_two: Boolean;
3562 //***** GL_ARB_point_sprite *****//
3563 const
3564 GL_POINT_SPRITE_ARB = $8861;
3565 GL_COORD_REPLACE_ARB = $8862;
3567 function Load_GL_ARB_point_sprite: Boolean;
3569 //***** GL_EXT_depth_bounds_test *****//
3570 const
3571 GL_DEPTH_BOUNDS_TEST_EXT = $8890;
3572 GL_DEPTH_BOUNDS_EXT = $8891;
3573 var
3574 glDepthBoundsEXT: procedure(zmin: GLclampd; zmax: GLclampd); stdcall = nil;
3576 function Load_GL_EXT_depth_bounds_test: Boolean;
3578 //***** GL_EXT_secondary_color *****//
3579 const
3580 GL_COLOR_SUM_EXT = $8458;
3581 GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
3582 GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
3583 GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
3584 GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
3585 GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
3586 GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
3587 var
3588 glSecondaryColor3bEXT: procedure(r: GLbyte; g: GLbyte; b: GLbyte); stdcall = nil;
3589 glSecondaryColor3sEXT: procedure(r: GLshort; g: GLshort; b: GLshort); stdcall = nil;
3590 glSecondaryColor3iEXT: procedure(r: GLint; g: GLint; b: GLint); stdcall = nil;
3591 glSecondaryColor3fEXT: procedure(r: GLfloat; g: GLfloat; b: GLfloat); stdcall = nil;
3592 glSecondaryColor3dEXT: procedure(r: GLdouble; g: GLdouble; b: GLdouble); stdcall = nil;
3593 glSecondaryColor3ubEXT: procedure(r: GLubyte; g: GLubyte; b: GLubyte); stdcall = nil;
3594 glSecondaryColor3usEXT: procedure(r: GLushort; g: GLushort; b: GLushort); stdcall = nil;
3595 glSecondaryColor3uiEXT: procedure(r: GLuint; g: GLuint; b: GLuint); stdcall = nil;
3596 glSecondaryColor3bvEXT: procedure(components: PGLbyte); stdcall = nil;
3597 glSecondaryColor3svEXT: procedure(components: PGLshort); stdcall = nil;
3598 glSecondaryColor3ivEXT: procedure(components: PGLint); stdcall = nil;
3599 glSecondaryColor3fvEXT: procedure(components: PGLfloat); stdcall = nil;
3600 glSecondaryColor3dvEXT: procedure(components: PGLdouble); stdcall = nil;
3601 glSecondaryColor3ubvEXT: procedure(components: PGLubyte); stdcall = nil;
3602 glSecondaryColor3usvEXT: procedure(components: PGLushort); stdcall = nil;
3603 glSecondaryColor3uivEXT: procedure(components: PGLuint); stdcall = nil;
3604 glSecondaryColorPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall = nil;
3606 function Load_GL_EXT_secondary_color: Boolean;
3608 //***** GL_EXT_texture_mirror_clamp *****//
3609 const
3610 GL_MIRROR_CLAMP_EXT = $8742;
3611 GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
3612 GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
3614 function Load_GL_EXT_texture_mirror_clamp: Boolean;
3616 //***** GL_EXT_blend_equation_separate *****//
3617 const
3618 GL_BLEND_EQUATION_RGB_EXT = $8009;
3619 GL_BLEND_EQUATION_ALPHA_EXT = $883D;
3620 var
3621 glBlendEquationSeparateEXT: procedure(modeRGB: GLenum; modeAlpha: GLenum); stdcall = nil;
3623 function Load_GL_EXT_blend_equation_separate: Boolean;
3625 //***** GL_MESA_pack_invert *****//
3626 const
3627 GL_PACK_INVERT_MESA = $8758;
3629 function Load_GL_MESA_pack_invert: Boolean;
3631 //***** GL_MESA_ycbcr_texture *****//
3632 const
3633 GL_YCBCR_MESA = $8757;
3634 GL_UNSIGNED_SHORT_8_8_MESA = $85BA;
3635 GL_UNSIGNED_SHORT_8_8_REV_MESA = $85BB;
3637 function Load_GL_MESA_ycbcr_texture: Boolean;
3639 //***** GL_ARB_fragment_program_shadow *****//
3641 function Load_GL_ARB_fragment_program_shadow: Boolean;
3643 //***** GL_EXT_fog_coord *****//
3644 const
3645 GL_FOG_COORDINATE_SOURCE_EXT = $8450;
3646 GL_FOG_COORDINATE_EXT = $8451;
3647 GL_FRAGMENT_DEPTH_EXT = $8452;
3648 GL_CURRENT_FOG_COORDINATE_EXT = $8453;
3649 GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
3650 GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
3651 GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
3652 GL_FOG_COORDINATE_ARRAY_EXT = $8457;
3653 var
3654 glFogCoordfEXT: procedure(coord: GLfloat); stdcall = nil;
3655 glFogCoorddEXT: procedure(coord: GLdouble); stdcall = nil;
3656 glFogCoordfvEXT: procedure(coord: PGLfloat); stdcall = nil;
3657 glFogCoorddvEXT: procedure(coord: PGLdouble); stdcall = nil;
3658 glFogCoordPointerEXT: procedure(_type: GLenum; stride: GLsizei; pointer: PGLvoid); stdcall = nil;
3660 function Load_GL_EXT_fog_coord: Boolean;
3662 //***** GL_NV_fragment_program_option *****//
3664 function Load_GL_NV_fragment_program_option: Boolean;
3666 //***** GL_EXT_pixel_buffer_object *****//
3667 const
3668 GL_PIXEL_PACK_BUFFER_EXT = $88EB;
3669 GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
3670 GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
3671 GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
3673 function Load_GL_EXT_pixel_buffer_object: Boolean;
3675 //***** GL_NV_fragment_program2 *****//
3676 const
3677 GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
3678 GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
3679 GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
3680 GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
3681 GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
3683 function Load_GL_NV_fragment_program2: Boolean;
3685 //***** GL_NV_vertex_program2_option *****//
3686 // GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV { already defined }
3687 // GL_MAX_PROGRAM_CALL_DEPTH_NV { already defined }
3689 function Load_GL_NV_vertex_program2_option: Boolean;
3691 //***** GL_NV_vertex_program3 *****//
3692 // GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB { already defined }
3694 function Load_GL_NV_vertex_program3: Boolean;
3696 //***** GL_ARB_draw_buffers *****//
3697 const
3698 GL_MAX_DRAW_BUFFERS_ARB = $8824;
3699 GL_DRAW_BUFFER0_ARB = $8825;
3700 GL_DRAW_BUFFER1_ARB = $8826;
3701 GL_DRAW_BUFFER2_ARB = $8827;
3702 GL_DRAW_BUFFER3_ARB = $8828;
3703 GL_DRAW_BUFFER4_ARB = $8829;
3704 GL_DRAW_BUFFER5_ARB = $882A;
3705 GL_DRAW_BUFFER6_ARB = $882B;
3706 GL_DRAW_BUFFER7_ARB = $882C;
3707 GL_DRAW_BUFFER8_ARB = $882D;
3708 GL_DRAW_BUFFER9_ARB = $882E;
3709 GL_DRAW_BUFFER10_ARB = $882F;
3710 GL_DRAW_BUFFER11_ARB = $8830;
3711 GL_DRAW_BUFFER12_ARB = $8831;
3712 GL_DRAW_BUFFER13_ARB = $8832;
3713 GL_DRAW_BUFFER14_ARB = $8833;
3714 GL_DRAW_BUFFER15_ARB = $8834;
3715 var
3716 glDrawBuffersARB: procedure(n: GLsizei; const bufs: PGLenum); stdcall = nil;
3718 function Load_GL_ARB_draw_buffers: Boolean;
3720 //***** GL_ARB_texture_rectangle *****//
3721 const
3722 GL_TEXTURE_RECTANGLE_ARB = $84F5;
3723 GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
3724 GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
3725 GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
3727 function Load_GL_ARB_texture_rectangle: Boolean;
3729 //***** GL_ARB_color_buffer_float *****//
3730 const
3731 GL_RGBA_FLOAT_MODE_ARB = $8820;
3732 GL_CLAMP_VERTEX_COLOR_ARB = $891A;
3733 GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
3734 GL_CLAMP_READ_COLOR_ARB = $891C;
3735 GL_FIXED_ONLY_ARB = $891D;
3736 WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
3737 var
3738 glClampColorARB: procedure(target: GLenum; clamp: GLenum); stdcall = nil;
3740 function Load_GL_ARB_color_buffer_float: Boolean;
3742 //***** GL_ARB_half_float_pixel *****//
3743 const
3744 GL_HALF_FLOAT_ARB = $140B;
3746 function Load_GL_ARB_half_float_pixel: Boolean;
3748 //***** GL_ARB_texture_float *****//
3749 const
3750 GL_TEXTURE_RED_TYPE_ARB = $8C10;
3751 GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
3752 GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
3753 GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
3754 GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
3755 GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
3756 GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
3757 GL_UNSIGNED_NORMALIZED_ARB = $8C17;
3758 GL_RGBA32F_ARB = $8814;
3759 GL_RGB32F_ARB = $8815;
3760 GL_ALPHA32F_ARB = $8816;
3761 GL_INTENSITY32F_ARB = $8817;
3762 GL_LUMINANCE32F_ARB = $8818;
3763 GL_LUMINANCE_ALPHA32F_ARB = $8819;
3764 GL_RGBA16F_ARB = $881A;
3765 GL_RGB16F_ARB = $881B;
3766 GL_ALPHA16F_ARB = $881C;
3767 GL_INTENSITY16F_ARB = $881D;
3768 GL_LUMINANCE16F_ARB = $881E;
3769 GL_LUMINANCE_ALPHA16F_ARB = $881F;
3771 function Load_GL_ARB_texture_float: Boolean;
3773 //***** GL_EXT_texture_compression_dxt1 *****//
3774 // GL_COMPRESSED_RGB_S3TC_DXT1_EXT { already defined }
3775 // GL_COMPRESSED_RGBA_S3TC_DXT1_EXT { already defined }
3777 function Load_GL_EXT_texture_compression_dxt1: Boolean;
3779 //***** GL_ARB_pixel_buffer_object *****//
3780 const
3781 GL_PIXEL_PACK_BUFFER_ARB = $88EB;
3782 GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
3783 GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
3784 GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
3786 function Load_GL_ARB_pixel_buffer_object: Boolean;
3788 //***** GL_EXT_framebuffer_object *****//
3789 const
3790 GL_FRAMEBUFFER_EXT = $8D40;
3791 GL_RENDERBUFFER_EXT = $8D41;
3792 GL_STENCIL_INDEX_EXT = $8D45;
3793 GL_STENCIL_INDEX1_EXT = $8D46;
3794 GL_STENCIL_INDEX4_EXT = $8D47;
3795 GL_STENCIL_INDEX8_EXT = $8D48;
3796 GL_STENCIL_INDEX16_EXT = $8D49;
3797 GL_RENDERBUFFER_WIDTH_EXT = $8D42;
3798 GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
3799 GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
3800 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
3801 GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
3802 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
3803 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
3804 GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
3805 GL_COLOR_ATTACHMENT0_EXT = $8CE0;
3806 GL_COLOR_ATTACHMENT1_EXT = $8CE1;
3807 GL_COLOR_ATTACHMENT2_EXT = $8CE2;
3808 GL_COLOR_ATTACHMENT3_EXT = $8CE3;
3809 GL_COLOR_ATTACHMENT4_EXT = $8CE4;
3810 GL_COLOR_ATTACHMENT5_EXT = $8CE5;
3811 GL_COLOR_ATTACHMENT6_EXT = $8CE6;
3812 GL_COLOR_ATTACHMENT7_EXT = $8CE7;
3813 GL_COLOR_ATTACHMENT8_EXT = $8CE8;
3814 GL_COLOR_ATTACHMENT9_EXT = $8CE9;
3815 GL_COLOR_ATTACHMENT10_EXT = $8CEA;
3816 GL_COLOR_ATTACHMENT11_EXT = $8CEB;
3817 GL_COLOR_ATTACHMENT12_EXT = $8CEC;
3818 GL_COLOR_ATTACHMENT13_EXT = $8CED;
3819 GL_COLOR_ATTACHMENT14_EXT = $8CEE;
3820 GL_COLOR_ATTACHMENT15_EXT = $8CEF;
3821 GL_DEPTH_ATTACHMENT_EXT = $8D00;
3822 GL_STENCIL_ATTACHMENT_EXT = $8D20;
3823 GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
3824 GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
3825 GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
3826 GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
3827 GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
3828 GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
3829 GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
3830 GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
3831 GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
3832 GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
3833 GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
3834 GL_RENDERBUFFER_BINDING_EXT = $8CA7;
3835 GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
3836 GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
3837 GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
3838 var
3839 glIsRenderbufferEXT: function(renderbuffer: GLuint): GLboolean; stdcall = nil;
3840 glBindRenderbufferEXT: procedure(target: GLenum; renderbuffer: GLuint); stdcall = nil;
3841 glDeleteRenderbuffersEXT: procedure(n: GLsizei; const renderbuffers: PGLuint); stdcall = nil;
3842 glGenRenderbuffersEXT: procedure(n: GLsizei; renderbuffers: PGLuint); stdcall = nil;
3843 glRenderbufferStorageEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); stdcall = nil;
3844 glGetRenderbufferParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
3845 glIsFramebufferEXT: function(framebuffer: GLuint): GLboolean; stdcall = nil;
3846 glBindFramebufferEXT: procedure(target: GLenum; framebuffer: GLuint); stdcall = nil;
3847 glDeleteFramebuffersEXT: procedure(n: GLsizei; const framebuffers: PGLuint); stdcall = nil;
3848 glGenFramebuffersEXT: procedure(n: GLsizei; framebuffers: PGLuint); stdcall = nil;
3849 glCheckFramebufferStatusEXT: function(target: GLenum): GLenum; stdcall = nil;
3850 glFramebufferTexture1DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall = nil;
3851 glFramebufferTexture2DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); stdcall = nil;
3852 glFramebufferTexture3DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); stdcall = nil;
3853 glFramebufferRenderbufferEXT: procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); stdcall = nil;
3854 glGetFramebufferAttachmentParameterivEXT: procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
3855 glGenerateMipmapEXT: procedure(target: GLenum); stdcall = nil;
3857 function Load_GL_EXT_framebuffer_object: Boolean;
3859 //***** GL_version_1_4 *****//
3860 const
3861 GL_BLEND_DST_RGB = $80C8;
3862 GL_BLEND_SRC_RGB = $80C9;
3863 GL_BLEND_DST_ALPHA = $80CA;
3864 GL_BLEND_SRC_ALPHA = $80CB;
3865 GL_POINT_SIZE_MIN = $8126;
3866 GL_POINT_SIZE_MAX = $8127;
3867 GL_POINT_FADE_THRESHOLD_SIZE = $8128;
3868 GL_POINT_DISTANCE_ATTENUATION = $8129;
3869 GL_GENERATE_MIPMAP = $8191;
3870 GL_GENERATE_MIPMAP_HINT = $8192;
3871 GL_DEPTH_COMPONENT16 = $81A5;
3872 GL_DEPTH_COMPONENT24 = $81A6;
3873 GL_DEPTH_COMPONENT32 = $81A7;
3874 GL_MIRRORED_REPEAT = $8370;
3875 GL_FOG_COORDINATE_SOURCE = $8450;
3876 GL_FOG_COORDINATE = $8451;
3877 GL_FRAGMENT_DEPTH = $8452;
3878 GL_CURRENT_FOG_COORDINATE = $8453;
3879 GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
3880 GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
3881 GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
3882 GL_FOG_COORDINATE_ARRAY = $8457;
3883 GL_COLOR_SUM = $8458;
3884 GL_CURRENT_SECONDARY_COLOR = $8459;
3885 GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
3886 GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
3887 GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
3888 GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
3889 GL_SECONDARY_COLOR_ARRAY = $845E;
3890 GL_MAX_TEXTURE_LOD_BIAS = $84FD;
3891 GL_TEXTURE_FILTER_CONTROL = $8500;
3892 GL_TEXTURE_LOD_BIAS = $8501;
3893 GL_INCR_WRAP = $8507;
3894 GL_DECR_WRAP = $8508;
3895 GL_TEXTURE_DEPTH_SIZE = $884A;
3896 GL_DEPTH_TEXTURE_MODE = $884B;
3897 GL_TEXTURE_COMPARE_MODE = $884C;
3898 GL_TEXTURE_COMPARE_FUNC = $884D;
3899 GL_COMPARE_R_TO_TEXTURE = $884E;
3900 var
3901 glBlendFuncSeparate: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); stdcall = nil;
3902 glFogCoordf: procedure(coord: GLfloat); stdcall = nil;
3903 glFogCoordfv: procedure(const coord: PGLfloat); stdcall = nil;
3904 glFogCoordd: procedure(coord: GLdouble); stdcall = nil;
3905 glFogCoorddv: procedure(const coord: PGLdouble); stdcall = nil;
3906 glFogCoordPointer: procedure(_type: GLenum; stride: GLsizei; const pointer: PGLvoid); stdcall = nil;
3907 glMultiDrawArrays: procedure(mode: GLenum; first: PGLint; count: PGLsizei; primcount: GLsizei); stdcall = nil;
3908 glMultiDrawElements: procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); stdcall = nil;
3909 glPointParameterf: procedure(pname: GLenum; param: GLfloat); stdcall = nil;
3910 glPointParameterfv: procedure(pname: GLenum; const params: PGLfloat); stdcall = nil;
3911 glPointParameteri: procedure(pname: GLenum; param: GLint); stdcall = nil;
3912 glPointParameteriv: procedure(pname: GLenum; const params: PGLint); stdcall = nil;
3913 glSecondaryColor3b: procedure(red: GLbyte; green: GLbyte; blue: GLbyte); stdcall = nil;
3914 glSecondaryColor3bv: procedure(const v: PGLbyte); stdcall = nil;
3915 glSecondaryColor3d: procedure(red: GLdouble; green: GLdouble; blue: GLdouble); stdcall = nil;
3916 glSecondaryColor3dv: procedure(const v: PGLdouble); stdcall = nil;
3917 glSecondaryColor3f: procedure(red: GLfloat; green: GLfloat; blue: GLfloat); stdcall = nil;
3918 glSecondaryColor3fv: procedure(const v: PGLfloat); stdcall = nil;
3919 glSecondaryColor3i: procedure(red: GLint; green: GLint; blue: GLint); stdcall = nil;
3920 glSecondaryColor3iv: procedure(const v: PGLint); stdcall = nil;
3921 glSecondaryColor3s: procedure(red: GLshort; green: GLshort; blue: GLshort); stdcall = nil;
3922 glSecondaryColor3sv: procedure(const v: PGLshort); stdcall = nil;
3923 glSecondaryColor3ub: procedure(red: GLubyte; green: GLubyte; blue: GLubyte); stdcall = nil;
3924 glSecondaryColor3ubv: procedure(const v: PGLubyte); stdcall = nil;
3925 glSecondaryColor3ui: procedure(red: GLuint; green: GLuint; blue: GLuint); stdcall = nil;
3926 glSecondaryColor3uiv: procedure(const v: PGLuint); stdcall = nil;
3927 glSecondaryColor3us: procedure(red: GLushort; green: GLushort; blue: GLushort); stdcall = nil;
3928 glSecondaryColor3usv: procedure(const v: PGLushort); stdcall = nil;
3929 glSecondaryColorPointer: procedure(size: GLint; _type: GLenum; stride: GLsizei; const pointer: PGLvoid); stdcall = nil;
3930 glWindowPos2d: procedure(x: GLdouble; y: GLdouble); stdcall = nil;
3931 glWindowPos2dv: procedure(const v: PGLdouble); stdcall = nil;
3932 glWindowPos2f: procedure(x: GLfloat; y: GLfloat); stdcall = nil;
3933 glWindowPos2fv: procedure(const v: PGLfloat); stdcall = nil;
3934 glWindowPos2i: procedure(x: GLint; y: GLint); stdcall = nil;
3935 glWindowPos2iv: procedure(const v: PGLint); stdcall = nil;
3936 glWindowPos2s: procedure(x: GLshort; y: GLshort); stdcall = nil;
3937 glWindowPos2sv: procedure(const v: PGLshort); stdcall = nil;
3938 glWindowPos3d: procedure(x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil;
3939 glWindowPos3dv: procedure(const v: PGLdouble); stdcall = nil;
3940 glWindowPos3f: procedure(x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
3941 glWindowPos3fv: procedure(const v: PGLfloat); stdcall = nil;
3942 glWindowPos3i: procedure(x: GLint; y: GLint; z: GLint); stdcall = nil;
3943 glWindowPos3iv: procedure(const v: PGLint); stdcall = nil;
3944 glWindowPos3s: procedure(x: GLshort; y: GLshort; z: GLshort); stdcall = nil;
3945 glWindowPos3sv: procedure(const v: PGLshort); stdcall = nil;
3947 function Load_GL_version_1_4: Boolean;
3949 //***** GL_version_1_5 *****//
3950 const
3951 GL_BUFFER_SIZE = $8764;
3952 GL_BUFFER_USAGE = $8765;
3953 GL_QUERY_COUNTER_BITS = $8864;
3954 GL_CURRENT_QUERY = $8865;
3955 GL_QUERY_RESULT = $8866;
3956 GL_QUERY_RESULT_AVAILABLE = $8867;
3957 GL_ARRAY_BUFFER = $8892;
3958 GL_ELEMENT_ARRAY_BUFFER = $8893;
3959 GL_ARRAY_BUFFER_BINDING = $8894;
3960 GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
3961 GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
3962 GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
3963 GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
3964 GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
3965 GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
3966 GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
3967 GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
3968 GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
3969 GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
3970 GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
3971 GL_READ_ONLY = $88B8;
3972 GL_WRITE_ONLY = $88B9;
3973 GL_READ_WRITE = $88BA;
3974 GL_BUFFER_ACCESS = $88BB;
3975 GL_BUFFER_MAPPED = $88BC;
3976 GL_BUFFER_MAP_POINTER = $88BD;
3977 GL_STREAM_DRAW = $88E0;
3978 GL_STREAM_READ = $88E1;
3979 GL_STREAM_COPY = $88E2;
3980 GL_STATIC_DRAW = $88E4;
3981 GL_STATIC_READ = $88E5;
3982 GL_STATIC_COPY = $88E6;
3983 GL_DYNAMIC_DRAW = $88E8;
3984 GL_DYNAMIC_READ = $88E9;
3985 GL_DYNAMIC_COPY = $88EA;
3986 GL_SAMPLES_PASSED = $8914;
3987 GL_FOG_COORD_SRC = $8450;
3988 GL_FOG_COORD = $8451;
3989 GL_CURRENT_FOG_COORD = $8453;
3990 GL_FOG_COORD_ARRAY_TYPE = $8454;
3991 GL_FOG_COORD_ARRAY_STRIDE = $8455;
3992 GL_FOG_COORD_ARRAY_POINTER = $8456;
3993 GL_FOG_COORD_ARRAY = $8457;
3994 GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
3995 GL_SRC0_RGB = $8580;
3996 GL_SRC1_RGB = $8581;
3997 GL_SRC2_RGB = $8582;
3998 GL_SRC0_ALPHA = $8588;
3999 GL_SRC1_ALPHA = $8589;
4000 GL_SRC2_ALPHA = $858A;
4001 var
4002 glGenQueries: procedure(n: GLsizei; ids: PGLuint); stdcall = nil;
4003 glDeleteQueries: procedure(n: GLsizei; const ids: PGLuint); stdcall = nil;
4004 glIsQuery: function(id: GLuint): GLboolean; stdcall = nil;
4005 glBeginQuery: procedure(target: GLenum; id: GLuint); stdcall = nil;
4006 glEndQuery: procedure(target: GLenum); stdcall = nil;
4007 glGetQueryiv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
4008 glGetQueryObjectiv: procedure(id: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
4009 glGetQueryObjectuiv: procedure(id: GLuint; pname: GLenum; params: PGLuint); stdcall = nil;
4010 glBindBuffer: procedure(target: GLenum; buffer: GLuint); stdcall = nil;
4011 glDeleteBuffers: procedure(n: GLsizei; const buffers: PGLuint); stdcall = nil;
4012 glGenBuffers: procedure(n: GLsizei; buffers: PGLuint); stdcall = nil;
4013 glIsBuffer: function(buffer: GLuint): GLboolean; stdcall = nil;
4014 glBufferData: procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); stdcall = nil;
4015 glBufferSubData: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); stdcall = nil;
4016 glGetBufferSubData: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); stdcall = nil;
4017 glMapBuffer: function(target: GLenum; access: GLenum): PGLvoid; stdcall = nil;
4018 glUnmapBuffer: function(target: GLenum): GLboolean; stdcall = nil;
4019 glGetBufferParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); stdcall = nil;
4020 glGetBufferPointerv: procedure(target: GLenum; pname: GLenum; params: PGLvoid); stdcall = nil;
4022 function Load_GL_version_1_5: Boolean;
4024 //***** GL_version_2_0 *****//
4025 const
4026 GL_BLEND_EQUATION_RGB = $8009;
4027 GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
4028 GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
4029 GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
4030 GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
4031 GL_CURRENT_VERTEX_ATTRIB = $8626;
4032 GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
4033 GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
4034 GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
4035 GL_STENCIL_BACK_FUNC = $8800;
4036 GL_STENCIL_BACK_FAIL = $8801;
4037 GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
4038 GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
4039 GL_MAX_DRAW_BUFFERS = $8824;
4040 GL_DRAW_BUFFER0 = $8825;
4041 GL_DRAW_BUFFER1 = $8826;
4042 GL_DRAW_BUFFER2 = $8827;
4043 GL_DRAW_BUFFER3 = $8828;
4044 GL_DRAW_BUFFER4 = $8829;
4045 GL_DRAW_BUFFER5 = $882A;
4046 GL_DRAW_BUFFER6 = $882B;
4047 GL_DRAW_BUFFER7 = $882C;
4048 GL_DRAW_BUFFER8 = $882D;
4049 GL_DRAW_BUFFER9 = $882E;
4050 GL_DRAW_BUFFER10 = $882F;
4051 GL_DRAW_BUFFER11 = $8830;
4052 GL_DRAW_BUFFER12 = $8831;
4053 GL_DRAW_BUFFER13 = $8832;
4054 GL_DRAW_BUFFER14 = $8833;
4055 GL_DRAW_BUFFER15 = $8834;
4056 GL_BLEND_EQUATION_ALPHA = $883D;
4057 GL_POINT_SPRITE = $8861;
4058 GL_COORD_REPLACE = $8862;
4059 GL_MAX_VERTEX_ATTRIBS = $8869;
4060 GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
4061 GL_MAX_TEXTURE_COORDS = $8871;
4062 GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
4063 GL_FRAGMENT_SHADER = $8B30;
4064 GL_VERTEX_SHADER = $8B31;
4065 GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
4066 GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
4067 GL_MAX_VARYING_FLOATS = $8B4B;
4068 GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
4069 GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
4070 GL_SHADER_TYPE = $8B4F;
4071 GL_FLOAT_VEC2 = $8B50;
4072 GL_FLOAT_VEC3 = $8B51;
4073 GL_FLOAT_VEC4 = $8B52;
4074 GL_INT_VEC2 = $8B53;
4075 GL_INT_VEC3 = $8B54;
4076 GL_INT_VEC4 = $8B55;
4077 GL_BOOL = $8B56;
4078 GL_BOOL_VEC2 = $8B57;
4079 GL_BOOL_VEC3 = $8B58;
4080 GL_BOOL_VEC4 = $8B59;
4081 GL_FLOAT_MAT2 = $8B5A;
4082 GL_FLOAT_MAT3 = $8B5B;
4083 GL_FLOAT_MAT4 = $8B5C;
4084 GL_SAMPLER_1D = $8B5D;
4085 GL_SAMPLER_2D = $8B5E;
4086 GL_SAMPLER_3D = $8B5F;
4087 GL_SAMPLER_CUBE = $8B60;
4088 GL_SAMPLER_1D_SHADOW = $8B61;
4089 GL_SAMPLER_2D_SHADOW = $8B62;
4090 GL_DELETE_STATUS = $8B80;
4091 GL_COMPILE_STATUS = $8B81;
4092 GL_LINK_STATUS = $8B82;
4093 GL_VALIDATE_STATUS = $8B83;
4094 GL_INFO_LOG_LENGTH = $8B84;
4095 GL_ATTACHED_SHADERS = $8B85;
4096 GL_ACTIVE_UNIFORMS = $8B86;
4097 GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
4098 GL_SHADER_SOURCE_LENGTH = $8B88;
4099 GL_ACTIVE_ATTRIBUTES = $8B89;
4100 GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
4101 GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
4102 GL_SHADING_LANGUAGE_VERSION = $8B8C;
4103 GL_CURRENT_PROGRAM = $8B8D;
4104 GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
4105 GL_LOWER_LEFT = $8CA1;
4106 GL_UPPER_LEFT = $8CA2;
4107 GL_STENCIL_BACK_REF = $8CA3;
4108 GL_STENCIL_BACK_VALUE_MASK = $8CA4;
4109 GL_STENCIL_BACK_WRITEMASK = $8CA5;
4110 var
4111 glBlendEquationSeparate: procedure(modeRGB: GLenum; modeAlpha: GLenum); stdcall = nil;
4112 glDrawBuffers: procedure(n: GLsizei; const bufs: PGLenum); stdcall = nil;
4113 glStencilOpSeparate: procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); stdcall = nil;
4114 glStencilFuncSeparate: procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); stdcall = nil;
4115 glStencilMaskSeparate: procedure(face: GLenum; mask: GLuint); stdcall = nil;
4116 glAttachShader: procedure(_program: GLuint; shader: GLuint); stdcall = nil;
4117 glBindAttribLocation: procedure(_program: GLuint; index: GLuint; const name: PGLchar); stdcall = nil;
4118 glCompileShader: procedure(shader: GLuint); stdcall = nil;
4119 glCreateProgram: function(): GLuint; stdcall = nil;
4120 glCreateShader: function(_type: GLenum): GLuint; stdcall = nil;
4121 glDeleteProgram: procedure(_program: GLuint); stdcall = nil;
4122 glDeleteShader: procedure(shader: GLuint); stdcall = nil;
4123 glDetachShader: procedure(_program: GLuint; shader: GLuint); stdcall = nil;
4124 glDisableVertexAttribArray: procedure(index: GLuint); stdcall = nil;
4125 glEnableVertexAttribArray: procedure(index: GLuint); stdcall = nil;
4126 glGetActiveAttrib: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLchar); stdcall = nil;
4127 glGetActiveUniform: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLchar); stdcall = nil;
4128 glGetAttachedShaders: procedure(_program: GLuint; maxCount: GLsizei; count: PGLsizei; obj: PGLuint); stdcall = nil;
4129 glGetAttribLocation: function(_program: GLuint; const name: PGLchar): GLint; stdcall = nil;
4130 glGetProgramiv: procedure(_program: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
4131 glGetProgramInfoLog: procedure(_program: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); stdcall = nil;
4132 glGetShaderiv: procedure(shader: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
4133 glGetShaderInfoLog: procedure(shader: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); stdcall = nil;
4134 glGetShaderSource: procedure(shader: GLuint; bufSize: GLsizei; length: PGLsizei; source: PGLchar); stdcall = nil;
4135 glGetUniformLocation: function(_program: GLuint; const name: PGLchar): GLint; stdcall = nil;
4136 glGetUniformfv: procedure(_program: GLuint; location: GLint; params: PGLfloat); stdcall = nil;
4137 glGetUniformiv: procedure(_program: GLuint; location: GLint; params: PGLint); stdcall = nil;
4138 glGetVertexAttribdv: procedure(index: GLuint; pname: GLenum; params: PGLdouble); stdcall = nil;
4139 glGetVertexAttribfv: procedure(index: GLuint; pname: GLenum; params: PGLfloat); stdcall = nil;
4140 glGetVertexAttribiv: procedure(index: GLuint; pname: GLenum; params: PGLint); stdcall = nil;
4141 glGetVertexAttribPointerv: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); stdcall = nil;
4142 glIsProgram: function(_program: GLuint): GLboolean; stdcall = nil;
4143 glIsShader: function(shader: GLuint): GLboolean; stdcall = nil;
4144 glLinkProgram: procedure(_program: GLuint); stdcall = nil;
4145 glShaderSource: procedure(shader: GLuint; count: GLsizei; const _string: PGLchar; const length: PGLint); stdcall = nil;
4146 glUseProgram: procedure(_program: GLuint); stdcall = nil;
4147 glUniform1f: procedure(location: GLint; v0: GLfloat); stdcall = nil;
4148 glUniform2f: procedure(location: GLint; v0: GLfloat; v1: GLfloat); stdcall = nil;
4149 glUniform3f: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); stdcall = nil;
4150 glUniform4f: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); stdcall = nil;
4151 glUniform1i: procedure(location: GLint; v0: GLint); stdcall = nil;
4152 glUniform2i: procedure(location: GLint; v0: GLint; v1: GLint); stdcall = nil;
4153 glUniform3i: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint); stdcall = nil;
4154 glUniform4i: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); stdcall = nil;
4155 glUniform1fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall = nil;
4156 glUniform2fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall = nil;
4157 glUniform3fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall = nil;
4158 glUniform4fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); stdcall = nil;
4159 glUniform1iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall = nil;
4160 glUniform2iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall = nil;
4161 glUniform3iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall = nil;
4162 glUniform4iv: procedure(location: GLint; count: GLsizei; const value: PGLint); stdcall = nil;
4163 glUniformMatrix2fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall = nil;
4164 glUniformMatrix3fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall = nil;
4165 glUniformMatrix4fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); stdcall = nil;
4166 glValidateProgram: procedure(_program: GLuint); stdcall = nil;
4167 glVertexAttrib1d: procedure(index: GLuint; x: GLdouble); stdcall = nil;
4168 glVertexAttrib1dv: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
4169 glVertexAttrib1f: procedure(index: GLuint; x: GLfloat); stdcall = nil;
4170 glVertexAttrib1fv: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
4171 glVertexAttrib1s: procedure(index: GLuint; x: GLshort); stdcall = nil;
4172 glVertexAttrib1sv: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
4173 glVertexAttrib2d: procedure(index: GLuint; x: GLdouble; y: GLdouble); stdcall = nil;
4174 glVertexAttrib2dv: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
4175 glVertexAttrib2f: procedure(index: GLuint; x: GLfloat; y: GLfloat); stdcall = nil;
4176 glVertexAttrib2fv: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
4177 glVertexAttrib2s: procedure(index: GLuint; x: GLshort; y: GLshort); stdcall = nil;
4178 glVertexAttrib2sv: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
4179 glVertexAttrib3d: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); stdcall = nil;
4180 glVertexAttrib3dv: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
4181 glVertexAttrib3f: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); stdcall = nil;
4182 glVertexAttrib3fv: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
4183 glVertexAttrib3s: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); stdcall = nil;
4184 glVertexAttrib3sv: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
4185 glVertexAttrib4Nbv: procedure(index: GLuint; const v: PGLbyte); stdcall = nil;
4186 glVertexAttrib4Niv: procedure(index: GLuint; const v: PGLint); stdcall = nil;
4187 glVertexAttrib4Nsv: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
4188 glVertexAttrib4Nub: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); stdcall = nil;
4189 glVertexAttrib4Nubv: procedure(index: GLuint; const v: PGLubyte); stdcall = nil;
4190 glVertexAttrib4Nuiv: procedure(index: GLuint; const v: PGLuint); stdcall = nil;
4191 glVertexAttrib4Nusv: procedure(index: GLuint; const v: PGLushort); stdcall = nil;
4192 glVertexAttrib4bv: procedure(index: GLuint; const v: PGLbyte); stdcall = nil;
4193 glVertexAttrib4d: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); stdcall = nil;
4194 glVertexAttrib4dv: procedure(index: GLuint; const v: PGLdouble); stdcall = nil;
4195 glVertexAttrib4f: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); stdcall = nil;
4196 glVertexAttrib4fv: procedure(index: GLuint; const v: PGLfloat); stdcall = nil;
4197 glVertexAttrib4iv: procedure(index: GLuint; const v: PGLint); stdcall = nil;
4198 glVertexAttrib4s: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); stdcall = nil;
4199 glVertexAttrib4sv: procedure(index: GLuint; const v: PGLshort); stdcall = nil;
4200 glVertexAttrib4ubv: procedure(index: GLuint; const v: PGLubyte); stdcall = nil;
4201 glVertexAttrib4uiv: procedure(index: GLuint; const v: PGLuint); stdcall = nil;
4202 glVertexAttrib4usv: procedure(index: GLuint; const v: PGLushort); stdcall = nil;
4203 glVertexAttribPointer: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const pointer: PGLvoid); stdcall = nil;
4205 function Load_GL_version_2_0: Boolean;
4207 implementation
4209 function glext_ExtensionSupported(const extension: String; const searchIn: String): Boolean;
4210 var
4211 extensions: PChar;
4212 start: PChar;
4213 where, terminator: PChar;
4214 begin
4216 if (Pos(' ', extension) <> 0) or (extension = '') then
4217 begin
4218 Result := FALSE;
4219 Exit;
4220 end;
4222 if searchIn = '' then extensions := PChar(glGetString(GL_EXTENSIONS))
4223 else extensions := PChar(searchIn);
4224 start := extensions;
4225 while TRUE do
4226 begin
4227 where := StrPos(start, PChar(extension));
4228 if where = nil then Break;
4229 terminator := Pointer(Integer(where) + Length(extension));
4230 if (where = start) or (PChar(Integer(where) - 1)^ = ' ') then
4231 begin
4232 if (terminator^ = ' ') or (terminator^ = #0) then
4233 begin
4234 Result := TRUE;
4235 Exit;
4236 end;
4237 end;
4238 start := terminator;
4239 end;
4240 Result := FALSE;
4242 end;
4244 function Load_GL_version_1_2: Boolean;
4245 var
4246 extstring: String;
4247 begin
4249 Result := FALSE;
4250 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4252 glDrawRangeElements := wglGetProcAddress('glDrawRangeElements');
4253 if not Assigned(glDrawRangeElements) then Exit;
4254 glTexImage3D := wglGetProcAddress('glTexImage3D');
4255 if not Assigned(glTexImage3D) then Exit;
4256 glTexSubImage3D := wglGetProcAddress('glTexSubImage3D');
4257 if not Assigned(glTexSubImage3D) then Exit;
4258 glCopyTexSubImage3D := wglGetProcAddress('glCopyTexSubImage3D');
4259 if not Assigned(glCopyTexSubImage3D) then Exit;
4260 Result := TRUE;
4262 end;
4264 function Load_GL_ARB_imaging: Boolean;
4265 var
4266 extstring: String;
4267 begin
4269 Result := FALSE;
4270 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4272 if glext_ExtensionSupported('GL_ARB_imaging', extstring) then
4273 begin
4274 glColorTable := wglGetProcAddress('glColorTable');
4275 if not Assigned(glColorTable) then Exit;
4276 glColorTableParameterfv := wglGetProcAddress('glColorTableParameterfv');
4277 if not Assigned(glColorTableParameterfv) then Exit;
4278 glColorTableParameteriv := wglGetProcAddress('glColorTableParameteriv');
4279 if not Assigned(glColorTableParameteriv) then Exit;
4280 glCopyColorTable := wglGetProcAddress('glCopyColorTable');
4281 if not Assigned(glCopyColorTable) then Exit;
4282 glGetColorTable := wglGetProcAddress('glGetColorTable');
4283 if not Assigned(glGetColorTable) then Exit;
4284 glGetColorTableParameterfv := wglGetProcAddress('glGetColorTableParameterfv');
4285 if not Assigned(glGetColorTableParameterfv) then Exit;
4286 glGetColorTableParameteriv := wglGetProcAddress('glGetColorTableParameteriv');
4287 if not Assigned(glGetColorTableParameteriv) then Exit;
4288 glColorSubTable := wglGetProcAddress('glColorSubTable');
4289 if not Assigned(glColorSubTable) then Exit;
4290 glCopyColorSubTable := wglGetProcAddress('glCopyColorSubTable');
4291 if not Assigned(glCopyColorSubTable) then Exit;
4292 glConvolutionFilter1D := wglGetProcAddress('glConvolutionFilter1D');
4293 if not Assigned(glConvolutionFilter1D) then Exit;
4294 glConvolutionFilter2D := wglGetProcAddress('glConvolutionFilter2D');
4295 if not Assigned(glConvolutionFilter2D) then Exit;
4296 glConvolutionParameterf := wglGetProcAddress('glConvolutionParameterf');
4297 if not Assigned(glConvolutionParameterf) then Exit;
4298 glConvolutionParameterfv := wglGetProcAddress('glConvolutionParameterfv');
4299 if not Assigned(glConvolutionParameterfv) then Exit;
4300 glConvolutionParameteri := wglGetProcAddress('glConvolutionParameteri');
4301 if not Assigned(glConvolutionParameteri) then Exit;
4302 glConvolutionParameteriv := wglGetProcAddress('glConvolutionParameteriv');
4303 if not Assigned(glConvolutionParameteriv) then Exit;
4304 glCopyConvolutionFilter1D := wglGetProcAddress('glCopyConvolutionFilter1D');
4305 if not Assigned(glCopyConvolutionFilter1D) then Exit;
4306 glCopyConvolutionFilter2D := wglGetProcAddress('glCopyConvolutionFilter2D');
4307 if not Assigned(glCopyConvolutionFilter2D) then Exit;
4308 glGetConvolutionFilter := wglGetProcAddress('glGetConvolutionFilter');
4309 if not Assigned(glGetConvolutionFilter) then Exit;
4310 glGetConvolutionParameterfv := wglGetProcAddress('glGetConvolutionParameterfv');
4311 if not Assigned(glGetConvolutionParameterfv) then Exit;
4312 glGetConvolutionParameteriv := wglGetProcAddress('glGetConvolutionParameteriv');
4313 if not Assigned(glGetConvolutionParameteriv) then Exit;
4314 glGetSeparableFilter := wglGetProcAddress('glGetSeparableFilter');
4315 if not Assigned(glGetSeparableFilter) then Exit;
4316 glSeparableFilter2D := wglGetProcAddress('glSeparableFilter2D');
4317 if not Assigned(glSeparableFilter2D) then Exit;
4318 glGetHistogram := wglGetProcAddress('glGetHistogram');
4319 if not Assigned(glGetHistogram) then Exit;
4320 glGetHistogramParameterfv := wglGetProcAddress('glGetHistogramParameterfv');
4321 if not Assigned(glGetHistogramParameterfv) then Exit;
4322 glGetHistogramParameteriv := wglGetProcAddress('glGetHistogramParameteriv');
4323 if not Assigned(glGetHistogramParameteriv) then Exit;
4324 glGetMinmax := wglGetProcAddress('glGetMinmax');
4325 if not Assigned(glGetMinmax) then Exit;
4326 glGetMinmaxParameterfv := wglGetProcAddress('glGetMinmaxParameterfv');
4327 if not Assigned(glGetMinmaxParameterfv) then Exit;
4328 glGetMinmaxParameteriv := wglGetProcAddress('glGetMinmaxParameteriv');
4329 if not Assigned(glGetMinmaxParameteriv) then Exit;
4330 glHistogram := wglGetProcAddress('glHistogram');
4331 if not Assigned(glHistogram) then Exit;
4332 glMinmax := wglGetProcAddress('glMinmax');
4333 if not Assigned(glMinmax) then Exit;
4334 glResetHistogram := wglGetProcAddress('glResetHistogram');
4335 if not Assigned(glResetHistogram) then Exit;
4336 glResetMinmax := wglGetProcAddress('glResetMinmax');
4337 if not Assigned(glResetMinmax) then Exit;
4338 glBlendEquation := wglGetProcAddress('glBlendEquation');
4339 if not Assigned(glBlendEquation) then Exit;
4340 glBlendColor := wglGetProcAddress('glBlendColor');
4341 if not Assigned(glBlendColor) then Exit;
4342 Result := TRUE;
4343 end;
4345 end;
4347 function Load_GL_version_1_3: Boolean;
4348 var
4349 extstring: String;
4350 begin
4352 Result := FALSE;
4353 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4355 glActiveTexture := wglGetProcAddress('glActiveTexture');
4356 if not Assigned(glActiveTexture) then Exit;
4357 glClientActiveTexture := wglGetProcAddress('glClientActiveTexture');
4358 if not Assigned(glClientActiveTexture) then Exit;
4359 glMultiTexCoord1d := wglGetProcAddress('glMultiTexCoord1d');
4360 if not Assigned(glMultiTexCoord1d) then Exit;
4361 glMultiTexCoord1dv := wglGetProcAddress('glMultiTexCoord1dv');
4362 if not Assigned(glMultiTexCoord1dv) then Exit;
4363 glMultiTexCoord1f := wglGetProcAddress('glMultiTexCoord1f');
4364 if not Assigned(glMultiTexCoord1f) then Exit;
4365 glMultiTexCoord1fv := wglGetProcAddress('glMultiTexCoord1fv');
4366 if not Assigned(glMultiTexCoord1fv) then Exit;
4367 glMultiTexCoord1i := wglGetProcAddress('glMultiTexCoord1i');
4368 if not Assigned(glMultiTexCoord1i) then Exit;
4369 glMultiTexCoord1iv := wglGetProcAddress('glMultiTexCoord1iv');
4370 if not Assigned(glMultiTexCoord1iv) then Exit;
4371 glMultiTexCoord1s := wglGetProcAddress('glMultiTexCoord1s');
4372 if not Assigned(glMultiTexCoord1s) then Exit;
4373 glMultiTexCoord1sv := wglGetProcAddress('glMultiTexCoord1sv');
4374 if not Assigned(glMultiTexCoord1sv) then Exit;
4375 glMultiTexCoord2d := wglGetProcAddress('glMultiTexCoord2d');
4376 if not Assigned(glMultiTexCoord2d) then Exit;
4377 glMultiTexCoord2dv := wglGetProcAddress('glMultiTexCoord2dv');
4378 if not Assigned(glMultiTexCoord2dv) then Exit;
4379 glMultiTexCoord2f := wglGetProcAddress('glMultiTexCoord2f');
4380 if not Assigned(glMultiTexCoord2f) then Exit;
4381 glMultiTexCoord2fv := wglGetProcAddress('glMultiTexCoord2fv');
4382 if not Assigned(glMultiTexCoord2fv) then Exit;
4383 glMultiTexCoord2i := wglGetProcAddress('glMultiTexCoord2i');
4384 if not Assigned(glMultiTexCoord2i) then Exit;
4385 glMultiTexCoord2iv := wglGetProcAddress('glMultiTexCoord2iv');
4386 if not Assigned(glMultiTexCoord2iv) then Exit;
4387 glMultiTexCoord2s := wglGetProcAddress('glMultiTexCoord2s');
4388 if not Assigned(glMultiTexCoord2s) then Exit;
4389 glMultiTexCoord2sv := wglGetProcAddress('glMultiTexCoord2sv');
4390 if not Assigned(glMultiTexCoord2sv) then Exit;
4391 glMultiTexCoord3d := wglGetProcAddress('glMultiTexCoord3d');
4392 if not Assigned(glMultiTexCoord3d) then Exit;
4393 glMultiTexCoord3dv := wglGetProcAddress('glMultiTexCoord3dv');
4394 if not Assigned(glMultiTexCoord3dv) then Exit;
4395 glMultiTexCoord3f := wglGetProcAddress('glMultiTexCoord3f');
4396 if not Assigned(glMultiTexCoord3f) then Exit;
4397 glMultiTexCoord3fv := wglGetProcAddress('glMultiTexCoord3fv');
4398 if not Assigned(glMultiTexCoord3fv) then Exit;
4399 glMultiTexCoord3i := wglGetProcAddress('glMultiTexCoord3i');
4400 if not Assigned(glMultiTexCoord3i) then Exit;
4401 glMultiTexCoord3iv := wglGetProcAddress('glMultiTexCoord3iv');
4402 if not Assigned(glMultiTexCoord3iv) then Exit;
4403 glMultiTexCoord3s := wglGetProcAddress('glMultiTexCoord3s');
4404 if not Assigned(glMultiTexCoord3s) then Exit;
4405 glMultiTexCoord3sv := wglGetProcAddress('glMultiTexCoord3sv');
4406 if not Assigned(glMultiTexCoord3sv) then Exit;
4407 glMultiTexCoord4d := wglGetProcAddress('glMultiTexCoord4d');
4408 if not Assigned(glMultiTexCoord4d) then Exit;
4409 glMultiTexCoord4dv := wglGetProcAddress('glMultiTexCoord4dv');
4410 if not Assigned(glMultiTexCoord4dv) then Exit;
4411 glMultiTexCoord4f := wglGetProcAddress('glMultiTexCoord4f');
4412 if not Assigned(glMultiTexCoord4f) then Exit;
4413 glMultiTexCoord4fv := wglGetProcAddress('glMultiTexCoord4fv');
4414 if not Assigned(glMultiTexCoord4fv) then Exit;
4415 glMultiTexCoord4i := wglGetProcAddress('glMultiTexCoord4i');
4416 if not Assigned(glMultiTexCoord4i) then Exit;
4417 glMultiTexCoord4iv := wglGetProcAddress('glMultiTexCoord4iv');
4418 if not Assigned(glMultiTexCoord4iv) then Exit;
4419 glMultiTexCoord4s := wglGetProcAddress('glMultiTexCoord4s');
4420 if not Assigned(glMultiTexCoord4s) then Exit;
4421 glMultiTexCoord4sv := wglGetProcAddress('glMultiTexCoord4sv');
4422 if not Assigned(glMultiTexCoord4sv) then Exit;
4423 glLoadTransposeMatrixf := wglGetProcAddress('glLoadTransposeMatrixf');
4424 if not Assigned(glLoadTransposeMatrixf) then Exit;
4425 glLoadTransposeMatrixd := wglGetProcAddress('glLoadTransposeMatrixd');
4426 if not Assigned(glLoadTransposeMatrixd) then Exit;
4427 glMultTransposeMatrixf := wglGetProcAddress('glMultTransposeMatrixf');
4428 if not Assigned(glMultTransposeMatrixf) then Exit;
4429 glMultTransposeMatrixd := wglGetProcAddress('glMultTransposeMatrixd');
4430 if not Assigned(glMultTransposeMatrixd) then Exit;
4431 glSampleCoverage := wglGetProcAddress('glSampleCoverage');
4432 if not Assigned(glSampleCoverage) then Exit;
4433 glCompressedTexImage3D := wglGetProcAddress('glCompressedTexImage3D');
4434 if not Assigned(glCompressedTexImage3D) then Exit;
4435 glCompressedTexImage2D := wglGetProcAddress('glCompressedTexImage2D');
4436 if not Assigned(glCompressedTexImage2D) then Exit;
4437 glCompressedTexImage1D := wglGetProcAddress('glCompressedTexImage1D');
4438 if not Assigned(glCompressedTexImage1D) then Exit;
4439 glCompressedTexSubImage3D := wglGetProcAddress('glCompressedTexSubImage3D');
4440 if not Assigned(glCompressedTexSubImage3D) then Exit;
4441 glCompressedTexSubImage2D := wglGetProcAddress('glCompressedTexSubImage2D');
4442 if not Assigned(glCompressedTexSubImage2D) then Exit;
4443 glCompressedTexSubImage1D := wglGetProcAddress('glCompressedTexSubImage1D');
4444 if not Assigned(glCompressedTexSubImage1D) then Exit;
4445 glGetCompressedTexImage := wglGetProcAddress('glGetCompressedTexImage');
4446 if not Assigned(glGetCompressedTexImage) then Exit;
4447 Result := TRUE;
4449 end;
4451 function Load_GL_ARB_multitexture: Boolean;
4452 var
4453 extstring: String;
4454 begin
4456 Result := FALSE;
4457 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4459 if glext_ExtensionSupported('GL_ARB_multitexture', extstring) then
4460 begin
4461 glActiveTextureARB := wglGetProcAddress('glActiveTextureARB');
4462 if not Assigned(glActiveTextureARB) then Exit;
4463 glClientActiveTextureARB := wglGetProcAddress('glClientActiveTextureARB');
4464 if not Assigned(glClientActiveTextureARB) then Exit;
4465 glMultiTexCoord1dARB := wglGetProcAddress('glMultiTexCoord1dARB');
4466 if not Assigned(glMultiTexCoord1dARB) then Exit;
4467 glMultiTexCoord1dvARB := wglGetProcAddress('glMultiTexCoord1dvARB');
4468 if not Assigned(glMultiTexCoord1dvARB) then Exit;
4469 glMultiTexCoord1fARB := wglGetProcAddress('glMultiTexCoord1fARB');
4470 if not Assigned(glMultiTexCoord1fARB) then Exit;
4471 glMultiTexCoord1fvARB := wglGetProcAddress('glMultiTexCoord1fvARB');
4472 if not Assigned(glMultiTexCoord1fvARB) then Exit;
4473 glMultiTexCoord1iARB := wglGetProcAddress('glMultiTexCoord1iARB');
4474 if not Assigned(glMultiTexCoord1iARB) then Exit;
4475 glMultiTexCoord1ivARB := wglGetProcAddress('glMultiTexCoord1ivARB');
4476 if not Assigned(glMultiTexCoord1ivARB) then Exit;
4477 glMultiTexCoord1sARB := wglGetProcAddress('glMultiTexCoord1sARB');
4478 if not Assigned(glMultiTexCoord1sARB) then Exit;
4479 glMultiTexCoord1svARB := wglGetProcAddress('glMultiTexCoord1svARB');
4480 if not Assigned(glMultiTexCoord1svARB) then Exit;
4481 glMultiTexCoord2dARB := wglGetProcAddress('glMultiTexCoord2dARB');
4482 if not Assigned(glMultiTexCoord2dARB) then Exit;
4483 glMultiTexCoord2dvARB := wglGetProcAddress('glMultiTexCoord2dvARB');
4484 if not Assigned(glMultiTexCoord2dvARB) then Exit;
4485 glMultiTexCoord2fARB := wglGetProcAddress('glMultiTexCoord2fARB');
4486 if not Assigned(glMultiTexCoord2fARB) then Exit;
4487 glMultiTexCoord2fvARB := wglGetProcAddress('glMultiTexCoord2fvARB');
4488 if not Assigned(glMultiTexCoord2fvARB) then Exit;
4489 glMultiTexCoord2iARB := wglGetProcAddress('glMultiTexCoord2iARB');
4490 if not Assigned(glMultiTexCoord2iARB) then Exit;
4491 glMultiTexCoord2ivARB := wglGetProcAddress('glMultiTexCoord2ivARB');
4492 if not Assigned(glMultiTexCoord2ivARB) then Exit;
4493 glMultiTexCoord2sARB := wglGetProcAddress('glMultiTexCoord2sARB');
4494 if not Assigned(glMultiTexCoord2sARB) then Exit;
4495 glMultiTexCoord2svARB := wglGetProcAddress('glMultiTexCoord2svARB');
4496 if not Assigned(glMultiTexCoord2svARB) then Exit;
4497 glMultiTexCoord3dARB := wglGetProcAddress('glMultiTexCoord3dARB');
4498 if not Assigned(glMultiTexCoord3dARB) then Exit;
4499 glMultiTexCoord3dvARB := wglGetProcAddress('glMultiTexCoord3dvARB');
4500 if not Assigned(glMultiTexCoord3dvARB) then Exit;
4501 glMultiTexCoord3fARB := wglGetProcAddress('glMultiTexCoord3fARB');
4502 if not Assigned(glMultiTexCoord3fARB) then Exit;
4503 glMultiTexCoord3fvARB := wglGetProcAddress('glMultiTexCoord3fvARB');
4504 if not Assigned(glMultiTexCoord3fvARB) then Exit;
4505 glMultiTexCoord3iARB := wglGetProcAddress('glMultiTexCoord3iARB');
4506 if not Assigned(glMultiTexCoord3iARB) then Exit;
4507 glMultiTexCoord3ivARB := wglGetProcAddress('glMultiTexCoord3ivARB');
4508 if not Assigned(glMultiTexCoord3ivARB) then Exit;
4509 glMultiTexCoord3sARB := wglGetProcAddress('glMultiTexCoord3sARB');
4510 if not Assigned(glMultiTexCoord3sARB) then Exit;
4511 glMultiTexCoord3svARB := wglGetProcAddress('glMultiTexCoord3svARB');
4512 if not Assigned(glMultiTexCoord3svARB) then Exit;
4513 glMultiTexCoord4dARB := wglGetProcAddress('glMultiTexCoord4dARB');
4514 if not Assigned(glMultiTexCoord4dARB) then Exit;
4515 glMultiTexCoord4dvARB := wglGetProcAddress('glMultiTexCoord4dvARB');
4516 if not Assigned(glMultiTexCoord4dvARB) then Exit;
4517 glMultiTexCoord4fARB := wglGetProcAddress('glMultiTexCoord4fARB');
4518 if not Assigned(glMultiTexCoord4fARB) then Exit;
4519 glMultiTexCoord4fvARB := wglGetProcAddress('glMultiTexCoord4fvARB');
4520 if not Assigned(glMultiTexCoord4fvARB) then Exit;
4521 glMultiTexCoord4iARB := wglGetProcAddress('glMultiTexCoord4iARB');
4522 if not Assigned(glMultiTexCoord4iARB) then Exit;
4523 glMultiTexCoord4ivARB := wglGetProcAddress('glMultiTexCoord4ivARB');
4524 if not Assigned(glMultiTexCoord4ivARB) then Exit;
4525 glMultiTexCoord4sARB := wglGetProcAddress('glMultiTexCoord4sARB');
4526 if not Assigned(glMultiTexCoord4sARB) then Exit;
4527 glMultiTexCoord4svARB := wglGetProcAddress('glMultiTexCoord4svARB');
4528 if not Assigned(glMultiTexCoord4svARB) then Exit;
4529 Result := TRUE;
4530 end;
4532 end;
4534 function Load_GL_ARB_transpose_matrix: Boolean;
4535 var
4536 extstring: String;
4537 begin
4539 Result := FALSE;
4540 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4542 if glext_ExtensionSupported('GL_ARB_transpose_matrix', extstring) then
4543 begin
4544 glLoadTransposeMatrixfARB := wglGetProcAddress('glLoadTransposeMatrixfARB');
4545 if not Assigned(glLoadTransposeMatrixfARB) then Exit;
4546 glLoadTransposeMatrixdARB := wglGetProcAddress('glLoadTransposeMatrixdARB');
4547 if not Assigned(glLoadTransposeMatrixdARB) then Exit;
4548 glMultTransposeMatrixfARB := wglGetProcAddress('glMultTransposeMatrixfARB');
4549 if not Assigned(glMultTransposeMatrixfARB) then Exit;
4550 glMultTransposeMatrixdARB := wglGetProcAddress('glMultTransposeMatrixdARB');
4551 if not Assigned(glMultTransposeMatrixdARB) then Exit;
4552 Result := TRUE;
4553 end;
4555 end;
4557 function Load_GL_ARB_multisample: Boolean;
4558 var
4559 extstring: String;
4560 begin
4562 Result := FALSE;
4563 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4565 if glext_ExtensionSupported('GL_ARB_multisample', extstring) then
4566 begin
4567 glSampleCoverageARB := wglGetProcAddress('glSampleCoverageARB');
4568 if not Assigned(glSampleCoverageARB) then Exit;
4569 Result := TRUE;
4570 end;
4572 end;
4574 function Load_GL_ARB_texture_env_add: Boolean;
4575 var
4576 extstring: String;
4577 begin
4579 Result := FALSE;
4580 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4582 if glext_ExtensionSupported('GL_ARB_texture_env_add', extstring) then
4583 begin
4584 Result := TRUE;
4585 end;
4587 end;
4589 function Load_WGL_ARB_extensions_string: Boolean;
4590 var
4591 extstring: String;
4592 begin
4594 Result := FALSE;
4595 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
4596 if not Assigned(wglGetExtensionsStringARB) then Exit;
4597 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
4599 if glext_ExtensionSupported('WGL_ARB_extensions_string', extstring) then
4600 begin
4601 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
4602 if not Assigned(wglGetExtensionsStringARB) then Exit;
4603 Result := TRUE;
4604 end;
4606 end;
4608 function Load_WGL_ARB_buffer_region: Boolean;
4609 var
4610 extstring: String;
4611 begin
4613 Result := FALSE;
4614 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
4615 if not Assigned(wglGetExtensionsStringARB) then Exit;
4616 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
4618 if glext_ExtensionSupported('WGL_ARB_buffer_region', extstring) then
4619 begin
4620 wglCreateBufferRegionARB := wglGetProcAddress('wglCreateBufferRegionARB');
4621 if not Assigned(wglCreateBufferRegionARB) then Exit;
4622 wglDeleteBufferRegionARB := wglGetProcAddress('wglDeleteBufferRegionARB');
4623 if not Assigned(wglDeleteBufferRegionARB) then Exit;
4624 wglSaveBufferRegionARB := wglGetProcAddress('wglSaveBufferRegionARB');
4625 if not Assigned(wglSaveBufferRegionARB) then Exit;
4626 wglRestoreBufferRegionARB := wglGetProcAddress('wglRestoreBufferRegionARB');
4627 if not Assigned(wglRestoreBufferRegionARB) then Exit;
4628 Result := TRUE;
4629 end;
4631 end;
4633 function Load_GL_ARB_texture_cube_map: Boolean;
4634 var
4635 extstring: String;
4636 begin
4638 Result := FALSE;
4639 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4641 if glext_ExtensionSupported('GL_ARB_texture_cube_map', extstring) then
4642 begin
4643 Result := TRUE;
4644 end;
4646 end;
4648 function Load_GL_ARB_depth_texture: Boolean;
4649 var
4650 extstring: String;
4651 begin
4653 Result := FALSE;
4654 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4656 if glext_ExtensionSupported('GL_ARB_depth_texture', extstring) then
4657 begin
4658 Result := TRUE;
4659 end;
4661 end;
4663 function Load_GL_ARB_point_parameters: Boolean;
4664 var
4665 extstring: String;
4666 begin
4668 Result := FALSE;
4669 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4671 if glext_ExtensionSupported('GL_ARB_point_parameters', extstring) then
4672 begin
4673 glPointParameterfARB := wglGetProcAddress('glPointParameterfARB');
4674 if not Assigned(glPointParameterfARB) then Exit;
4675 glPointParameterfvARB := wglGetProcAddress('glPointParameterfvARB');
4676 if not Assigned(glPointParameterfvARB) then Exit;
4677 Result := TRUE;
4678 end;
4680 end;
4682 function Load_GL_ARB_shadow: Boolean;
4683 var
4684 extstring: String;
4685 begin
4687 Result := FALSE;
4688 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4690 if glext_ExtensionSupported('GL_ARB_shadow', extstring) then
4691 begin
4692 Result := TRUE;
4693 end;
4695 end;
4697 function Load_GL_ARB_shadow_ambient: Boolean;
4698 var
4699 extstring: String;
4700 begin
4702 Result := FALSE;
4703 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4705 if glext_ExtensionSupported('GL_ARB_shadow_ambient', extstring) then
4706 begin
4707 Result := TRUE;
4708 end;
4710 end;
4712 function Load_GL_ARB_texture_border_clamp: Boolean;
4713 var
4714 extstring: String;
4715 begin
4717 Result := FALSE;
4718 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4720 if glext_ExtensionSupported('GL_ARB_texture_border_clamp', extstring) then
4721 begin
4722 Result := TRUE;
4723 end;
4725 end;
4727 function Load_GL_ARB_texture_compression: Boolean;
4728 var
4729 extstring: String;
4730 begin
4732 Result := FALSE;
4733 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4735 if glext_ExtensionSupported('GL_ARB_texture_compression', extstring) then
4736 begin
4737 glCompressedTexImage3DARB := wglGetProcAddress('glCompressedTexImage3DARB');
4738 if not Assigned(glCompressedTexImage3DARB) then Exit;
4739 glCompressedTexImage2DARB := wglGetProcAddress('glCompressedTexImage2DARB');
4740 if not Assigned(glCompressedTexImage2DARB) then Exit;
4741 glCompressedTexImage1DARB := wglGetProcAddress('glCompressedTexImage1DARB');
4742 if not Assigned(glCompressedTexImage1DARB) then Exit;
4743 glCompressedTexSubImage3DARB := wglGetProcAddress('glCompressedTexSubImage3DARB');
4744 if not Assigned(glCompressedTexSubImage3DARB) then Exit;
4745 glCompressedTexSubImage2DARB := wglGetProcAddress('glCompressedTexSubImage2DARB');
4746 if not Assigned(glCompressedTexSubImage2DARB) then Exit;
4747 glCompressedTexSubImage1DARB := wglGetProcAddress('glCompressedTexSubImage1DARB');
4748 if not Assigned(glCompressedTexSubImage1DARB) then Exit;
4749 glGetCompressedTexImageARB := wglGetProcAddress('glGetCompressedTexImageARB');
4750 if not Assigned(glGetCompressedTexImageARB) then Exit;
4751 Result := TRUE;
4752 end;
4754 end;
4756 function Load_GL_ARB_texture_env_combine: Boolean;
4757 var
4758 extstring: String;
4759 begin
4761 Result := FALSE;
4762 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4764 if glext_ExtensionSupported('GL_ARB_texture_env_combine', extstring) then
4765 begin
4766 Result := TRUE;
4767 end;
4769 end;
4771 function Load_GL_ARB_texture_env_crossbar: Boolean;
4772 var
4773 extstring: String;
4774 begin
4776 Result := FALSE;
4777 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4779 if glext_ExtensionSupported('GL_ARB_texture_env_crossbar', extstring) then
4780 begin
4781 Result := TRUE;
4782 end;
4784 end;
4786 function Load_GL_ARB_texture_env_dot3: Boolean;
4787 var
4788 extstring: String;
4789 begin
4791 Result := FALSE;
4792 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4794 if glext_ExtensionSupported('GL_ARB_texture_env_dot3', extstring) then
4795 begin
4796 Result := TRUE;
4797 end;
4799 end;
4801 function Load_GL_ARB_texture_mirrored_repeat: Boolean;
4802 var
4803 extstring: String;
4804 begin
4806 Result := FALSE;
4807 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4809 if glext_ExtensionSupported('GL_ARB_texture_mirrored_repeat', extstring) then
4810 begin
4811 Result := TRUE;
4812 end;
4814 end;
4816 function Load_GL_ARB_vertex_blend: Boolean;
4817 var
4818 extstring: String;
4819 begin
4821 Result := FALSE;
4822 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4824 if glext_ExtensionSupported('GL_ARB_vertex_blend', extstring) then
4825 begin
4826 glWeightbvARB := wglGetProcAddress('glWeightbvARB');
4827 if not Assigned(glWeightbvARB) then Exit;
4828 glWeightsvARB := wglGetProcAddress('glWeightsvARB');
4829 if not Assigned(glWeightsvARB) then Exit;
4830 glWeightivARB := wglGetProcAddress('glWeightivARB');
4831 if not Assigned(glWeightivARB) then Exit;
4832 glWeightfvARB := wglGetProcAddress('glWeightfvARB');
4833 if not Assigned(glWeightfvARB) then Exit;
4834 glWeightdvARB := wglGetProcAddress('glWeightdvARB');
4835 if not Assigned(glWeightdvARB) then Exit;
4836 glWeightvARB := wglGetProcAddress('glWeightvARB');
4837 if not Assigned(glWeightvARB) then Exit;
4838 glWeightubvARB := wglGetProcAddress('glWeightubvARB');
4839 if not Assigned(glWeightubvARB) then Exit;
4840 glWeightusvARB := wglGetProcAddress('glWeightusvARB');
4841 if not Assigned(glWeightusvARB) then Exit;
4842 glWeightuivARB := wglGetProcAddress('glWeightuivARB');
4843 if not Assigned(glWeightuivARB) then Exit;
4844 glWeightPointerARB := wglGetProcAddress('glWeightPointerARB');
4845 if not Assigned(glWeightPointerARB) then Exit;
4846 glVertexBlendARB := wglGetProcAddress('glVertexBlendARB');
4847 if not Assigned(glVertexBlendARB) then Exit;
4848 Result := TRUE;
4849 end;
4851 end;
4853 function Load_GL_ARB_vertex_program: Boolean;
4854 var
4855 extstring: String;
4856 begin
4858 Result := FALSE;
4859 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
4861 if glext_ExtensionSupported('GL_ARB_vertex_program', extstring) then
4862 begin
4863 glVertexAttrib1sARB := wglGetProcAddress('glVertexAttrib1sARB');
4864 if not Assigned(glVertexAttrib1sARB) then Exit;
4865 glVertexAttrib1fARB := wglGetProcAddress('glVertexAttrib1fARB');
4866 if not Assigned(glVertexAttrib1fARB) then Exit;
4867 glVertexAttrib1dARB := wglGetProcAddress('glVertexAttrib1dARB');
4868 if not Assigned(glVertexAttrib1dARB) then Exit;
4869 glVertexAttrib2sARB := wglGetProcAddress('glVertexAttrib2sARB');
4870 if not Assigned(glVertexAttrib2sARB) then Exit;
4871 glVertexAttrib2fARB := wglGetProcAddress('glVertexAttrib2fARB');
4872 if not Assigned(glVertexAttrib2fARB) then Exit;
4873 glVertexAttrib2dARB := wglGetProcAddress('glVertexAttrib2dARB');
4874 if not Assigned(glVertexAttrib2dARB) then Exit;
4875 glVertexAttrib3sARB := wglGetProcAddress('glVertexAttrib3sARB');
4876 if not Assigned(glVertexAttrib3sARB) then Exit;
4877 glVertexAttrib3fARB := wglGetProcAddress('glVertexAttrib3fARB');
4878 if not Assigned(glVertexAttrib3fARB) then Exit;
4879 glVertexAttrib3dARB := wglGetProcAddress('glVertexAttrib3dARB');
4880 if not Assigned(glVertexAttrib3dARB) then Exit;
4881 glVertexAttrib4sARB := wglGetProcAddress('glVertexAttrib4sARB');
4882 if not Assigned(glVertexAttrib4sARB) then Exit;
4883 glVertexAttrib4fARB := wglGetProcAddress('glVertexAttrib4fARB');
4884 if not Assigned(glVertexAttrib4fARB) then Exit;
4885 glVertexAttrib4dARB := wglGetProcAddress('glVertexAttrib4dARB');
4886 if not Assigned(glVertexAttrib4dARB) then Exit;
4887 glVertexAttrib4NubARB := wglGetProcAddress('glVertexAttrib4NubARB');
4888 if not Assigned(glVertexAttrib4NubARB) then Exit;
4889 glVertexAttrib1svARB := wglGetProcAddress('glVertexAttrib1svARB');
4890 if not Assigned(glVertexAttrib1svARB) then Exit;
4891 glVertexAttrib1fvARB := wglGetProcAddress('glVertexAttrib1fvARB');
4892 if not Assigned(glVertexAttrib1fvARB) then Exit;
4893 glVertexAttrib1dvARB := wglGetProcAddress('glVertexAttrib1dvARB');
4894 if not Assigned(glVertexAttrib1dvARB) then Exit;
4895 glVertexAttrib2svARB := wglGetProcAddress('glVertexAttrib2svARB');
4896 if not Assigned(glVertexAttrib2svARB) then Exit;
4897 glVertexAttrib2fvARB := wglGetProcAddress('glVertexAttrib2fvARB');
4898 if not Assigned(glVertexAttrib2fvARB) then Exit;
4899 glVertexAttrib2dvARB := wglGetProcAddress('glVertexAttrib2dvARB');
4900 if not Assigned(glVertexAttrib2dvARB) then Exit;
4901 glVertexAttrib3svARB := wglGetProcAddress('glVertexAttrib3svARB');
4902 if not Assigned(glVertexAttrib3svARB) then Exit;
4903 glVertexAttrib3fvARB := wglGetProcAddress('glVertexAttrib3fvARB');
4904 if not Assigned(glVertexAttrib3fvARB) then Exit;
4905 glVertexAttrib3dvARB := wglGetProcAddress('glVertexAttrib3dvARB');
4906 if not Assigned(glVertexAttrib3dvARB) then Exit;
4907 glVertexAttrib4bvARB := wglGetProcAddress('glVertexAttrib4bvARB');
4908 if not Assigned(glVertexAttrib4bvARB) then Exit;
4909 glVertexAttrib4svARB := wglGetProcAddress('glVertexAttrib4svARB');
4910 if not Assigned(glVertexAttrib4svARB) then Exit;
4911 glVertexAttrib4ivARB := wglGetProcAddress('glVertexAttrib4ivARB');
4912 if not Assigned(glVertexAttrib4ivARB) then Exit;
4913 glVertexAttrib4ubvARB := wglGetProcAddress('glVertexAttrib4ubvARB');
4914 if not Assigned(glVertexAttrib4ubvARB) then Exit;
4915 glVertexAttrib4usvARB := wglGetProcAddress('glVertexAttrib4usvARB');
4916 if not Assigned(glVertexAttrib4usvARB) then Exit;
4917 glVertexAttrib4uivARB := wglGetProcAddress('glVertexAttrib4uivARB');
4918 if not Assigned(glVertexAttrib4uivARB) then Exit;
4919 glVertexAttrib4fvARB := wglGetProcAddress('glVertexAttrib4fvARB');
4920 if not Assigned(glVertexAttrib4fvARB) then Exit;
4921 glVertexAttrib4dvARB := wglGetProcAddress('glVertexAttrib4dvARB');
4922 if not Assigned(glVertexAttrib4dvARB) then Exit;
4923 glVertexAttrib4NbvARB := wglGetProcAddress('glVertexAttrib4NbvARB');
4924 if not Assigned(glVertexAttrib4NbvARB) then Exit;
4925 glVertexAttrib4NsvARB := wglGetProcAddress('glVertexAttrib4NsvARB');
4926 if not Assigned(glVertexAttrib4NsvARB) then Exit;
4927 glVertexAttrib4NivARB := wglGetProcAddress('glVertexAttrib4NivARB');
4928 if not Assigned(glVertexAttrib4NivARB) then Exit;
4929 glVertexAttrib4NubvARB := wglGetProcAddress('glVertexAttrib4NubvARB');
4930 if not Assigned(glVertexAttrib4NubvARB) then Exit;
4931 glVertexAttrib4NusvARB := wglGetProcAddress('glVertexAttrib4NusvARB');
4932 if not Assigned(glVertexAttrib4NusvARB) then Exit;
4933 glVertexAttrib4NuivARB := wglGetProcAddress('glVertexAttrib4NuivARB');
4934 if not Assigned(glVertexAttrib4NuivARB) then Exit;
4935 glVertexAttribPointerARB := wglGetProcAddress('glVertexAttribPointerARB');
4936 if not Assigned(glVertexAttribPointerARB) then Exit;
4937 glEnableVertexAttribArrayARB := wglGetProcAddress('glEnableVertexAttribArrayARB');
4938 if not Assigned(glEnableVertexAttribArrayARB) then Exit;
4939 glDisableVertexAttribArrayARB := wglGetProcAddress('glDisableVertexAttribArrayARB');
4940 if not Assigned(glDisableVertexAttribArrayARB) then Exit;
4941 glProgramStringARB := wglGetProcAddress('glProgramStringARB');
4942 if not Assigned(glProgramStringARB) then Exit;
4943 glBindProgramARB := wglGetProcAddress('glBindProgramARB');
4944 if not Assigned(glBindProgramARB) then Exit;
4945 glDeleteProgramsARB := wglGetProcAddress('glDeleteProgramsARB');
4946 if not Assigned(glDeleteProgramsARB) then Exit;
4947 glGenProgramsARB := wglGetProcAddress('glGenProgramsARB');
4948 if not Assigned(glGenProgramsARB) then Exit;
4949 glProgramEnvParameter4dARB := wglGetProcAddress('glProgramEnvParameter4dARB');
4950 if not Assigned(glProgramEnvParameter4dARB) then Exit;
4951 glProgramEnvParameter4dvARB := wglGetProcAddress('glProgramEnvParameter4dvARB');
4952 if not Assigned(glProgramEnvParameter4dvARB) then Exit;
4953 glProgramEnvParameter4fARB := wglGetProcAddress('glProgramEnvParameter4fARB');
4954 if not Assigned(glProgramEnvParameter4fARB) then Exit;
4955 glProgramEnvParameter4fvARB := wglGetProcAddress('glProgramEnvParameter4fvARB');
4956 if not Assigned(glProgramEnvParameter4fvARB) then Exit;
4957 glProgramLocalParameter4dARB := wglGetProcAddress('glProgramLocalParameter4dARB');
4958 if not Assigned(glProgramLocalParameter4dARB) then Exit;
4959 glProgramLocalParameter4dvARB := wglGetProcAddress('glProgramLocalParameter4dvARB');
4960 if not Assigned(glProgramLocalParameter4dvARB) then Exit;
4961 glProgramLocalParameter4fARB := wglGetProcAddress('glProgramLocalParameter4fARB');
4962 if not Assigned(glProgramLocalParameter4fARB) then Exit;
4963 glProgramLocalParameter4fvARB := wglGetProcAddress('glProgramLocalParameter4fvARB');
4964 if not Assigned(glProgramLocalParameter4fvARB) then Exit;
4965 glGetProgramEnvParameterdvARB := wglGetProcAddress('glGetProgramEnvParameterdvARB');
4966 if not Assigned(glGetProgramEnvParameterdvARB) then Exit;
4967 glGetProgramEnvParameterfvARB := wglGetProcAddress('glGetProgramEnvParameterfvARB');
4968 if not Assigned(glGetProgramEnvParameterfvARB) then Exit;
4969 glGetProgramLocalParameterdvARB := wglGetProcAddress('glGetProgramLocalParameterdvARB');
4970 if not Assigned(glGetProgramLocalParameterdvARB) then Exit;
4971 glGetProgramLocalParameterfvARB := wglGetProcAddress('glGetProgramLocalParameterfvARB');
4972 if not Assigned(glGetProgramLocalParameterfvARB) then Exit;
4973 glGetProgramivARB := wglGetProcAddress('glGetProgramivARB');
4974 if not Assigned(glGetProgramivARB) then Exit;
4975 glGetProgramStringARB := wglGetProcAddress('glGetProgramStringARB');
4976 if not Assigned(glGetProgramStringARB) then Exit;
4977 glGetVertexAttribdvARB := wglGetProcAddress('glGetVertexAttribdvARB');
4978 if not Assigned(glGetVertexAttribdvARB) then Exit;
4979 glGetVertexAttribfvARB := wglGetProcAddress('glGetVertexAttribfvARB');
4980 if not Assigned(glGetVertexAttribfvARB) then Exit;
4981 glGetVertexAttribivARB := wglGetProcAddress('glGetVertexAttribivARB');
4982 if not Assigned(glGetVertexAttribivARB) then Exit;
4983 glGetVertexAttribPointervARB := wglGetProcAddress('glGetVertexAttribPointervARB');
4984 if not Assigned(glGetVertexAttribPointervARB) then Exit;
4985 glIsProgramARB := wglGetProcAddress('glIsProgramARB');
4986 if not Assigned(glIsProgramARB) then Exit;
4987 Result := TRUE;
4988 end;
4990 end;
4992 function Load_GL_ARB_window_pos: Boolean;
4993 var
4994 extstring: String;
4995 begin
4997 Result := FALSE;
4998 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5000 if glext_ExtensionSupported('GL_ARB_window_pos', extstring) then
5001 begin
5002 glWindowPos2dARB := wglGetProcAddress('glWindowPos2dARB');
5003 if not Assigned(glWindowPos2dARB) then Exit;
5004 glWindowPos2fARB := wglGetProcAddress('glWindowPos2fARB');
5005 if not Assigned(glWindowPos2fARB) then Exit;
5006 glWindowPos2iARB := wglGetProcAddress('glWindowPos2iARB');
5007 if not Assigned(glWindowPos2iARB) then Exit;
5008 glWindowPos2sARB := wglGetProcAddress('glWindowPos2sARB');
5009 if not Assigned(glWindowPos2sARB) then Exit;
5010 glWindowPos2dvARB := wglGetProcAddress('glWindowPos2dvARB');
5011 if not Assigned(glWindowPos2dvARB) then Exit;
5012 glWindowPos2fvARB := wglGetProcAddress('glWindowPos2fvARB');
5013 if not Assigned(glWindowPos2fvARB) then Exit;
5014 glWindowPos2ivARB := wglGetProcAddress('glWindowPos2ivARB');
5015 if not Assigned(glWindowPos2ivARB) then Exit;
5016 glWindowPos2svARB := wglGetProcAddress('glWindowPos2svARB');
5017 if not Assigned(glWindowPos2svARB) then Exit;
5018 glWindowPos3dARB := wglGetProcAddress('glWindowPos3dARB');
5019 if not Assigned(glWindowPos3dARB) then Exit;
5020 glWindowPos3fARB := wglGetProcAddress('glWindowPos3fARB');
5021 if not Assigned(glWindowPos3fARB) then Exit;
5022 glWindowPos3iARB := wglGetProcAddress('glWindowPos3iARB');
5023 if not Assigned(glWindowPos3iARB) then Exit;
5024 glWindowPos3sARB := wglGetProcAddress('glWindowPos3sARB');
5025 if not Assigned(glWindowPos3sARB) then Exit;
5026 glWindowPos3dvARB := wglGetProcAddress('glWindowPos3dvARB');
5027 if not Assigned(glWindowPos3dvARB) then Exit;
5028 glWindowPos3fvARB := wglGetProcAddress('glWindowPos3fvARB');
5029 if not Assigned(glWindowPos3fvARB) then Exit;
5030 glWindowPos3ivARB := wglGetProcAddress('glWindowPos3ivARB');
5031 if not Assigned(glWindowPos3ivARB) then Exit;
5032 glWindowPos3svARB := wglGetProcAddress('glWindowPos3svARB');
5033 if not Assigned(glWindowPos3svARB) then Exit;
5034 Result := TRUE;
5035 end;
5037 end;
5039 function Load_GL_EXT_422_pixels: Boolean;
5040 var
5041 extstring: String;
5042 begin
5044 Result := FALSE;
5045 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5047 if glext_ExtensionSupported('GL_EXT_422_pixels', extstring) then
5048 begin
5049 Result := TRUE;
5050 end;
5052 end;
5054 function Load_GL_EXT_abgr: Boolean;
5055 var
5056 extstring: String;
5057 begin
5059 Result := FALSE;
5060 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5062 if glext_ExtensionSupported('GL_EXT_abgr', extstring) then
5063 begin
5064 Result := TRUE;
5065 end;
5067 end;
5069 function Load_GL_EXT_bgra: Boolean;
5070 var
5071 extstring: String;
5072 begin
5074 Result := FALSE;
5075 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5077 if glext_ExtensionSupported('GL_EXT_bgra', extstring) then
5078 begin
5079 Result := TRUE;
5080 end;
5082 end;
5084 function Load_GL_EXT_blend_color: Boolean;
5085 var
5086 extstring: String;
5087 begin
5089 Result := FALSE;
5090 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5092 if glext_ExtensionSupported('GL_EXT_blend_color', extstring) then
5093 begin
5094 glBlendColorEXT := wglGetProcAddress('glBlendColorEXT');
5095 if not Assigned(glBlendColorEXT) then Exit;
5096 Result := TRUE;
5097 end;
5099 end;
5101 function Load_GL_EXT_blend_func_separate: Boolean;
5102 var
5103 extstring: String;
5104 begin
5106 Result := FALSE;
5107 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5109 if glext_ExtensionSupported('GL_EXT_blend_func_separate', extstring) then
5110 begin
5111 glBlendFuncSeparateEXT := wglGetProcAddress('glBlendFuncSeparateEXT');
5112 if not Assigned(glBlendFuncSeparateEXT) then Exit;
5113 Result := TRUE;
5114 end;
5116 end;
5118 function Load_GL_EXT_blend_logic_op: Boolean;
5119 var
5120 extstring: String;
5121 begin
5123 Result := FALSE;
5124 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5126 if glext_ExtensionSupported('GL_EXT_blend_logic_op', extstring) then
5127 begin
5128 Result := TRUE;
5129 end;
5131 end;
5133 function Load_GL_EXT_blend_minmax: Boolean;
5134 var
5135 extstring: String;
5136 begin
5138 Result := FALSE;
5139 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5141 if glext_ExtensionSupported('GL_EXT_blend_minmax', extstring) then
5142 begin
5143 glBlendEquationEXT := wglGetProcAddress('glBlendEquationEXT');
5144 if not Assigned(glBlendEquationEXT) then Exit;
5145 Result := TRUE;
5146 end;
5148 end;
5150 function Load_GL_EXT_blend_subtract: Boolean;
5151 var
5152 extstring: String;
5153 begin
5155 Result := FALSE;
5156 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5158 if glext_ExtensionSupported('GL_EXT_blend_subtract', extstring) then
5159 begin
5160 Result := TRUE;
5161 end;
5163 end;
5165 function Load_GL_EXT_clip_volume_hint: Boolean;
5166 var
5167 extstring: String;
5168 begin
5170 Result := FALSE;
5171 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5173 if glext_ExtensionSupported('GL_EXT_clip_volume_hint', extstring) then
5174 begin
5175 Result := TRUE;
5176 end;
5178 end;
5180 function Load_GL_EXT_color_subtable: Boolean;
5181 var
5182 extstring: String;
5183 begin
5185 Result := FALSE;
5186 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5188 if glext_ExtensionSupported('GL_EXT_color_subtable', extstring) then
5189 begin
5190 glColorSubTableEXT := wglGetProcAddress('glColorSubTableEXT');
5191 if not Assigned(glColorSubTableEXT) then Exit;
5192 glCopyColorSubTableEXT := wglGetProcAddress('glCopyColorSubTableEXT');
5193 if not Assigned(glCopyColorSubTableEXT) then Exit;
5194 Result := TRUE;
5195 end;
5197 end;
5199 function Load_GL_EXT_compiled_vertex_array: Boolean;
5200 var
5201 extstring: String;
5202 begin
5204 Result := FALSE;
5205 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5207 if glext_ExtensionSupported('GL_EXT_compiled_vertex_array', extstring) then
5208 begin
5209 glLockArraysEXT := wglGetProcAddress('glLockArraysEXT');
5210 if not Assigned(glLockArraysEXT) then Exit;
5211 glUnlockArraysEXT := wglGetProcAddress('glUnlockArraysEXT');
5212 if not Assigned(glUnlockArraysEXT) then Exit;
5213 Result := TRUE;
5214 end;
5216 end;
5218 function Load_GL_EXT_convolution: Boolean;
5219 var
5220 extstring: String;
5221 begin
5223 Result := FALSE;
5224 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5226 if glext_ExtensionSupported('GL_EXT_convolution', extstring) then
5227 begin
5228 glConvolutionFilter1DEXT := wglGetProcAddress('glConvolutionFilter1DEXT');
5229 if not Assigned(glConvolutionFilter1DEXT) then Exit;
5230 glConvolutionFilter2DEXT := wglGetProcAddress('glConvolutionFilter2DEXT');
5231 if not Assigned(glConvolutionFilter2DEXT) then Exit;
5232 glCopyConvolutionFilter1DEXT := wglGetProcAddress('glCopyConvolutionFilter1DEXT');
5233 if not Assigned(glCopyConvolutionFilter1DEXT) then Exit;
5234 glCopyConvolutionFilter2DEXT := wglGetProcAddress('glCopyConvolutionFilter2DEXT');
5235 if not Assigned(glCopyConvolutionFilter2DEXT) then Exit;
5236 glGetConvolutionFilterEXT := wglGetProcAddress('glGetConvolutionFilterEXT');
5237 if not Assigned(glGetConvolutionFilterEXT) then Exit;
5238 glSeparableFilter2DEXT := wglGetProcAddress('glSeparableFilter2DEXT');
5239 if not Assigned(glSeparableFilter2DEXT) then Exit;
5240 glGetSeparableFilterEXT := wglGetProcAddress('glGetSeparableFilterEXT');
5241 if not Assigned(glGetSeparableFilterEXT) then Exit;
5242 glConvolutionParameteriEXT := wglGetProcAddress('glConvolutionParameteriEXT');
5243 if not Assigned(glConvolutionParameteriEXT) then Exit;
5244 glConvolutionParameterivEXT := wglGetProcAddress('glConvolutionParameterivEXT');
5245 if not Assigned(glConvolutionParameterivEXT) then Exit;
5246 glConvolutionParameterfEXT := wglGetProcAddress('glConvolutionParameterfEXT');
5247 if not Assigned(glConvolutionParameterfEXT) then Exit;
5248 glConvolutionParameterfvEXT := wglGetProcAddress('glConvolutionParameterfvEXT');
5249 if not Assigned(glConvolutionParameterfvEXT) then Exit;
5250 glGetConvolutionParameterivEXT := wglGetProcAddress('glGetConvolutionParameterivEXT');
5251 if not Assigned(glGetConvolutionParameterivEXT) then Exit;
5252 glGetConvolutionParameterfvEXT := wglGetProcAddress('glGetConvolutionParameterfvEXT');
5253 if not Assigned(glGetConvolutionParameterfvEXT) then Exit;
5254 Result := TRUE;
5255 end;
5257 end;
5259 function Load_GL_EXT_histogram: Boolean;
5260 var
5261 extstring: String;
5262 begin
5264 Result := FALSE;
5265 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5267 if glext_ExtensionSupported('GL_EXT_histogram', extstring) then
5268 begin
5269 glHistogramEXT := wglGetProcAddress('glHistogramEXT');
5270 if not Assigned(glHistogramEXT) then Exit;
5271 glResetHistogramEXT := wglGetProcAddress('glResetHistogramEXT');
5272 if not Assigned(glResetHistogramEXT) then Exit;
5273 glGetHistogramEXT := wglGetProcAddress('glGetHistogramEXT');
5274 if not Assigned(glGetHistogramEXT) then Exit;
5275 glGetHistogramParameterivEXT := wglGetProcAddress('glGetHistogramParameterivEXT');
5276 if not Assigned(glGetHistogramParameterivEXT) then Exit;
5277 glGetHistogramParameterfvEXT := wglGetProcAddress('glGetHistogramParameterfvEXT');
5278 if not Assigned(glGetHistogramParameterfvEXT) then Exit;
5279 glMinmaxEXT := wglGetProcAddress('glMinmaxEXT');
5280 if not Assigned(glMinmaxEXT) then Exit;
5281 glResetMinmaxEXT := wglGetProcAddress('glResetMinmaxEXT');
5282 if not Assigned(glResetMinmaxEXT) then Exit;
5283 glGetMinmaxEXT := wglGetProcAddress('glGetMinmaxEXT');
5284 if not Assigned(glGetMinmaxEXT) then Exit;
5285 glGetMinmaxParameterivEXT := wglGetProcAddress('glGetMinmaxParameterivEXT');
5286 if not Assigned(glGetMinmaxParameterivEXT) then Exit;
5287 glGetMinmaxParameterfvEXT := wglGetProcAddress('glGetMinmaxParameterfvEXT');
5288 if not Assigned(glGetMinmaxParameterfvEXT) then Exit;
5289 Result := TRUE;
5290 end;
5292 end;
5294 function Load_GL_EXT_multi_draw_arrays: Boolean;
5295 var
5296 extstring: String;
5297 begin
5299 Result := FALSE;
5300 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5302 if glext_ExtensionSupported('GL_EXT_multi_draw_arrays', extstring) then
5303 begin
5304 glMultiDrawArraysEXT := wglGetProcAddress('glMultiDrawArraysEXT');
5305 if not Assigned(glMultiDrawArraysEXT) then Exit;
5306 glMultiDrawElementsEXT := wglGetProcAddress('glMultiDrawElementsEXT');
5307 if not Assigned(glMultiDrawElementsEXT) then Exit;
5308 Result := TRUE;
5309 end;
5311 end;
5313 function Load_GL_EXT_packed_pixels: Boolean;
5314 var
5315 extstring: String;
5316 begin
5318 Result := FALSE;
5319 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5321 if glext_ExtensionSupported('GL_EXT_packed_pixels', extstring) then
5322 begin
5323 Result := TRUE;
5324 end;
5326 end;
5328 function Load_GL_EXT_paletted_texture: Boolean;
5329 var
5330 extstring: String;
5331 begin
5333 Result := FALSE;
5334 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5336 if glext_ExtensionSupported('GL_EXT_paletted_texture', extstring) then
5337 begin
5338 glColorTableEXT := wglGetProcAddress('glColorTableEXT');
5339 if not Assigned(glColorTableEXT) then Exit;
5340 glColorSubTableEXT := wglGetProcAddress('glColorSubTableEXT');
5341 if not Assigned(glColorSubTableEXT) then Exit;
5342 glGetColorTableEXT := wglGetProcAddress('glGetColorTableEXT');
5343 if not Assigned(glGetColorTableEXT) then Exit;
5344 glGetColorTableParameterivEXT := wglGetProcAddress('glGetColorTableParameterivEXT');
5345 if not Assigned(glGetColorTableParameterivEXT) then Exit;
5346 glGetColorTableParameterfvEXT := wglGetProcAddress('glGetColorTableParameterfvEXT');
5347 if not Assigned(glGetColorTableParameterfvEXT) then Exit;
5348 Result := TRUE;
5349 end;
5351 end;
5353 function Load_GL_EXT_point_parameters: Boolean;
5354 var
5355 extstring: String;
5356 begin
5358 Result := FALSE;
5359 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5361 if glext_ExtensionSupported('GL_EXT_point_parameters', extstring) then
5362 begin
5363 glPointParameterfEXT := wglGetProcAddress('glPointParameterfEXT');
5364 if not Assigned(glPointParameterfEXT) then Exit;
5365 glPointParameterfvEXT := wglGetProcAddress('glPointParameterfvEXT');
5366 if not Assigned(glPointParameterfvEXT) then Exit;
5367 Result := TRUE;
5368 end;
5370 end;
5372 function Load_GL_EXT_polygon_offset: Boolean;
5373 var
5374 extstring: String;
5375 begin
5377 Result := FALSE;
5378 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5380 if glext_ExtensionSupported('GL_EXT_polygon_offset', extstring) then
5381 begin
5382 glPolygonOffsetEXT := wglGetProcAddress('glPolygonOffsetEXT');
5383 if not Assigned(glPolygonOffsetEXT) then Exit;
5384 Result := TRUE;
5385 end;
5387 end;
5389 function Load_GL_EXT_separate_specular_color: Boolean;
5390 var
5391 extstring: String;
5392 begin
5394 Result := FALSE;
5395 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5397 if glext_ExtensionSupported('GL_EXT_separate_specular_color', extstring) then
5398 begin
5399 Result := TRUE;
5400 end;
5402 end;
5404 function Load_GL_EXT_shadow_funcs: Boolean;
5405 var
5406 extstring: String;
5407 begin
5409 Result := FALSE;
5410 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5412 if glext_ExtensionSupported('GL_EXT_shadow_funcs', extstring) then
5413 begin
5414 Result := TRUE;
5415 end;
5417 end;
5419 function Load_GL_EXT_shared_texture_palette: Boolean;
5420 var
5421 extstring: String;
5422 begin
5424 Result := FALSE;
5425 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5427 if glext_ExtensionSupported('GL_EXT_shared_texture_palette', extstring) then
5428 begin
5429 Result := TRUE;
5430 end;
5432 end;
5434 function Load_GL_EXT_stencil_two_side: Boolean;
5435 var
5436 extstring: String;
5437 begin
5439 Result := FALSE;
5440 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5442 if glext_ExtensionSupported('GL_EXT_stencil_two_side', extstring) then
5443 begin
5444 glActiveStencilFaceEXT := wglGetProcAddress('glActiveStencilFaceEXT');
5445 if not Assigned(glActiveStencilFaceEXT) then Exit;
5446 Result := TRUE;
5447 end;
5449 end;
5451 function Load_GL_EXT_stencil_wrap: Boolean;
5452 var
5453 extstring: String;
5454 begin
5456 Result := FALSE;
5457 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5459 if glext_ExtensionSupported('GL_EXT_stencil_wrap', extstring) then
5460 begin
5461 Result := TRUE;
5462 end;
5464 end;
5466 function Load_GL_EXT_subtexture: Boolean;
5467 var
5468 extstring: String;
5469 begin
5471 Result := FALSE;
5472 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5474 if glext_ExtensionSupported('GL_EXT_subtexture', extstring) then
5475 begin
5476 glTexSubImage1DEXT := wglGetProcAddress('glTexSubImage1DEXT');
5477 if not Assigned(glTexSubImage1DEXT) then Exit;
5478 glTexSubImage2DEXT := wglGetProcAddress('glTexSubImage2DEXT');
5479 if not Assigned(glTexSubImage2DEXT) then Exit;
5480 glTexSubImage3DEXT := wglGetProcAddress('glTexSubImage3DEXT');
5481 if not Assigned(glTexSubImage3DEXT) then Exit;
5482 Result := TRUE;
5483 end;
5485 end;
5487 function Load_GL_EXT_texture3D: Boolean;
5488 var
5489 extstring: String;
5490 begin
5492 Result := FALSE;
5493 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5495 if glext_ExtensionSupported('GL_EXT_texture3D', extstring) then
5496 begin
5497 glTexImage3DEXT := wglGetProcAddress('glTexImage3DEXT');
5498 if not Assigned(glTexImage3DEXT) then Exit;
5499 Result := TRUE;
5500 end;
5502 end;
5504 function Load_GL_EXT_texture_compression_s3tc: Boolean;
5505 var
5506 extstring: String;
5507 begin
5509 Result := FALSE;
5510 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5512 if glext_ExtensionSupported('GL_EXT_texture_compression_s3tc', extstring) then
5513 begin
5514 Result := TRUE;
5515 end;
5517 end;
5519 function Load_GL_EXT_texture_env_add: Boolean;
5520 var
5521 extstring: String;
5522 begin
5524 Result := FALSE;
5525 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5527 if glext_ExtensionSupported('GL_EXT_texture_env_add', extstring) then
5528 begin
5529 Result := TRUE;
5530 end;
5532 end;
5534 function Load_GL_EXT_texture_env_combine: Boolean;
5535 var
5536 extstring: String;
5537 begin
5539 Result := FALSE;
5540 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5542 if glext_ExtensionSupported('GL_EXT_texture_env_combine', extstring) then
5543 begin
5544 Result := TRUE;
5545 end;
5547 end;
5549 function Load_GL_EXT_texture_env_dot3: Boolean;
5550 var
5551 extstring: String;
5552 begin
5554 Result := FALSE;
5555 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5557 if glext_ExtensionSupported('GL_EXT_texture_env_dot3', extstring) then
5558 begin
5559 Result := TRUE;
5560 end;
5562 end;
5564 function Load_GL_EXT_texture_filter_anisotropic: Boolean;
5565 var
5566 extstring: String;
5567 begin
5569 Result := FALSE;
5570 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5572 if glext_ExtensionSupported('GL_EXT_texture_filter_anisotropic', extstring) then
5573 begin
5574 Result := TRUE;
5575 end;
5577 end;
5579 function Load_GL_EXT_texture_lod_bias: Boolean;
5580 var
5581 extstring: String;
5582 begin
5584 Result := FALSE;
5585 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5587 if glext_ExtensionSupported('GL_EXT_texture_lod_bias', extstring) then
5588 begin
5589 Result := TRUE;
5590 end;
5592 end;
5594 function Load_GL_EXT_texture_object: Boolean;
5595 var
5596 extstring: String;
5597 begin
5599 Result := FALSE;
5600 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5602 if glext_ExtensionSupported('GL_EXT_texture_object', extstring) then
5603 begin
5604 glGenTexturesEXT := wglGetProcAddress('glGenTexturesEXT');
5605 if not Assigned(glGenTexturesEXT) then Exit;
5606 glDeleteTexturesEXT := wglGetProcAddress('glDeleteTexturesEXT');
5607 if not Assigned(glDeleteTexturesEXT) then Exit;
5608 glBindTextureEXT := wglGetProcAddress('glBindTextureEXT');
5609 if not Assigned(glBindTextureEXT) then Exit;
5610 glPrioritizeTexturesEXT := wglGetProcAddress('glPrioritizeTexturesEXT');
5611 if not Assigned(glPrioritizeTexturesEXT) then Exit;
5612 glAreTexturesResidentEXT := wglGetProcAddress('glAreTexturesResidentEXT');
5613 if not Assigned(glAreTexturesResidentEXT) then Exit;
5614 glIsTextureEXT := wglGetProcAddress('glIsTextureEXT');
5615 if not Assigned(glIsTextureEXT) then Exit;
5616 Result := TRUE;
5617 end;
5619 end;
5621 function Load_GL_EXT_vertex_array: Boolean;
5622 var
5623 extstring: String;
5624 begin
5626 Result := FALSE;
5627 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5629 if glext_ExtensionSupported('GL_EXT_vertex_array', extstring) then
5630 begin
5631 glArrayElementEXT := wglGetProcAddress('glArrayElementEXT');
5632 if not Assigned(glArrayElementEXT) then Exit;
5633 glDrawArraysEXT := wglGetProcAddress('glDrawArraysEXT');
5634 if not Assigned(glDrawArraysEXT) then Exit;
5635 glVertexPointerEXT := wglGetProcAddress('glVertexPointerEXT');
5636 if not Assigned(glVertexPointerEXT) then Exit;
5637 glNormalPointerEXT := wglGetProcAddress('glNormalPointerEXT');
5638 if not Assigned(glNormalPointerEXT) then Exit;
5639 glColorPointerEXT := wglGetProcAddress('glColorPointerEXT');
5640 if not Assigned(glColorPointerEXT) then Exit;
5641 glIndexPointerEXT := wglGetProcAddress('glIndexPointerEXT');
5642 if not Assigned(glIndexPointerEXT) then Exit;
5643 glTexCoordPointerEXT := wglGetProcAddress('glTexCoordPointerEXT');
5644 if not Assigned(glTexCoordPointerEXT) then Exit;
5645 glEdgeFlagPointerEXT := wglGetProcAddress('glEdgeFlagPointerEXT');
5646 if not Assigned(glEdgeFlagPointerEXT) then Exit;
5647 glGetPointervEXT := wglGetProcAddress('glGetPointervEXT');
5648 if not Assigned(glGetPointervEXT) then Exit;
5649 Result := TRUE;
5650 end;
5652 end;
5654 function Load_GL_EXT_vertex_shader: Boolean;
5655 var
5656 extstring: String;
5657 begin
5659 Result := FALSE;
5660 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5662 if glext_ExtensionSupported('GL_EXT_vertex_shader', extstring) then
5663 begin
5664 glBeginVertexShaderEXT := wglGetProcAddress('glBeginVertexShaderEXT');
5665 if not Assigned(glBeginVertexShaderEXT) then Exit;
5666 glEndVertexShaderEXT := wglGetProcAddress('glEndVertexShaderEXT');
5667 if not Assigned(glEndVertexShaderEXT) then Exit;
5668 glBindVertexShaderEXT := wglGetProcAddress('glBindVertexShaderEXT');
5669 if not Assigned(glBindVertexShaderEXT) then Exit;
5670 glGenVertexShadersEXT := wglGetProcAddress('glGenVertexShadersEXT');
5671 if not Assigned(glGenVertexShadersEXT) then Exit;
5672 glDeleteVertexShaderEXT := wglGetProcAddress('glDeleteVertexShaderEXT');
5673 if not Assigned(glDeleteVertexShaderEXT) then Exit;
5674 glShaderOp1EXT := wglGetProcAddress('glShaderOp1EXT');
5675 if not Assigned(glShaderOp1EXT) then Exit;
5676 glShaderOp2EXT := wglGetProcAddress('glShaderOp2EXT');
5677 if not Assigned(glShaderOp2EXT) then Exit;
5678 glShaderOp3EXT := wglGetProcAddress('glShaderOp3EXT');
5679 if not Assigned(glShaderOp3EXT) then Exit;
5680 glSwizzleEXT := wglGetProcAddress('glSwizzleEXT');
5681 if not Assigned(glSwizzleEXT) then Exit;
5682 glWriteMaskEXT := wglGetProcAddress('glWriteMaskEXT');
5683 if not Assigned(glWriteMaskEXT) then Exit;
5684 glInsertComponentEXT := wglGetProcAddress('glInsertComponentEXT');
5685 if not Assigned(glInsertComponentEXT) then Exit;
5686 glExtractComponentEXT := wglGetProcAddress('glExtractComponentEXT');
5687 if not Assigned(glExtractComponentEXT) then Exit;
5688 glGenSymbolsEXT := wglGetProcAddress('glGenSymbolsEXT');
5689 if not Assigned(glGenSymbolsEXT) then Exit;
5690 glSetInvariantEXT := wglGetProcAddress('glSetInvariantEXT');
5691 if not Assigned(glSetInvariantEXT) then Exit;
5692 glSetLocalConstantEXT := wglGetProcAddress('glSetLocalConstantEXT');
5693 if not Assigned(glSetLocalConstantEXT) then Exit;
5694 glVariantbvEXT := wglGetProcAddress('glVariantbvEXT');
5695 if not Assigned(glVariantbvEXT) then Exit;
5696 glVariantsvEXT := wglGetProcAddress('glVariantsvEXT');
5697 if not Assigned(glVariantsvEXT) then Exit;
5698 glVariantivEXT := wglGetProcAddress('glVariantivEXT');
5699 if not Assigned(glVariantivEXT) then Exit;
5700 glVariantfvEXT := wglGetProcAddress('glVariantfvEXT');
5701 if not Assigned(glVariantfvEXT) then Exit;
5702 glVariantdvEXT := wglGetProcAddress('glVariantdvEXT');
5703 if not Assigned(glVariantdvEXT) then Exit;
5704 glVariantubvEXT := wglGetProcAddress('glVariantubvEXT');
5705 if not Assigned(glVariantubvEXT) then Exit;
5706 glVariantusvEXT := wglGetProcAddress('glVariantusvEXT');
5707 if not Assigned(glVariantusvEXT) then Exit;
5708 glVariantuivEXT := wglGetProcAddress('glVariantuivEXT');
5709 if not Assigned(glVariantuivEXT) then Exit;
5710 glVariantPointerEXT := wglGetProcAddress('glVariantPointerEXT');
5711 if not Assigned(glVariantPointerEXT) then Exit;
5712 glEnableVariantClientStateEXT := wglGetProcAddress('glEnableVariantClientStateEXT');
5713 if not Assigned(glEnableVariantClientStateEXT) then Exit;
5714 glDisableVariantClientStateEXT := wglGetProcAddress('glDisableVariantClientStateEXT');
5715 if not Assigned(glDisableVariantClientStateEXT) then Exit;
5716 glBindLightParameterEXT := wglGetProcAddress('glBindLightParameterEXT');
5717 if not Assigned(glBindLightParameterEXT) then Exit;
5718 glBindMaterialParameterEXT := wglGetProcAddress('glBindMaterialParameterEXT');
5719 if not Assigned(glBindMaterialParameterEXT) then Exit;
5720 glBindTexGenParameterEXT := wglGetProcAddress('glBindTexGenParameterEXT');
5721 if not Assigned(glBindTexGenParameterEXT) then Exit;
5722 glBindTextureUnitParameterEXT := wglGetProcAddress('glBindTextureUnitParameterEXT');
5723 if not Assigned(glBindTextureUnitParameterEXT) then Exit;
5724 glBindParameterEXT := wglGetProcAddress('glBindParameterEXT');
5725 if not Assigned(glBindParameterEXT) then Exit;
5726 glIsVariantEnabledEXT := wglGetProcAddress('glIsVariantEnabledEXT');
5727 if not Assigned(glIsVariantEnabledEXT) then Exit;
5728 glGetVariantBooleanvEXT := wglGetProcAddress('glGetVariantBooleanvEXT');
5729 if not Assigned(glGetVariantBooleanvEXT) then Exit;
5730 glGetVariantIntegervEXT := wglGetProcAddress('glGetVariantIntegervEXT');
5731 if not Assigned(glGetVariantIntegervEXT) then Exit;
5732 glGetVariantFloatvEXT := wglGetProcAddress('glGetVariantFloatvEXT');
5733 if not Assigned(glGetVariantFloatvEXT) then Exit;
5734 glGetVariantPointervEXT := wglGetProcAddress('glGetVariantPointervEXT');
5735 if not Assigned(glGetVariantPointervEXT) then Exit;
5736 glGetInvariantBooleanvEXT := wglGetProcAddress('glGetInvariantBooleanvEXT');
5737 if not Assigned(glGetInvariantBooleanvEXT) then Exit;
5738 glGetInvariantIntegervEXT := wglGetProcAddress('glGetInvariantIntegervEXT');
5739 if not Assigned(glGetInvariantIntegervEXT) then Exit;
5740 glGetInvariantFloatvEXT := wglGetProcAddress('glGetInvariantFloatvEXT');
5741 if not Assigned(glGetInvariantFloatvEXT) then Exit;
5742 glGetLocalConstantBooleanvEXT := wglGetProcAddress('glGetLocalConstantBooleanvEXT');
5743 if not Assigned(glGetLocalConstantBooleanvEXT) then Exit;
5744 glGetLocalConstantIntegervEXT := wglGetProcAddress('glGetLocalConstantIntegervEXT');
5745 if not Assigned(glGetLocalConstantIntegervEXT) then Exit;
5746 glGetLocalConstantFloatvEXT := wglGetProcAddress('glGetLocalConstantFloatvEXT');
5747 if not Assigned(glGetLocalConstantFloatvEXT) then Exit;
5748 Result := TRUE;
5749 end;
5751 end;
5753 function Load_GL_EXT_vertex_weighting: Boolean;
5754 var
5755 extstring: String;
5756 begin
5758 Result := FALSE;
5759 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5761 if glext_ExtensionSupported('GL_EXT_vertex_weighting', extstring) then
5762 begin
5763 glVertexWeightfEXT := wglGetProcAddress('glVertexWeightfEXT');
5764 if not Assigned(glVertexWeightfEXT) then Exit;
5765 glVertexWeightfvEXT := wglGetProcAddress('glVertexWeightfvEXT');
5766 if not Assigned(glVertexWeightfvEXT) then Exit;
5767 glVertexWeightPointerEXT := wglGetProcAddress('glVertexWeightPointerEXT');
5768 if not Assigned(glVertexWeightPointerEXT) then Exit;
5769 Result := TRUE;
5770 end;
5772 end;
5774 function Load_GL_HP_occlusion_test: Boolean;
5775 var
5776 extstring: String;
5777 begin
5779 Result := FALSE;
5780 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5782 if glext_ExtensionSupported('GL_HP_occlusion_test', extstring) then
5783 begin
5784 Result := TRUE;
5785 end;
5787 end;
5789 function Load_GL_NV_blend_square: Boolean;
5790 var
5791 extstring: String;
5792 begin
5794 Result := FALSE;
5795 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5797 if glext_ExtensionSupported('GL_NV_blend_square', extstring) then
5798 begin
5799 Result := TRUE;
5800 end;
5802 end;
5804 function Load_GL_NV_copy_depth_to_color: Boolean;
5805 var
5806 extstring: String;
5807 begin
5809 Result := FALSE;
5810 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5812 if glext_ExtensionSupported('GL_NV_copy_depth_to_color', extstring) then
5813 begin
5814 Result := TRUE;
5815 end;
5817 end;
5819 function Load_GL_NV_depth_clamp: Boolean;
5820 var
5821 extstring: String;
5822 begin
5824 Result := FALSE;
5825 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5827 if glext_ExtensionSupported('GL_NV_depth_clamp', extstring) then
5828 begin
5829 Result := TRUE;
5830 end;
5832 end;
5834 function Load_GL_NV_evaluators: Boolean;
5835 var
5836 extstring: String;
5837 begin
5839 Result := FALSE;
5840 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5842 if glext_ExtensionSupported('GL_NV_evaluators', extstring) then
5843 begin
5844 glMapControlPointsNV := wglGetProcAddress('glMapControlPointsNV');
5845 if not Assigned(glMapControlPointsNV) then Exit;
5846 glMapParameterivNV := wglGetProcAddress('glMapParameterivNV');
5847 if not Assigned(glMapParameterivNV) then Exit;
5848 glMapParameterfvNV := wglGetProcAddress('glMapParameterfvNV');
5849 if not Assigned(glMapParameterfvNV) then Exit;
5850 glGetMapControlPointsNV := wglGetProcAddress('glGetMapControlPointsNV');
5851 if not Assigned(glGetMapControlPointsNV) then Exit;
5852 glGetMapParameterivNV := wglGetProcAddress('glGetMapParameterivNV');
5853 if not Assigned(glGetMapParameterivNV) then Exit;
5854 glGetMapParameterfvNV := wglGetProcAddress('glGetMapParameterfvNV');
5855 if not Assigned(glGetMapParameterfvNV) then Exit;
5856 glGetMapAttribParameterivNV := wglGetProcAddress('glGetMapAttribParameterivNV');
5857 if not Assigned(glGetMapAttribParameterivNV) then Exit;
5858 glGetMapAttribParameterfvNV := wglGetProcAddress('glGetMapAttribParameterfvNV');
5859 if not Assigned(glGetMapAttribParameterfvNV) then Exit;
5860 glEvalMapsNV := wglGetProcAddress('glEvalMapsNV');
5861 if not Assigned(glEvalMapsNV) then Exit;
5862 Result := TRUE;
5863 end;
5865 end;
5867 function Load_GL_NV_fence: Boolean;
5868 var
5869 extstring: String;
5870 begin
5872 Result := FALSE;
5873 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5875 if glext_ExtensionSupported('GL_NV_fence', extstring) then
5876 begin
5877 glGenFencesNV := wglGetProcAddress('glGenFencesNV');
5878 if not Assigned(glGenFencesNV) then Exit;
5879 glDeleteFencesNV := wglGetProcAddress('glDeleteFencesNV');
5880 if not Assigned(glDeleteFencesNV) then Exit;
5881 glSetFenceNV := wglGetProcAddress('glSetFenceNV');
5882 if not Assigned(glSetFenceNV) then Exit;
5883 glTestFenceNV := wglGetProcAddress('glTestFenceNV');
5884 if not Assigned(glTestFenceNV) then Exit;
5885 glFinishFenceNV := wglGetProcAddress('glFinishFenceNV');
5886 if not Assigned(glFinishFenceNV) then Exit;
5887 glIsFenceNV := wglGetProcAddress('glIsFenceNV');
5888 if not Assigned(glIsFenceNV) then Exit;
5889 glGetFenceivNV := wglGetProcAddress('glGetFenceivNV');
5890 if not Assigned(glGetFenceivNV) then Exit;
5891 Result := TRUE;
5892 end;
5894 end;
5896 function Load_GL_NV_fog_distance: Boolean;
5897 var
5898 extstring: String;
5899 begin
5901 Result := FALSE;
5902 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5904 if glext_ExtensionSupported('GL_NV_fog_distance', extstring) then
5905 begin
5906 Result := TRUE;
5907 end;
5909 end;
5911 function Load_GL_NV_light_max_exponent: Boolean;
5912 var
5913 extstring: String;
5914 begin
5916 Result := FALSE;
5917 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5919 if glext_ExtensionSupported('GL_NV_light_max_exponent', extstring) then
5920 begin
5921 Result := TRUE;
5922 end;
5924 end;
5926 function Load_GL_NV_multisample_filter_hint: Boolean;
5927 var
5928 extstring: String;
5929 begin
5931 Result := FALSE;
5932 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5934 if glext_ExtensionSupported('GL_NV_multisample_filter_hint', extstring) then
5935 begin
5936 Result := TRUE;
5937 end;
5939 end;
5941 function Load_GL_NV_occlusion_query: Boolean;
5942 var
5943 extstring: String;
5944 begin
5946 Result := FALSE;
5947 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5949 if glext_ExtensionSupported('GL_NV_occlusion_query', extstring) then
5950 begin
5951 glGenOcclusionQueriesNV := wglGetProcAddress('glGenOcclusionQueriesNV');
5952 if not Assigned(glGenOcclusionQueriesNV) then Exit;
5953 glDeleteOcclusionQueriesNV := wglGetProcAddress('glDeleteOcclusionQueriesNV');
5954 if not Assigned(glDeleteOcclusionQueriesNV) then Exit;
5955 glIsOcclusionQueryNV := wglGetProcAddress('glIsOcclusionQueryNV');
5956 if not Assigned(glIsOcclusionQueryNV) then Exit;
5957 glBeginOcclusionQueryNV := wglGetProcAddress('glBeginOcclusionQueryNV');
5958 if not Assigned(glBeginOcclusionQueryNV) then Exit;
5959 glEndOcclusionQueryNV := wglGetProcAddress('glEndOcclusionQueryNV');
5960 if not Assigned(glEndOcclusionQueryNV) then Exit;
5961 glGetOcclusionQueryivNV := wglGetProcAddress('glGetOcclusionQueryivNV');
5962 if not Assigned(glGetOcclusionQueryivNV) then Exit;
5963 glGetOcclusionQueryuivNV := wglGetProcAddress('glGetOcclusionQueryuivNV');
5964 if not Assigned(glGetOcclusionQueryuivNV) then Exit;
5965 Result := TRUE;
5966 end;
5968 end;
5970 function Load_GL_NV_packed_depth_stencil: Boolean;
5971 var
5972 extstring: String;
5973 begin
5975 Result := FALSE;
5976 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5978 if glext_ExtensionSupported('GL_NV_packed_depth_stencil', extstring) then
5979 begin
5980 Result := TRUE;
5981 end;
5983 end;
5985 function Load_GL_NV_point_sprite: Boolean;
5986 var
5987 extstring: String;
5988 begin
5990 Result := FALSE;
5991 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
5993 if glext_ExtensionSupported('GL_NV_point_sprite', extstring) then
5994 begin
5995 glPointParameteriNV := wglGetProcAddress('glPointParameteriNV');
5996 if not Assigned(glPointParameteriNV) then Exit;
5997 glPointParameterivNV := wglGetProcAddress('glPointParameterivNV');
5998 if not Assigned(glPointParameterivNV) then Exit;
5999 Result := TRUE;
6000 end;
6002 end;
6004 function Load_GL_NV_register_combiners: Boolean;
6005 var
6006 extstring: String;
6007 begin
6009 Result := FALSE;
6010 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6012 if glext_ExtensionSupported('GL_NV_register_combiners', extstring) then
6013 begin
6014 glCombinerParameterfvNV := wglGetProcAddress('glCombinerParameterfvNV');
6015 if not Assigned(glCombinerParameterfvNV) then Exit;
6016 glCombinerParameterivNV := wglGetProcAddress('glCombinerParameterivNV');
6017 if not Assigned(glCombinerParameterivNV) then Exit;
6018 glCombinerParameterfNV := wglGetProcAddress('glCombinerParameterfNV');
6019 if not Assigned(glCombinerParameterfNV) then Exit;
6020 glCombinerParameteriNV := wglGetProcAddress('glCombinerParameteriNV');
6021 if not Assigned(glCombinerParameteriNV) then Exit;
6022 glCombinerInputNV := wglGetProcAddress('glCombinerInputNV');
6023 if not Assigned(glCombinerInputNV) then Exit;
6024 glCombinerOutputNV := wglGetProcAddress('glCombinerOutputNV');
6025 if not Assigned(glCombinerOutputNV) then Exit;
6026 glFinalCombinerInputNV := wglGetProcAddress('glFinalCombinerInputNV');
6027 if not Assigned(glFinalCombinerInputNV) then Exit;
6028 glGetCombinerInputParameterfvNV := wglGetProcAddress('glGetCombinerInputParameterfvNV');
6029 if not Assigned(glGetCombinerInputParameterfvNV) then Exit;
6030 glGetCombinerInputParameterivNV := wglGetProcAddress('glGetCombinerInputParameterivNV');
6031 if not Assigned(glGetCombinerInputParameterivNV) then Exit;
6032 glGetCombinerOutputParameterfvNV := wglGetProcAddress('glGetCombinerOutputParameterfvNV');
6033 if not Assigned(glGetCombinerOutputParameterfvNV) then Exit;
6034 glGetCombinerOutputParameterivNV := wglGetProcAddress('glGetCombinerOutputParameterivNV');
6035 if not Assigned(glGetCombinerOutputParameterivNV) then Exit;
6036 glGetFinalCombinerInputParameterfvNV := wglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
6037 if not Assigned(glGetFinalCombinerInputParameterfvNV) then Exit;
6038 glGetFinalCombinerInputParameterivNV := wglGetProcAddress('glGetFinalCombinerInputParameterivNV');
6039 if not Assigned(glGetFinalCombinerInputParameterivNV) then Exit;
6040 Result := TRUE;
6041 end;
6043 end;
6045 function Load_GL_NV_register_combiners2: Boolean;
6046 var
6047 extstring: String;
6048 begin
6050 Result := FALSE;
6051 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6053 if glext_ExtensionSupported('GL_NV_register_combiners2', extstring) then
6054 begin
6055 glCombinerStageParameterfvNV := wglGetProcAddress('glCombinerStageParameterfvNV');
6056 if not Assigned(glCombinerStageParameterfvNV) then Exit;
6057 glGetCombinerStageParameterfvNV := wglGetProcAddress('glGetCombinerStageParameterfvNV');
6058 if not Assigned(glGetCombinerStageParameterfvNV) then Exit;
6059 Result := TRUE;
6060 end;
6062 end;
6064 function Load_GL_NV_texgen_emboss: Boolean;
6065 var
6066 extstring: String;
6067 begin
6069 Result := FALSE;
6070 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6072 if glext_ExtensionSupported('GL_NV_texgen_emboss', extstring) then
6073 begin
6074 Result := TRUE;
6075 end;
6077 end;
6079 function Load_GL_NV_texgen_reflection: Boolean;
6080 var
6081 extstring: String;
6082 begin
6084 Result := FALSE;
6085 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6087 if glext_ExtensionSupported('GL_NV_texgen_reflection', extstring) then
6088 begin
6089 Result := TRUE;
6090 end;
6092 end;
6094 function Load_GL_NV_texture_compression_vtc: Boolean;
6095 var
6096 extstring: String;
6097 begin
6099 Result := FALSE;
6100 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6102 if glext_ExtensionSupported('GL_NV_texture_compression_vtc', extstring) then
6103 begin
6104 Result := TRUE;
6105 end;
6107 end;
6109 function Load_GL_NV_texture_env_combine4: Boolean;
6110 var
6111 extstring: String;
6112 begin
6114 Result := FALSE;
6115 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6117 if glext_ExtensionSupported('GL_NV_texture_env_combine4', extstring) then
6118 begin
6119 Result := TRUE;
6120 end;
6122 end;
6124 function Load_GL_NV_texture_rectangle: Boolean;
6125 var
6126 extstring: String;
6127 begin
6129 Result := FALSE;
6130 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6132 if glext_ExtensionSupported('GL_NV_texture_rectangle', extstring) then
6133 begin
6134 Result := TRUE;
6135 end;
6137 end;
6139 function Load_GL_NV_texture_shader: Boolean;
6140 var
6141 extstring: String;
6142 begin
6144 Result := FALSE;
6145 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6147 if glext_ExtensionSupported('GL_NV_texture_shader', extstring) then
6148 begin
6149 Result := TRUE;
6150 end;
6152 end;
6154 function Load_GL_NV_texture_shader2: Boolean;
6155 var
6156 extstring: String;
6157 begin
6159 Result := FALSE;
6160 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6162 if glext_ExtensionSupported('GL_NV_texture_shader2', extstring) then
6163 begin
6164 Result := TRUE;
6165 end;
6167 end;
6169 function Load_GL_NV_texture_shader3: Boolean;
6170 var
6171 extstring: String;
6172 begin
6174 Result := FALSE;
6175 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6177 if glext_ExtensionSupported('GL_NV_texture_shader3', extstring) then
6178 begin
6179 Result := TRUE;
6180 end;
6182 end;
6184 function Load_GL_NV_vertex_array_range: Boolean;
6185 var
6186 extstring: String;
6187 begin
6189 Result := FALSE;
6190 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6192 if glext_ExtensionSupported('GL_NV_vertex_array_range', extstring) then
6193 begin
6194 glVertexArrayRangeNV := wglGetProcAddress('glVertexArrayRangeNV');
6195 if not Assigned(glVertexArrayRangeNV) then Exit;
6196 glFlushVertexArrayRangeNV := wglGetProcAddress('glFlushVertexArrayRangeNV');
6197 if not Assigned(glFlushVertexArrayRangeNV) then Exit;
6198 wglAllocateMemoryNV := wglGetProcAddress('wglAllocateMemoryNV');
6199 if not Assigned(wglAllocateMemoryNV) then Exit;
6200 wglFreeMemoryNV := wglGetProcAddress('wglFreeMemoryNV');
6201 if not Assigned(wglFreeMemoryNV) then Exit;
6202 Result := TRUE;
6203 end;
6205 end;
6207 function Load_GL_NV_vertex_array_range2: Boolean;
6208 var
6209 extstring: String;
6210 begin
6212 Result := FALSE;
6213 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6215 if glext_ExtensionSupported('GL_NV_vertex_array_range2', extstring) then
6216 begin
6217 Result := TRUE;
6218 end;
6220 end;
6222 function Load_GL_NV_vertex_program: Boolean;
6223 var
6224 extstring: String;
6225 begin
6227 Result := FALSE;
6228 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6230 if glext_ExtensionSupported('GL_NV_vertex_program', extstring) then
6231 begin
6232 glBindProgramNV := wglGetProcAddress('glBindProgramNV');
6233 if not Assigned(glBindProgramNV) then Exit;
6234 glDeleteProgramsNV := wglGetProcAddress('glDeleteProgramsNV');
6235 if not Assigned(glDeleteProgramsNV) then Exit;
6236 glExecuteProgramNV := wglGetProcAddress('glExecuteProgramNV');
6237 if not Assigned(glExecuteProgramNV) then Exit;
6238 glGenProgramsNV := wglGetProcAddress('glGenProgramsNV');
6239 if not Assigned(glGenProgramsNV) then Exit;
6240 glAreProgramsResidentNV := wglGetProcAddress('glAreProgramsResidentNV');
6241 if not Assigned(glAreProgramsResidentNV) then Exit;
6242 glRequestResidentProgramsNV := wglGetProcAddress('glRequestResidentProgramsNV');
6243 if not Assigned(glRequestResidentProgramsNV) then Exit;
6244 glGetProgramParameterfvNV := wglGetProcAddress('glGetProgramParameterfvNV');
6245 if not Assigned(glGetProgramParameterfvNV) then Exit;
6246 glGetProgramParameterdvNV := wglGetProcAddress('glGetProgramParameterdvNV');
6247 if not Assigned(glGetProgramParameterdvNV) then Exit;
6248 glGetProgramivNV := wglGetProcAddress('glGetProgramivNV');
6249 if not Assigned(glGetProgramivNV) then Exit;
6250 glGetProgramStringNV := wglGetProcAddress('glGetProgramStringNV');
6251 if not Assigned(glGetProgramStringNV) then Exit;
6252 glGetTrackMatrixivNV := wglGetProcAddress('glGetTrackMatrixivNV');
6253 if not Assigned(glGetTrackMatrixivNV) then Exit;
6254 glGetVertexAttribdvNV := wglGetProcAddress('glGetVertexAttribdvNV');
6255 if not Assigned(glGetVertexAttribdvNV) then Exit;
6256 glGetVertexAttribfvNV := wglGetProcAddress('glGetVertexAttribfvNV');
6257 if not Assigned(glGetVertexAttribfvNV) then Exit;
6258 glGetVertexAttribivNV := wglGetProcAddress('glGetVertexAttribivNV');
6259 if not Assigned(glGetVertexAttribivNV) then Exit;
6260 glGetVertexAttribPointervNV := wglGetProcAddress('glGetVertexAttribPointervNV');
6261 if not Assigned(glGetVertexAttribPointervNV) then Exit;
6262 glIsProgramNV := wglGetProcAddress('glIsProgramNV');
6263 if not Assigned(glIsProgramNV) then Exit;
6264 glLoadProgramNV := wglGetProcAddress('glLoadProgramNV');
6265 if not Assigned(glLoadProgramNV) then Exit;
6266 glProgramParameter4fNV := wglGetProcAddress('glProgramParameter4fNV');
6267 if not Assigned(glProgramParameter4fNV) then Exit;
6268 glProgramParameter4fvNV := wglGetProcAddress('glProgramParameter4fvNV');
6269 if not Assigned(glProgramParameter4fvNV) then Exit;
6270 glProgramParameters4dvNV := wglGetProcAddress('glProgramParameters4dvNV');
6271 if not Assigned(glProgramParameters4dvNV) then Exit;
6272 glProgramParameters4fvNV := wglGetProcAddress('glProgramParameters4fvNV');
6273 if not Assigned(glProgramParameters4fvNV) then Exit;
6274 glTrackMatrixNV := wglGetProcAddress('glTrackMatrixNV');
6275 if not Assigned(glTrackMatrixNV) then Exit;
6276 glVertexAttribPointerNV := wglGetProcAddress('glVertexAttribPointerNV');
6277 if not Assigned(glVertexAttribPointerNV) then Exit;
6278 glVertexAttrib1sNV := wglGetProcAddress('glVertexAttrib1sNV');
6279 if not Assigned(glVertexAttrib1sNV) then Exit;
6280 glVertexAttrib1fNV := wglGetProcAddress('glVertexAttrib1fNV');
6281 if not Assigned(glVertexAttrib1fNV) then Exit;
6282 glVertexAttrib1dNV := wglGetProcAddress('glVertexAttrib1dNV');
6283 if not Assigned(glVertexAttrib1dNV) then Exit;
6284 glVertexAttrib2sNV := wglGetProcAddress('glVertexAttrib2sNV');
6285 if not Assigned(glVertexAttrib2sNV) then Exit;
6286 glVertexAttrib2fNV := wglGetProcAddress('glVertexAttrib2fNV');
6287 if not Assigned(glVertexAttrib2fNV) then Exit;
6288 glVertexAttrib2dNV := wglGetProcAddress('glVertexAttrib2dNV');
6289 if not Assigned(glVertexAttrib2dNV) then Exit;
6290 glVertexAttrib3sNV := wglGetProcAddress('glVertexAttrib3sNV');
6291 if not Assigned(glVertexAttrib3sNV) then Exit;
6292 glVertexAttrib3fNV := wglGetProcAddress('glVertexAttrib3fNV');
6293 if not Assigned(glVertexAttrib3fNV) then Exit;
6294 glVertexAttrib3dNV := wglGetProcAddress('glVertexAttrib3dNV');
6295 if not Assigned(glVertexAttrib3dNV) then Exit;
6296 glVertexAttrib4sNV := wglGetProcAddress('glVertexAttrib4sNV');
6297 if not Assigned(glVertexAttrib4sNV) then Exit;
6298 glVertexAttrib4fNV := wglGetProcAddress('glVertexAttrib4fNV');
6299 if not Assigned(glVertexAttrib4fNV) then Exit;
6300 glVertexAttrib4dNV := wglGetProcAddress('glVertexAttrib4dNV');
6301 if not Assigned(glVertexAttrib4dNV) then Exit;
6302 glVertexAttrib4ubNV := wglGetProcAddress('glVertexAttrib4ubNV');
6303 if not Assigned(glVertexAttrib4ubNV) then Exit;
6304 glVertexAttrib1svNV := wglGetProcAddress('glVertexAttrib1svNV');
6305 if not Assigned(glVertexAttrib1svNV) then Exit;
6306 glVertexAttrib1fvNV := wglGetProcAddress('glVertexAttrib1fvNV');
6307 if not Assigned(glVertexAttrib1fvNV) then Exit;
6308 glVertexAttrib1dvNV := wglGetProcAddress('glVertexAttrib1dvNV');
6309 if not Assigned(glVertexAttrib1dvNV) then Exit;
6310 glVertexAttrib2svNV := wglGetProcAddress('glVertexAttrib2svNV');
6311 if not Assigned(glVertexAttrib2svNV) then Exit;
6312 glVertexAttrib2fvNV := wglGetProcAddress('glVertexAttrib2fvNV');
6313 if not Assigned(glVertexAttrib2fvNV) then Exit;
6314 glVertexAttrib2dvNV := wglGetProcAddress('glVertexAttrib2dvNV');
6315 if not Assigned(glVertexAttrib2dvNV) then Exit;
6316 glVertexAttrib3svNV := wglGetProcAddress('glVertexAttrib3svNV');
6317 if not Assigned(glVertexAttrib3svNV) then Exit;
6318 glVertexAttrib3fvNV := wglGetProcAddress('glVertexAttrib3fvNV');
6319 if not Assigned(glVertexAttrib3fvNV) then Exit;
6320 glVertexAttrib3dvNV := wglGetProcAddress('glVertexAttrib3dvNV');
6321 if not Assigned(glVertexAttrib3dvNV) then Exit;
6322 glVertexAttrib4svNV := wglGetProcAddress('glVertexAttrib4svNV');
6323 if not Assigned(glVertexAttrib4svNV) then Exit;
6324 glVertexAttrib4fvNV := wglGetProcAddress('glVertexAttrib4fvNV');
6325 if not Assigned(glVertexAttrib4fvNV) then Exit;
6326 glVertexAttrib4dvNV := wglGetProcAddress('glVertexAttrib4dvNV');
6327 if not Assigned(glVertexAttrib4dvNV) then Exit;
6328 glVertexAttrib4ubvNV := wglGetProcAddress('glVertexAttrib4ubvNV');
6329 if not Assigned(glVertexAttrib4ubvNV) then Exit;
6330 glVertexAttribs1svNV := wglGetProcAddress('glVertexAttribs1svNV');
6331 if not Assigned(glVertexAttribs1svNV) then Exit;
6332 glVertexAttribs1fvNV := wglGetProcAddress('glVertexAttribs1fvNV');
6333 if not Assigned(glVertexAttribs1fvNV) then Exit;
6334 glVertexAttribs1dvNV := wglGetProcAddress('glVertexAttribs1dvNV');
6335 if not Assigned(glVertexAttribs1dvNV) then Exit;
6336 glVertexAttribs2svNV := wglGetProcAddress('glVertexAttribs2svNV');
6337 if not Assigned(glVertexAttribs2svNV) then Exit;
6338 glVertexAttribs2fvNV := wglGetProcAddress('glVertexAttribs2fvNV');
6339 if not Assigned(glVertexAttribs2fvNV) then Exit;
6340 glVertexAttribs2dvNV := wglGetProcAddress('glVertexAttribs2dvNV');
6341 if not Assigned(glVertexAttribs2dvNV) then Exit;
6342 glVertexAttribs3svNV := wglGetProcAddress('glVertexAttribs3svNV');
6343 if not Assigned(glVertexAttribs3svNV) then Exit;
6344 glVertexAttribs3fvNV := wglGetProcAddress('glVertexAttribs3fvNV');
6345 if not Assigned(glVertexAttribs3fvNV) then Exit;
6346 glVertexAttribs3dvNV := wglGetProcAddress('glVertexAttribs3dvNV');
6347 if not Assigned(glVertexAttribs3dvNV) then Exit;
6348 glVertexAttribs4svNV := wglGetProcAddress('glVertexAttribs4svNV');
6349 if not Assigned(glVertexAttribs4svNV) then Exit;
6350 glVertexAttribs4fvNV := wglGetProcAddress('glVertexAttribs4fvNV');
6351 if not Assigned(glVertexAttribs4fvNV) then Exit;
6352 glVertexAttribs4dvNV := wglGetProcAddress('glVertexAttribs4dvNV');
6353 if not Assigned(glVertexAttribs4dvNV) then Exit;
6354 glVertexAttribs4ubvNV := wglGetProcAddress('glVertexAttribs4ubvNV');
6355 if not Assigned(glVertexAttribs4ubvNV) then Exit;
6356 Result := TRUE;
6357 end;
6359 end;
6361 function Load_GL_NV_vertex_program1_1: Boolean;
6362 var
6363 extstring: String;
6364 begin
6366 Result := FALSE;
6367 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6369 if glext_ExtensionSupported('GL_NV_vertex_program1_1', extstring) then
6370 begin
6371 Result := TRUE;
6372 end;
6374 end;
6376 function Load_GL_ATI_element_array: Boolean;
6377 var
6378 extstring: String;
6379 begin
6381 Result := FALSE;
6382 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6384 if glext_ExtensionSupported('GL_ATI_element_array', extstring) then
6385 begin
6386 glElementPointerATI := wglGetProcAddress('glElementPointerATI');
6387 if not Assigned(glElementPointerATI) then Exit;
6388 glDrawElementArrayATI := wglGetProcAddress('glDrawElementArrayATI');
6389 if not Assigned(glDrawElementArrayATI) then Exit;
6390 glDrawRangeElementArrayATI := wglGetProcAddress('glDrawRangeElementArrayATI');
6391 if not Assigned(glDrawRangeElementArrayATI) then Exit;
6392 Result := TRUE;
6393 end;
6395 end;
6397 function Load_GL_ATI_envmap_bumpmap: Boolean;
6398 var
6399 extstring: String;
6400 begin
6402 Result := FALSE;
6403 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6405 if glext_ExtensionSupported('GL_ATI_envmap_bumpmap', extstring) then
6406 begin
6407 glTexBumpParameterivATI := wglGetProcAddress('glTexBumpParameterivATI');
6408 if not Assigned(glTexBumpParameterivATI) then Exit;
6409 glTexBumpParameterfvATI := wglGetProcAddress('glTexBumpParameterfvATI');
6410 if not Assigned(glTexBumpParameterfvATI) then Exit;
6411 glGetTexBumpParameterivATI := wglGetProcAddress('glGetTexBumpParameterivATI');
6412 if not Assigned(glGetTexBumpParameterivATI) then Exit;
6413 glGetTexBumpParameterfvATI := wglGetProcAddress('glGetTexBumpParameterfvATI');
6414 if not Assigned(glGetTexBumpParameterfvATI) then Exit;
6415 Result := TRUE;
6416 end;
6418 end;
6420 function Load_GL_ATI_fragment_shader: Boolean;
6421 var
6422 extstring: String;
6423 begin
6425 Result := FALSE;
6426 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6428 if glext_ExtensionSupported('GL_ATI_fragment_shader', extstring) then
6429 begin
6430 glGenFragmentShadersATI := wglGetProcAddress('glGenFragmentShadersATI');
6431 if not Assigned(glGenFragmentShadersATI) then Exit;
6432 glBindFragmentShaderATI := wglGetProcAddress('glBindFragmentShaderATI');
6433 if not Assigned(glBindFragmentShaderATI) then Exit;
6434 glDeleteFragmentShaderATI := wglGetProcAddress('glDeleteFragmentShaderATI');
6435 if not Assigned(glDeleteFragmentShaderATI) then Exit;
6436 glBeginFragmentShaderATI := wglGetProcAddress('glBeginFragmentShaderATI');
6437 if not Assigned(glBeginFragmentShaderATI) then Exit;
6438 glEndFragmentShaderATI := wglGetProcAddress('glEndFragmentShaderATI');
6439 if not Assigned(glEndFragmentShaderATI) then Exit;
6440 glPassTexCoordATI := wglGetProcAddress('glPassTexCoordATI');
6441 if not Assigned(glPassTexCoordATI) then Exit;
6442 glSampleMapATI := wglGetProcAddress('glSampleMapATI');
6443 if not Assigned(glSampleMapATI) then Exit;
6444 glColorFragmentOp1ATI := wglGetProcAddress('glColorFragmentOp1ATI');
6445 if not Assigned(glColorFragmentOp1ATI) then Exit;
6446 glColorFragmentOp2ATI := wglGetProcAddress('glColorFragmentOp2ATI');
6447 if not Assigned(glColorFragmentOp2ATI) then Exit;
6448 glColorFragmentOp3ATI := wglGetProcAddress('glColorFragmentOp3ATI');
6449 if not Assigned(glColorFragmentOp3ATI) then Exit;
6450 glAlphaFragmentOp1ATI := wglGetProcAddress('glAlphaFragmentOp1ATI');
6451 if not Assigned(glAlphaFragmentOp1ATI) then Exit;
6452 glAlphaFragmentOp2ATI := wglGetProcAddress('glAlphaFragmentOp2ATI');
6453 if not Assigned(glAlphaFragmentOp2ATI) then Exit;
6454 glAlphaFragmentOp3ATI := wglGetProcAddress('glAlphaFragmentOp3ATI');
6455 if not Assigned(glAlphaFragmentOp3ATI) then Exit;
6456 glSetFragmentShaderConstantATI := wglGetProcAddress('glSetFragmentShaderConstantATI');
6457 if not Assigned(glSetFragmentShaderConstantATI) then Exit;
6458 Result := TRUE;
6459 end;
6461 end;
6463 function Load_GL_ATI_pn_triangles: Boolean;
6464 var
6465 extstring: String;
6466 begin
6468 Result := FALSE;
6469 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6471 if glext_ExtensionSupported('GL_ATI_pn_triangles', extstring) then
6472 begin
6473 glPNTrianglesiATI := wglGetProcAddress('glPNTrianglesiATI');
6474 if not Assigned(glPNTrianglesiATI) then Exit;
6475 glPNTrianglesfATI := wglGetProcAddress('glPNTrianglesfATI');
6476 if not Assigned(glPNTrianglesfATI) then Exit;
6477 Result := TRUE;
6478 end;
6480 end;
6482 function Load_GL_ATI_texture_mirror_once: Boolean;
6483 var
6484 extstring: String;
6485 begin
6487 Result := FALSE;
6488 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6490 if glext_ExtensionSupported('GL_ATI_texture_mirror_once', extstring) then
6491 begin
6492 Result := TRUE;
6493 end;
6495 end;
6497 function Load_GL_ATI_vertex_array_object: Boolean;
6498 var
6499 extstring: String;
6500 begin
6502 Result := FALSE;
6503 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6505 if glext_ExtensionSupported('GL_ATI_vertex_array_object', extstring) then
6506 begin
6507 glNewObjectBufferATI := wglGetProcAddress('glNewObjectBufferATI');
6508 if not Assigned(glNewObjectBufferATI) then Exit;
6509 glIsObjectBufferATI := wglGetProcAddress('glIsObjectBufferATI');
6510 if not Assigned(glIsObjectBufferATI) then Exit;
6511 glUpdateObjectBufferATI := wglGetProcAddress('glUpdateObjectBufferATI');
6512 if not Assigned(glUpdateObjectBufferATI) then Exit;
6513 glGetObjectBufferfvATI := wglGetProcAddress('glGetObjectBufferfvATI');
6514 if not Assigned(glGetObjectBufferfvATI) then Exit;
6515 glGetObjectBufferivATI := wglGetProcAddress('glGetObjectBufferivATI');
6516 if not Assigned(glGetObjectBufferivATI) then Exit;
6517 glDeleteObjectBufferATI := wglGetProcAddress('glDeleteObjectBufferATI');
6518 if not Assigned(glDeleteObjectBufferATI) then Exit;
6519 glArrayObjectATI := wglGetProcAddress('glArrayObjectATI');
6520 if not Assigned(glArrayObjectATI) then Exit;
6521 glGetArrayObjectfvATI := wglGetProcAddress('glGetArrayObjectfvATI');
6522 if not Assigned(glGetArrayObjectfvATI) then Exit;
6523 glGetArrayObjectivATI := wglGetProcAddress('glGetArrayObjectivATI');
6524 if not Assigned(glGetArrayObjectivATI) then Exit;
6525 glVariantArrayObjectATI := wglGetProcAddress('glVariantArrayObjectATI');
6526 if not Assigned(glVariantArrayObjectATI) then Exit;
6527 glGetVariantArrayObjectfvATI := wglGetProcAddress('glGetVariantArrayObjectfvATI');
6528 if not Assigned(glGetVariantArrayObjectfvATI) then Exit;
6529 glGetVariantArrayObjectivATI := wglGetProcAddress('glGetVariantArrayObjectivATI');
6530 if not Assigned(glGetVariantArrayObjectivATI) then Exit;
6531 Result := TRUE;
6532 end;
6534 end;
6536 function Load_GL_ATI_vertex_streams: Boolean;
6537 var
6538 extstring: String;
6539 begin
6541 Result := FALSE;
6542 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6544 if glext_ExtensionSupported('GL_ATI_vertex_streams', extstring) then
6545 begin
6546 glVertexStream1s := wglGetProcAddress('glVertexStream1s');
6547 if not Assigned(glVertexStream1s) then Exit;
6548 glVertexStream1i := wglGetProcAddress('glVertexStream1i');
6549 if not Assigned(glVertexStream1i) then Exit;
6550 glVertexStream1f := wglGetProcAddress('glVertexStream1f');
6551 if not Assigned(glVertexStream1f) then Exit;
6552 glVertexStream1d := wglGetProcAddress('glVertexStream1d');
6553 if not Assigned(glVertexStream1d) then Exit;
6554 glVertexStream1sv := wglGetProcAddress('glVertexStream1sv');
6555 if not Assigned(glVertexStream1sv) then Exit;
6556 glVertexStream1iv := wglGetProcAddress('glVertexStream1iv');
6557 if not Assigned(glVertexStream1iv) then Exit;
6558 glVertexStream1fv := wglGetProcAddress('glVertexStream1fv');
6559 if not Assigned(glVertexStream1fv) then Exit;
6560 glVertexStream1dv := wglGetProcAddress('glVertexStream1dv');
6561 if not Assigned(glVertexStream1dv) then Exit;
6562 glVertexStream2s := wglGetProcAddress('glVertexStream2s');
6563 if not Assigned(glVertexStream2s) then Exit;
6564 glVertexStream2i := wglGetProcAddress('glVertexStream2i');
6565 if not Assigned(glVertexStream2i) then Exit;
6566 glVertexStream2f := wglGetProcAddress('glVertexStream2f');
6567 if not Assigned(glVertexStream2f) then Exit;
6568 glVertexStream2d := wglGetProcAddress('glVertexStream2d');
6569 if not Assigned(glVertexStream2d) then Exit;
6570 glVertexStream2sv := wglGetProcAddress('glVertexStream2sv');
6571 if not Assigned(glVertexStream2sv) then Exit;
6572 glVertexStream2iv := wglGetProcAddress('glVertexStream2iv');
6573 if not Assigned(glVertexStream2iv) then Exit;
6574 glVertexStream2fv := wglGetProcAddress('glVertexStream2fv');
6575 if not Assigned(glVertexStream2fv) then Exit;
6576 glVertexStream2dv := wglGetProcAddress('glVertexStream2dv');
6577 if not Assigned(glVertexStream2dv) then Exit;
6578 glVertexStream3s := wglGetProcAddress('glVertexStream3s');
6579 if not Assigned(glVertexStream3s) then Exit;
6580 glVertexStream3i := wglGetProcAddress('glVertexStream3i');
6581 if not Assigned(glVertexStream3i) then Exit;
6582 glVertexStream3f := wglGetProcAddress('glVertexStream3f');
6583 if not Assigned(glVertexStream3f) then Exit;
6584 glVertexStream3d := wglGetProcAddress('glVertexStream3d');
6585 if not Assigned(glVertexStream3d) then Exit;
6586 glVertexStream3sv := wglGetProcAddress('glVertexStream3sv');
6587 if not Assigned(glVertexStream3sv) then Exit;
6588 glVertexStream3iv := wglGetProcAddress('glVertexStream3iv');
6589 if not Assigned(glVertexStream3iv) then Exit;
6590 glVertexStream3fv := wglGetProcAddress('glVertexStream3fv');
6591 if not Assigned(glVertexStream3fv) then Exit;
6592 glVertexStream3dv := wglGetProcAddress('glVertexStream3dv');
6593 if not Assigned(glVertexStream3dv) then Exit;
6594 glVertexStream4s := wglGetProcAddress('glVertexStream4s');
6595 if not Assigned(glVertexStream4s) then Exit;
6596 glVertexStream4i := wglGetProcAddress('glVertexStream4i');
6597 if not Assigned(glVertexStream4i) then Exit;
6598 glVertexStream4f := wglGetProcAddress('glVertexStream4f');
6599 if not Assigned(glVertexStream4f) then Exit;
6600 glVertexStream4d := wglGetProcAddress('glVertexStream4d');
6601 if not Assigned(glVertexStream4d) then Exit;
6602 glVertexStream4sv := wglGetProcAddress('glVertexStream4sv');
6603 if not Assigned(glVertexStream4sv) then Exit;
6604 glVertexStream4iv := wglGetProcAddress('glVertexStream4iv');
6605 if not Assigned(glVertexStream4iv) then Exit;
6606 glVertexStream4fv := wglGetProcAddress('glVertexStream4fv');
6607 if not Assigned(glVertexStream4fv) then Exit;
6608 glVertexStream4dv := wglGetProcAddress('glVertexStream4dv');
6609 if not Assigned(glVertexStream4dv) then Exit;
6610 glNormalStream3b := wglGetProcAddress('glNormalStream3b');
6611 if not Assigned(glNormalStream3b) then Exit;
6612 glNormalStream3s := wglGetProcAddress('glNormalStream3s');
6613 if not Assigned(glNormalStream3s) then Exit;
6614 glNormalStream3i := wglGetProcAddress('glNormalStream3i');
6615 if not Assigned(glNormalStream3i) then Exit;
6616 glNormalStream3f := wglGetProcAddress('glNormalStream3f');
6617 if not Assigned(glNormalStream3f) then Exit;
6618 glNormalStream3d := wglGetProcAddress('glNormalStream3d');
6619 if not Assigned(glNormalStream3d) then Exit;
6620 glNormalStream3bv := wglGetProcAddress('glNormalStream3bv');
6621 if not Assigned(glNormalStream3bv) then Exit;
6622 glNormalStream3sv := wglGetProcAddress('glNormalStream3sv');
6623 if not Assigned(glNormalStream3sv) then Exit;
6624 glNormalStream3iv := wglGetProcAddress('glNormalStream3iv');
6625 if not Assigned(glNormalStream3iv) then Exit;
6626 glNormalStream3fv := wglGetProcAddress('glNormalStream3fv');
6627 if not Assigned(glNormalStream3fv) then Exit;
6628 glNormalStream3dv := wglGetProcAddress('glNormalStream3dv');
6629 if not Assigned(glNormalStream3dv) then Exit;
6630 glClientActiveVertexStream := wglGetProcAddress('glClientActiveVertexStream');
6631 if not Assigned(glClientActiveVertexStream) then Exit;
6632 glVertexBlendEnvi := wglGetProcAddress('glVertexBlendEnvi');
6633 if not Assigned(glVertexBlendEnvi) then Exit;
6634 glVertexBlendEnvf := wglGetProcAddress('glVertexBlendEnvf');
6635 if not Assigned(glVertexBlendEnvf) then Exit;
6636 Result := TRUE;
6637 end;
6639 end;
6641 function Load_WGL_I3D_image_buffer: Boolean;
6642 var
6643 extstring: String;
6644 begin
6646 Result := FALSE;
6647 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
6648 if not Assigned(wglGetExtensionsStringARB) then Exit;
6649 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
6651 if glext_ExtensionSupported('WGL_I3D_image_buffer', extstring) then
6652 begin
6653 wglCreateImageBufferI3D := wglGetProcAddress('wglCreateImageBufferI3D');
6654 if not Assigned(wglCreateImageBufferI3D) then Exit;
6655 wglDestroyImageBufferI3D := wglGetProcAddress('wglDestroyImageBufferI3D');
6656 if not Assigned(wglDestroyImageBufferI3D) then Exit;
6657 wglAssociateImageBufferEventsI3D := wglGetProcAddress('wglAssociateImageBufferEventsI3D');
6658 if not Assigned(wglAssociateImageBufferEventsI3D) then Exit;
6659 wglReleaseImageBufferEventsI3D := wglGetProcAddress('wglReleaseImageBufferEventsI3D');
6660 if not Assigned(wglReleaseImageBufferEventsI3D) then Exit;
6661 Result := TRUE;
6662 end;
6664 end;
6666 function Load_WGL_I3D_swap_frame_lock: Boolean;
6667 var
6668 extstring: String;
6669 begin
6671 Result := FALSE;
6672 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
6673 if not Assigned(wglGetExtensionsStringARB) then Exit;
6674 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
6676 if glext_ExtensionSupported('WGL_I3D_swap_frame_lock', extstring) then
6677 begin
6678 wglEnableFrameLockI3D := wglGetProcAddress('wglEnableFrameLockI3D');
6679 if not Assigned(wglEnableFrameLockI3D) then Exit;
6680 wglDisableFrameLockI3D := wglGetProcAddress('wglDisableFrameLockI3D');
6681 if not Assigned(wglDisableFrameLockI3D) then Exit;
6682 wglIsEnabledFrameLockI3D := wglGetProcAddress('wglIsEnabledFrameLockI3D');
6683 if not Assigned(wglIsEnabledFrameLockI3D) then Exit;
6684 wglQueryFrameLockMasterI3D := wglGetProcAddress('wglQueryFrameLockMasterI3D');
6685 if not Assigned(wglQueryFrameLockMasterI3D) then Exit;
6686 Result := TRUE;
6687 end;
6689 end;
6691 function Load_WGL_I3D_swap_frame_usage: Boolean;
6692 var
6693 extstring: String;
6694 begin
6696 Result := FALSE;
6697 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
6698 if not Assigned(wglGetExtensionsStringARB) then Exit;
6699 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
6701 if glext_ExtensionSupported('WGL_I3D_swap_frame_usage', extstring) then
6702 begin
6703 wglGetFrameUsageI3D := wglGetProcAddress('wglGetFrameUsageI3D');
6704 if not Assigned(wglGetFrameUsageI3D) then Exit;
6705 wglBeginFrameTrackingI3D := wglGetProcAddress('wglBeginFrameTrackingI3D');
6706 if not Assigned(wglBeginFrameTrackingI3D) then Exit;
6707 wglEndFrameTrackingI3D := wglGetProcAddress('wglEndFrameTrackingI3D');
6708 if not Assigned(wglEndFrameTrackingI3D) then Exit;
6709 wglQueryFrameTrackingI3D := wglGetProcAddress('wglQueryFrameTrackingI3D');
6710 if not Assigned(wglQueryFrameTrackingI3D) then Exit;
6711 Result := TRUE;
6712 end;
6714 end;
6716 function Load_GL_3DFX_texture_compression_FXT1: Boolean;
6717 var
6718 extstring: String;
6719 begin
6721 Result := FALSE;
6722 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6724 if glext_ExtensionSupported('GL_3DFX_texture_compression_FXT1', extstring) then
6725 begin
6726 Result := TRUE;
6727 end;
6729 end;
6731 function Load_GL_IBM_cull_vertex: Boolean;
6732 var
6733 extstring: String;
6734 begin
6736 Result := FALSE;
6737 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6739 if glext_ExtensionSupported('GL_IBM_cull_vertex', extstring) then
6740 begin
6741 Result := TRUE;
6742 end;
6744 end;
6746 function Load_GL_IBM_multimode_draw_arrays: Boolean;
6747 var
6748 extstring: String;
6749 begin
6751 Result := FALSE;
6752 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6754 if glext_ExtensionSupported('GL_IBM_multimode_draw_arrays', extstring) then
6755 begin
6756 glMultiModeDrawArraysIBM := wglGetProcAddress('glMultiModeDrawArraysIBM');
6757 if not Assigned(glMultiModeDrawArraysIBM) then Exit;
6758 glMultiModeDrawElementsIBM := wglGetProcAddress('glMultiModeDrawElementsIBM');
6759 if not Assigned(glMultiModeDrawElementsIBM) then Exit;
6760 Result := TRUE;
6761 end;
6763 end;
6765 function Load_GL_IBM_raster_pos_clip: Boolean;
6766 var
6767 extstring: String;
6768 begin
6770 Result := FALSE;
6771 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6773 if glext_ExtensionSupported('GL_IBM_raster_pos_clip', extstring) then
6774 begin
6775 Result := TRUE;
6776 end;
6778 end;
6780 function Load_GL_IBM_texture_mirrored_repeat: Boolean;
6781 var
6782 extstring: String;
6783 begin
6785 Result := FALSE;
6786 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6788 if glext_ExtensionSupported('GL_IBM_texture_mirrored_repeat', extstring) then
6789 begin
6790 Result := TRUE;
6791 end;
6793 end;
6795 function Load_GL_IBM_vertex_array_lists: Boolean;
6796 var
6797 extstring: String;
6798 begin
6800 Result := FALSE;
6801 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6803 if glext_ExtensionSupported('GL_IBM_vertex_array_lists', extstring) then
6804 begin
6805 glColorPointerListIBM := wglGetProcAddress('glColorPointerListIBM');
6806 if not Assigned(glColorPointerListIBM) then Exit;
6807 glSecondaryColorPointerListIBM := wglGetProcAddress('glSecondaryColorPointerListIBM');
6808 if not Assigned(glSecondaryColorPointerListIBM) then Exit;
6809 glEdgeFlagPointerListIBM := wglGetProcAddress('glEdgeFlagPointerListIBM');
6810 if not Assigned(glEdgeFlagPointerListIBM) then Exit;
6811 glFogCoordPointerListIBM := wglGetProcAddress('glFogCoordPointerListIBM');
6812 if not Assigned(glFogCoordPointerListIBM) then Exit;
6813 glNormalPointerListIBM := wglGetProcAddress('glNormalPointerListIBM');
6814 if not Assigned(glNormalPointerListIBM) then Exit;
6815 glTexCoordPointerListIBM := wglGetProcAddress('glTexCoordPointerListIBM');
6816 if not Assigned(glTexCoordPointerListIBM) then Exit;
6817 glVertexPointerListIBM := wglGetProcAddress('glVertexPointerListIBM');
6818 if not Assigned(glVertexPointerListIBM) then Exit;
6819 Result := TRUE;
6820 end;
6822 end;
6824 function Load_GL_MESA_resize_buffers: Boolean;
6825 var
6826 extstring: String;
6827 begin
6829 Result := FALSE;
6830 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6832 if glext_ExtensionSupported('GL_MESA_resize_buffers', extstring) then
6833 begin
6834 glResizeBuffersMESA := wglGetProcAddress('glResizeBuffersMESA');
6835 if not Assigned(glResizeBuffersMESA) then Exit;
6836 Result := TRUE;
6837 end;
6839 end;
6841 function Load_GL_MESA_window_pos: Boolean;
6842 var
6843 extstring: String;
6844 begin
6846 Result := FALSE;
6847 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6849 if glext_ExtensionSupported('GL_MESA_window_pos', extstring) then
6850 begin
6851 glWindowPos2dMESA := wglGetProcAddress('glWindowPos2dMESA');
6852 if not Assigned(glWindowPos2dMESA) then Exit;
6853 glWindowPos2fMESA := wglGetProcAddress('glWindowPos2fMESA');
6854 if not Assigned(glWindowPos2fMESA) then Exit;
6855 glWindowPos2iMESA := wglGetProcAddress('glWindowPos2iMESA');
6856 if not Assigned(glWindowPos2iMESA) then Exit;
6857 glWindowPos2sMESA := wglGetProcAddress('glWindowPos2sMESA');
6858 if not Assigned(glWindowPos2sMESA) then Exit;
6859 glWindowPos2ivMESA := wglGetProcAddress('glWindowPos2ivMESA');
6860 if not Assigned(glWindowPos2ivMESA) then Exit;
6861 glWindowPos2svMESA := wglGetProcAddress('glWindowPos2svMESA');
6862 if not Assigned(glWindowPos2svMESA) then Exit;
6863 glWindowPos2fvMESA := wglGetProcAddress('glWindowPos2fvMESA');
6864 if not Assigned(glWindowPos2fvMESA) then Exit;
6865 glWindowPos2dvMESA := wglGetProcAddress('glWindowPos2dvMESA');
6866 if not Assigned(glWindowPos2dvMESA) then Exit;
6867 glWindowPos3iMESA := wglGetProcAddress('glWindowPos3iMESA');
6868 if not Assigned(glWindowPos3iMESA) then Exit;
6869 glWindowPos3sMESA := wglGetProcAddress('glWindowPos3sMESA');
6870 if not Assigned(glWindowPos3sMESA) then Exit;
6871 glWindowPos3fMESA := wglGetProcAddress('glWindowPos3fMESA');
6872 if not Assigned(glWindowPos3fMESA) then Exit;
6873 glWindowPos3dMESA := wglGetProcAddress('glWindowPos3dMESA');
6874 if not Assigned(glWindowPos3dMESA) then Exit;
6875 glWindowPos3ivMESA := wglGetProcAddress('glWindowPos3ivMESA');
6876 if not Assigned(glWindowPos3ivMESA) then Exit;
6877 glWindowPos3svMESA := wglGetProcAddress('glWindowPos3svMESA');
6878 if not Assigned(glWindowPos3svMESA) then Exit;
6879 glWindowPos3fvMESA := wglGetProcAddress('glWindowPos3fvMESA');
6880 if not Assigned(glWindowPos3fvMESA) then Exit;
6881 glWindowPos3dvMESA := wglGetProcAddress('glWindowPos3dvMESA');
6882 if not Assigned(glWindowPos3dvMESA) then Exit;
6883 glWindowPos4iMESA := wglGetProcAddress('glWindowPos4iMESA');
6884 if not Assigned(glWindowPos4iMESA) then Exit;
6885 glWindowPos4sMESA := wglGetProcAddress('glWindowPos4sMESA');
6886 if not Assigned(glWindowPos4sMESA) then Exit;
6887 glWindowPos4fMESA := wglGetProcAddress('glWindowPos4fMESA');
6888 if not Assigned(glWindowPos4fMESA) then Exit;
6889 glWindowPos4dMESA := wglGetProcAddress('glWindowPos4dMESA');
6890 if not Assigned(glWindowPos4dMESA) then Exit;
6891 glWindowPos4ivMESA := wglGetProcAddress('glWindowPos4ivMESA');
6892 if not Assigned(glWindowPos4ivMESA) then Exit;
6893 glWindowPos4svMESA := wglGetProcAddress('glWindowPos4svMESA');
6894 if not Assigned(glWindowPos4svMESA) then Exit;
6895 glWindowPos4fvMESA := wglGetProcAddress('glWindowPos4fvMESA');
6896 if not Assigned(glWindowPos4fvMESA) then Exit;
6897 glWindowPos4dvMESA := wglGetProcAddress('glWindowPos4dvMESA');
6898 if not Assigned(glWindowPos4dvMESA) then Exit;
6899 Result := TRUE;
6900 end;
6902 end;
6904 function Load_GL_OML_interlace: Boolean;
6905 var
6906 extstring: String;
6907 begin
6909 Result := FALSE;
6910 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6912 if glext_ExtensionSupported('GL_OML_interlace', extstring) then
6913 begin
6914 Result := TRUE;
6915 end;
6917 end;
6919 function Load_GL_OML_resample: Boolean;
6920 var
6921 extstring: String;
6922 begin
6924 Result := FALSE;
6925 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6927 if glext_ExtensionSupported('GL_OML_resample', extstring) then
6928 begin
6929 Result := TRUE;
6930 end;
6932 end;
6934 function Load_GL_OML_subsample: Boolean;
6935 var
6936 extstring: String;
6937 begin
6939 Result := FALSE;
6940 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6942 if glext_ExtensionSupported('GL_OML_subsample', extstring) then
6943 begin
6944 Result := TRUE;
6945 end;
6947 end;
6949 function Load_GL_SGIS_generate_mipmap: Boolean;
6950 var
6951 extstring: String;
6952 begin
6954 Result := FALSE;
6955 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6957 if glext_ExtensionSupported('GL_SGIS_generate_mipmap', extstring) then
6958 begin
6959 Result := TRUE;
6960 end;
6962 end;
6964 function Load_GL_SGIS_multisample: Boolean;
6965 var
6966 extstring: String;
6967 begin
6969 Result := FALSE;
6970 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6972 if glext_ExtensionSupported('GL_SGIS_multisample', extstring) then
6973 begin
6974 glSampleMaskSGIS := wglGetProcAddress('glSampleMaskSGIS');
6975 if not Assigned(glSampleMaskSGIS) then Exit;
6976 glSamplePatternSGIS := wglGetProcAddress('glSamplePatternSGIS');
6977 if not Assigned(glSamplePatternSGIS) then Exit;
6978 Result := TRUE;
6979 end;
6981 end;
6983 function Load_GL_SGIS_pixel_texture: Boolean;
6984 var
6985 extstring: String;
6986 begin
6988 Result := FALSE;
6989 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
6991 if glext_ExtensionSupported('GL_SGIS_pixel_texture', extstring) then
6992 begin
6993 glPixelTexGenParameteriSGIS := wglGetProcAddress('glPixelTexGenParameteriSGIS');
6994 if not Assigned(glPixelTexGenParameteriSGIS) then Exit;
6995 glPixelTexGenParameterfSGIS := wglGetProcAddress('glPixelTexGenParameterfSGIS');
6996 if not Assigned(glPixelTexGenParameterfSGIS) then Exit;
6997 glGetPixelTexGenParameterivSGIS := wglGetProcAddress('glGetPixelTexGenParameterivSGIS');
6998 if not Assigned(glGetPixelTexGenParameterivSGIS) then Exit;
6999 glGetPixelTexGenParameterfvSGIS := wglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
7000 if not Assigned(glGetPixelTexGenParameterfvSGIS) then Exit;
7001 Result := TRUE;
7002 end;
7004 end;
7006 function Load_GL_SGIS_texture_border_clamp: Boolean;
7007 var
7008 extstring: String;
7009 begin
7011 Result := FALSE;
7012 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7014 if glext_ExtensionSupported('GL_SGIS_texture_border_clamp', extstring) then
7015 begin
7016 Result := TRUE;
7017 end;
7019 end;
7021 function Load_GL_SGIS_texture_color_mask: Boolean;
7022 var
7023 extstring: String;
7024 begin
7026 Result := FALSE;
7027 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7029 if glext_ExtensionSupported('GL_SGIS_texture_color_mask', extstring) then
7030 begin
7031 glTextureColorMaskSGIS := wglGetProcAddress('glTextureColorMaskSGIS');
7032 if not Assigned(glTextureColorMaskSGIS) then Exit;
7033 Result := TRUE;
7034 end;
7036 end;
7038 function Load_GL_SGIS_texture_edge_clamp: Boolean;
7039 var
7040 extstring: String;
7041 begin
7043 Result := FALSE;
7044 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7046 if glext_ExtensionSupported('GL_SGIS_texture_edge_clamp', extstring) then
7047 begin
7048 Result := TRUE;
7049 end;
7051 end;
7053 function Load_GL_SGIS_texture_lod: Boolean;
7054 var
7055 extstring: String;
7056 begin
7058 Result := FALSE;
7059 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7061 if glext_ExtensionSupported('GL_SGIS_texture_lod', extstring) then
7062 begin
7063 Result := TRUE;
7064 end;
7066 end;
7068 function Load_GL_SGIS_depth_texture: Boolean;
7069 var
7070 extstring: String;
7071 begin
7073 Result := FALSE;
7074 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7076 if glext_ExtensionSupported('GL_SGIS_depth_texture', extstring) then
7077 begin
7078 Result := TRUE;
7079 end;
7081 end;
7083 function Load_GL_SGIX_fog_offset: Boolean;
7084 var
7085 extstring: String;
7086 begin
7088 Result := FALSE;
7089 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7091 if glext_ExtensionSupported('GL_SGIX_fog_offset', extstring) then
7092 begin
7093 Result := TRUE;
7094 end;
7096 end;
7098 function Load_GL_SGIX_interlace: Boolean;
7099 var
7100 extstring: String;
7101 begin
7103 Result := FALSE;
7104 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7106 if glext_ExtensionSupported('GL_SGIX_interlace', extstring) then
7107 begin
7108 Result := TRUE;
7109 end;
7111 end;
7113 function Load_GL_SGIX_shadow_ambient: Boolean;
7114 var
7115 extstring: String;
7116 begin
7118 Result := FALSE;
7119 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7121 if glext_ExtensionSupported('GL_SGIX_shadow_ambient', extstring) then
7122 begin
7123 Result := TRUE;
7124 end;
7126 end;
7128 function Load_GL_SGI_color_matrix: Boolean;
7129 var
7130 extstring: String;
7131 begin
7133 Result := FALSE;
7134 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7136 if glext_ExtensionSupported('GL_SGI_color_matrix', extstring) then
7137 begin
7138 Result := TRUE;
7139 end;
7141 end;
7143 function Load_GL_SGI_color_table: Boolean;
7144 var
7145 extstring: String;
7146 begin
7148 Result := FALSE;
7149 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7151 if glext_ExtensionSupported('GL_SGI_color_table', extstring) then
7152 begin
7153 glColorTableSGI := wglGetProcAddress('glColorTableSGI');
7154 if not Assigned(glColorTableSGI) then Exit;
7155 glCopyColorTableSGI := wglGetProcAddress('glCopyColorTableSGI');
7156 if not Assigned(glCopyColorTableSGI) then Exit;
7157 glColorTableParameterivSGI := wglGetProcAddress('glColorTableParameterivSGI');
7158 if not Assigned(glColorTableParameterivSGI) then Exit;
7159 glColorTableParameterfvSGI := wglGetProcAddress('glColorTableParameterfvSGI');
7160 if not Assigned(glColorTableParameterfvSGI) then Exit;
7161 glGetColorTableSGI := wglGetProcAddress('glGetColorTableSGI');
7162 if not Assigned(glGetColorTableSGI) then Exit;
7163 glGetColorTableParameterivSGI := wglGetProcAddress('glGetColorTableParameterivSGI');
7164 if not Assigned(glGetColorTableParameterivSGI) then Exit;
7165 glGetColorTableParameterfvSGI := wglGetProcAddress('glGetColorTableParameterfvSGI');
7166 if not Assigned(glGetColorTableParameterfvSGI) then Exit;
7167 Result := TRUE;
7168 end;
7170 end;
7172 function Load_GL_SGI_texture_color_table: Boolean;
7173 var
7174 extstring: String;
7175 begin
7177 Result := FALSE;
7178 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7180 if glext_ExtensionSupported('GL_SGI_texture_color_table', extstring) then
7181 begin
7182 Result := TRUE;
7183 end;
7185 end;
7187 function Load_GL_SUN_vertex: Boolean;
7188 var
7189 extstring: String;
7190 begin
7192 Result := FALSE;
7193 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7195 if glext_ExtensionSupported('GL_SUN_vertex', extstring) then
7196 begin
7197 glColor4ubVertex2fSUN := wglGetProcAddress('glColor4ubVertex2fSUN');
7198 if not Assigned(glColor4ubVertex2fSUN) then Exit;
7199 glColor4ubVertex2fvSUN := wglGetProcAddress('glColor4ubVertex2fvSUN');
7200 if not Assigned(glColor4ubVertex2fvSUN) then Exit;
7201 glColor4ubVertex3fSUN := wglGetProcAddress('glColor4ubVertex3fSUN');
7202 if not Assigned(glColor4ubVertex3fSUN) then Exit;
7203 glColor4ubVertex3fvSUN := wglGetProcAddress('glColor4ubVertex3fvSUN');
7204 if not Assigned(glColor4ubVertex3fvSUN) then Exit;
7205 glColor3fVertex3fSUN := wglGetProcAddress('glColor3fVertex3fSUN');
7206 if not Assigned(glColor3fVertex3fSUN) then Exit;
7207 glColor3fVertex3fvSUN := wglGetProcAddress('glColor3fVertex3fvSUN');
7208 if not Assigned(glColor3fVertex3fvSUN) then Exit;
7209 glNormal3fVertex3fSUN := wglGetProcAddress('glNormal3fVertex3fSUN');
7210 if not Assigned(glNormal3fVertex3fSUN) then Exit;
7211 glNormal3fVertex3fvSUN := wglGetProcAddress('glNormal3fVertex3fvSUN');
7212 if not Assigned(glNormal3fVertex3fvSUN) then Exit;
7213 glColor4fNormal3fVertex3fSUN := wglGetProcAddress('glColor4fNormal3fVertex3fSUN');
7214 if not Assigned(glColor4fNormal3fVertex3fSUN) then Exit;
7215 glColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
7216 if not Assigned(glColor4fNormal3fVertex3fvSUN) then Exit;
7217 glTexCoord2fVertex3fSUN := wglGetProcAddress('glTexCoord2fVertex3fSUN');
7218 if not Assigned(glTexCoord2fVertex3fSUN) then Exit;
7219 glTexCoord2fVertex3fvSUN := wglGetProcAddress('glTexCoord2fVertex3fvSUN');
7220 if not Assigned(glTexCoord2fVertex3fvSUN) then Exit;
7221 glTexCoord4fVertex4fSUN := wglGetProcAddress('glTexCoord4fVertex4fSUN');
7222 if not Assigned(glTexCoord4fVertex4fSUN) then Exit;
7223 glTexCoord4fVertex4fvSUN := wglGetProcAddress('glTexCoord4fVertex4fvSUN');
7224 if not Assigned(glTexCoord4fVertex4fvSUN) then Exit;
7225 glTexCoord2fColor4ubVertex3fSUN := wglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
7226 if not Assigned(glTexCoord2fColor4ubVertex3fSUN) then Exit;
7227 glTexCoord2fColor4ubVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
7228 if not Assigned(glTexCoord2fColor4ubVertex3fvSUN) then Exit;
7229 glTexCoord2fColor3fVertex3fSUN := wglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
7230 if not Assigned(glTexCoord2fColor3fVertex3fSUN) then Exit;
7231 glTexCoord2fColor3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
7232 if not Assigned(glTexCoord2fColor3fVertex3fvSUN) then Exit;
7233 glTexCoord2fNormal3fVertex3fSUN := wglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
7234 if not Assigned(glTexCoord2fNormal3fVertex3fSUN) then Exit;
7235 glTexCoord2fNormal3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
7236 if not Assigned(glTexCoord2fNormal3fVertex3fvSUN) then Exit;
7237 glTexCoord2fColor4fNormal3fVertex3fSUN := wglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
7238 if not Assigned(glTexCoord2fColor4fNormal3fVertex3fSUN) then Exit;
7239 glTexCoord2fColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
7240 if not Assigned(glTexCoord2fColor4fNormal3fVertex3fvSUN) then Exit;
7241 glTexCoord4fColor4fNormal3fVertex4fSUN := wglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
7242 if not Assigned(glTexCoord4fColor4fNormal3fVertex4fSUN) then Exit;
7243 glTexCoord4fColor4fNormal3fVertex4fvSUN := wglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
7244 if not Assigned(glTexCoord4fColor4fNormal3fVertex4fvSUN) then Exit;
7245 glReplacementCodeuiVertex3fSUN := wglGetProcAddress('glReplacementCodeuiVertex3fSUN');
7246 if not Assigned(glReplacementCodeuiVertex3fSUN) then Exit;
7247 glReplacementCodeuiVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
7248 if not Assigned(glReplacementCodeuiVertex3fvSUN) then Exit;
7249 glReplacementCodeuiColor4ubVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
7250 if not Assigned(glReplacementCodeuiColor4ubVertex3fSUN) then Exit;
7251 glReplacementCodeuiColor4ubVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
7252 if not Assigned(glReplacementCodeuiColor4ubVertex3fvSUN) then Exit;
7253 glReplacementCodeuiColor3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
7254 if not Assigned(glReplacementCodeuiColor3fVertex3fSUN) then Exit;
7255 glReplacementCodeuiColor3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
7256 if not Assigned(glReplacementCodeuiColor3fVertex3fvSUN) then Exit;
7257 glReplacementCodeuiNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
7258 if not Assigned(glReplacementCodeuiNormal3fVertex3fSUN) then Exit;
7259 glReplacementCodeuiNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
7260 if not Assigned(glReplacementCodeuiNormal3fVertex3fvSUN) then Exit;
7261 glReplacementCodeuiColor4fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
7262 if not Assigned(glReplacementCodeuiColor4fNormal3fVertex3fSUN) then Exit;
7263 glReplacementCodeuiColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
7264 if not Assigned(glReplacementCodeuiColor4fNormal3fVertex3fvSUN) then Exit;
7265 glReplacementCodeuiTexCoord2fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
7266 if not Assigned(glReplacementCodeuiTexCoord2fVertex3fSUN) then Exit;
7267 glReplacementCodeuiTexCoord2fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
7268 if not Assigned(glReplacementCodeuiTexCoord2fVertex3fvSUN) then Exit;
7269 glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
7270 if not Assigned(glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) then Exit;
7271 glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
7272 if not Assigned(glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) then Exit;
7273 glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
7274 if not Assigned(glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) then Exit;
7275 glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
7276 if not Assigned(glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) then Exit;
7277 Result := TRUE;
7278 end;
7280 end;
7282 function Load_GL_ARB_fragment_program: Boolean;
7283 var
7284 extstring: String;
7285 begin
7287 Result := FALSE;
7288 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7290 if glext_ExtensionSupported('GL_ARB_fragment_program', extstring) then
7291 begin
7292 glProgramStringARB := wglGetProcAddress('glProgramStringARB');
7293 if not Assigned(glProgramStringARB) then Exit;
7294 glBindProgramARB := wglGetProcAddress('glBindProgramARB');
7295 if not Assigned(glBindProgramARB) then Exit;
7296 glDeleteProgramsARB := wglGetProcAddress('glDeleteProgramsARB');
7297 if not Assigned(glDeleteProgramsARB) then Exit;
7298 glGenProgramsARB := wglGetProcAddress('glGenProgramsARB');
7299 if not Assigned(glGenProgramsARB) then Exit;
7300 glProgramEnvParameter4dARB := wglGetProcAddress('glProgramEnvParameter4dARB');
7301 if not Assigned(glProgramEnvParameter4dARB) then Exit;
7302 glProgramEnvParameter4dvARB := wglGetProcAddress('glProgramEnvParameter4dvARB');
7303 if not Assigned(glProgramEnvParameter4dvARB) then Exit;
7304 glProgramEnvParameter4fARB := wglGetProcAddress('glProgramEnvParameter4fARB');
7305 if not Assigned(glProgramEnvParameter4fARB) then Exit;
7306 glProgramEnvParameter4fvARB := wglGetProcAddress('glProgramEnvParameter4fvARB');
7307 if not Assigned(glProgramEnvParameter4fvARB) then Exit;
7308 glProgramLocalParameter4dARB := wglGetProcAddress('glProgramLocalParameter4dARB');
7309 if not Assigned(glProgramLocalParameter4dARB) then Exit;
7310 glProgramLocalParameter4dvARB := wglGetProcAddress('glProgramLocalParameter4dvARB');
7311 if not Assigned(glProgramLocalParameter4dvARB) then Exit;
7312 glProgramLocalParameter4fARB := wglGetProcAddress('glProgramLocalParameter4fARB');
7313 if not Assigned(glProgramLocalParameter4fARB) then Exit;
7314 glProgramLocalParameter4fvARB := wglGetProcAddress('glProgramLocalParameter4fvARB');
7315 if not Assigned(glProgramLocalParameter4fvARB) then Exit;
7316 glGetProgramEnvParameterdvARB := wglGetProcAddress('glGetProgramEnvParameterdvARB');
7317 if not Assigned(glGetProgramEnvParameterdvARB) then Exit;
7318 glGetProgramEnvParameterfvARB := wglGetProcAddress('glGetProgramEnvParameterfvARB');
7319 if not Assigned(glGetProgramEnvParameterfvARB) then Exit;
7320 glGetProgramLocalParameterdvARB := wglGetProcAddress('glGetProgramLocalParameterdvARB');
7321 if not Assigned(glGetProgramLocalParameterdvARB) then Exit;
7322 glGetProgramLocalParameterfvARB := wglGetProcAddress('glGetProgramLocalParameterfvARB');
7323 if not Assigned(glGetProgramLocalParameterfvARB) then Exit;
7324 glGetProgramivARB := wglGetProcAddress('glGetProgramivARB');
7325 if not Assigned(glGetProgramivARB) then Exit;
7326 glGetProgramStringARB := wglGetProcAddress('glGetProgramStringARB');
7327 if not Assigned(glGetProgramStringARB) then Exit;
7328 glIsProgramARB := wglGetProcAddress('glIsProgramARB');
7329 if not Assigned(glIsProgramARB) then Exit;
7330 Result := TRUE;
7331 end;
7333 end;
7335 function Load_GL_ATI_text_fragment_shader: Boolean;
7336 var
7337 extstring: String;
7338 begin
7340 Result := FALSE;
7341 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7343 if glext_ExtensionSupported('GL_ATI_text_fragment_shader', extstring) then
7344 begin
7345 Result := TRUE;
7346 end;
7348 end;
7350 function Load_GL_APPLE_client_storage: Boolean;
7351 var
7352 extstring: String;
7353 begin
7355 Result := FALSE;
7356 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7358 if glext_ExtensionSupported('GL_APPLE_client_storage', extstring) then
7359 begin
7360 Result := TRUE;
7361 end;
7363 end;
7365 function Load_GL_APPLE_element_array: Boolean;
7366 var
7367 extstring: String;
7368 begin
7370 Result := FALSE;
7371 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7373 if glext_ExtensionSupported('GL_APPLE_element_array', extstring) then
7374 begin
7375 glElementPointerAPPLE := wglGetProcAddress('glElementPointerAPPLE');
7376 if not Assigned(glElementPointerAPPLE) then Exit;
7377 glDrawElementArrayAPPLE := wglGetProcAddress('glDrawElementArrayAPPLE');
7378 if not Assigned(glDrawElementArrayAPPLE) then Exit;
7379 glDrawRangeElementArrayAPPLE := wglGetProcAddress('glDrawRangeElementArrayAPPLE');
7380 if not Assigned(glDrawRangeElementArrayAPPLE) then Exit;
7381 glMultiDrawElementArrayAPPLE := wglGetProcAddress('glMultiDrawElementArrayAPPLE');
7382 if not Assigned(glMultiDrawElementArrayAPPLE) then Exit;
7383 glMultiDrawRangeElementArrayAPPLE := wglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
7384 if not Assigned(glMultiDrawRangeElementArrayAPPLE) then Exit;
7385 Result := TRUE;
7386 end;
7388 end;
7390 function Load_GL_APPLE_fence: Boolean;
7391 var
7392 extstring: String;
7393 begin
7395 Result := FALSE;
7396 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7398 if glext_ExtensionSupported('GL_APPLE_fence', extstring) then
7399 begin
7400 glGenFencesAPPLE := wglGetProcAddress('glGenFencesAPPLE');
7401 if not Assigned(glGenFencesAPPLE) then Exit;
7402 glDeleteFencesAPPLE := wglGetProcAddress('glDeleteFencesAPPLE');
7403 if not Assigned(glDeleteFencesAPPLE) then Exit;
7404 glSetFenceAPPLE := wglGetProcAddress('glSetFenceAPPLE');
7405 if not Assigned(glSetFenceAPPLE) then Exit;
7406 glIsFenceAPPLE := wglGetProcAddress('glIsFenceAPPLE');
7407 if not Assigned(glIsFenceAPPLE) then Exit;
7408 glTestFenceAPPLE := wglGetProcAddress('glTestFenceAPPLE');
7409 if not Assigned(glTestFenceAPPLE) then Exit;
7410 glFinishFenceAPPLE := wglGetProcAddress('glFinishFenceAPPLE');
7411 if not Assigned(glFinishFenceAPPLE) then Exit;
7412 glTestObjectAPPLE := wglGetProcAddress('glTestObjectAPPLE');
7413 if not Assigned(glTestObjectAPPLE) then Exit;
7414 glFinishObjectAPPLE := wglGetProcAddress('glFinishObjectAPPLE');
7415 if not Assigned(glFinishObjectAPPLE) then Exit;
7416 Result := TRUE;
7417 end;
7419 end;
7421 function Load_GL_APPLE_vertex_array_object: Boolean;
7422 var
7423 extstring: String;
7424 begin
7426 Result := FALSE;
7427 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7429 if glext_ExtensionSupported('GL_APPLE_vertex_array_object', extstring) then
7430 begin
7431 glBindVertexArrayAPPLE := wglGetProcAddress('glBindVertexArrayAPPLE');
7432 if not Assigned(glBindVertexArrayAPPLE) then Exit;
7433 glDeleteVertexArraysAPPLE := wglGetProcAddress('glDeleteVertexArraysAPPLE');
7434 if not Assigned(glDeleteVertexArraysAPPLE) then Exit;
7435 glGenVertexArraysAPPLE := wglGetProcAddress('glGenVertexArraysAPPLE');
7436 if not Assigned(glGenVertexArraysAPPLE) then Exit;
7437 glIsVertexArrayAPPLE := wglGetProcAddress('glIsVertexArrayAPPLE');
7438 if not Assigned(glIsVertexArrayAPPLE) then Exit;
7439 Result := TRUE;
7440 end;
7442 end;
7444 function Load_GL_APPLE_vertex_array_range: Boolean;
7445 var
7446 extstring: String;
7447 begin
7449 Result := FALSE;
7450 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7452 if glext_ExtensionSupported('GL_APPLE_vertex_array_range', extstring) then
7453 begin
7454 glVertexArrayRangeAPPLE := wglGetProcAddress('glVertexArrayRangeAPPLE');
7455 if not Assigned(glVertexArrayRangeAPPLE) then Exit;
7456 glFlushVertexArrayRangeAPPLE := wglGetProcAddress('glFlushVertexArrayRangeAPPLE');
7457 if not Assigned(glFlushVertexArrayRangeAPPLE) then Exit;
7458 glVertexArrayParameteriAPPLE := wglGetProcAddress('glVertexArrayParameteriAPPLE');
7459 if not Assigned(glVertexArrayParameteriAPPLE) then Exit;
7460 Result := TRUE;
7461 end;
7463 end;
7465 function Load_WGL_ARB_pixel_format: Boolean;
7466 var
7467 extstring: String;
7468 begin
7470 Result := FALSE;
7471 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7472 if not Assigned(wglGetExtensionsStringARB) then Exit;
7473 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7475 if glext_ExtensionSupported('WGL_ARB_pixel_format', extstring) then
7476 begin
7477 wglGetPixelFormatAttribivARB := wglGetProcAddress('wglGetPixelFormatAttribivARB');
7478 if not Assigned(wglGetPixelFormatAttribivARB) then Exit;
7479 wglGetPixelFormatAttribfvARB := wglGetProcAddress('wglGetPixelFormatAttribfvARB');
7480 if not Assigned(wglGetPixelFormatAttribfvARB) then Exit;
7481 wglChoosePixelFormatARB := wglGetProcAddress('wglChoosePixelFormatARB');
7482 if not Assigned(wglChoosePixelFormatARB) then Exit;
7483 Result := TRUE;
7484 end;
7486 end;
7488 function Load_WGL_ARB_make_current_read: Boolean;
7489 var
7490 extstring: String;
7491 begin
7493 Result := FALSE;
7494 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7495 if not Assigned(wglGetExtensionsStringARB) then Exit;
7496 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7498 if glext_ExtensionSupported('WGL_ARB_make_current_read', extstring) then
7499 begin
7500 wglMakeContextCurrentARB := wglGetProcAddress('wglMakeContextCurrentARB');
7501 if not Assigned(wglMakeContextCurrentARB) then Exit;
7502 wglGetCurrentReadDCARB := wglGetProcAddress('wglGetCurrentReadDCARB');
7503 if not Assigned(wglGetCurrentReadDCARB) then Exit;
7504 Result := TRUE;
7505 end;
7507 end;
7509 function Load_WGL_ARB_pbuffer: Boolean;
7510 var
7511 extstring: String;
7512 begin
7514 Result := FALSE;
7515 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7516 if not Assigned(wglGetExtensionsStringARB) then Exit;
7517 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7519 if glext_ExtensionSupported('WGL_ARB_pbuffer', extstring) then
7520 begin
7521 wglCreatePbufferARB := wglGetProcAddress('wglCreatePbufferARB');
7522 if not Assigned(wglCreatePbufferARB) then Exit;
7523 wglGetPbufferDCARB := wglGetProcAddress('wglGetPbufferDCARB');
7524 if not Assigned(wglGetPbufferDCARB) then Exit;
7525 wglReleasePbufferDCARB := wglGetProcAddress('wglReleasePbufferDCARB');
7526 if not Assigned(wglReleasePbufferDCARB) then Exit;
7527 wglDestroyPbufferARB := wglGetProcAddress('wglDestroyPbufferARB');
7528 if not Assigned(wglDestroyPbufferARB) then Exit;
7529 wglQueryPbufferARB := wglGetProcAddress('wglQueryPbufferARB');
7530 if not Assigned(wglQueryPbufferARB) then Exit;
7531 Result := TRUE;
7532 end;
7534 end;
7536 function Load_WGL_EXT_swap_control: Boolean;
7537 var
7538 extstring: String;
7539 begin
7541 Result := FALSE;
7542 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7543 if not Assigned(wglGetExtensionsStringARB) then Exit;
7544 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7546 if glext_ExtensionSupported('WGL_EXT_swap_control', extstring) then
7547 begin
7548 wglSwapIntervalEXT := wglGetProcAddress('wglSwapIntervalEXT');
7549 if not Assigned(wglSwapIntervalEXT) then Exit;
7550 wglGetSwapIntervalEXT := wglGetProcAddress('wglGetSwapIntervalEXT');
7551 if not Assigned(wglGetSwapIntervalEXT) then Exit;
7552 Result := TRUE;
7553 end;
7555 end;
7557 function Load_WGL_ARB_render_texture: Boolean;
7558 var
7559 extstring: String;
7560 begin
7562 Result := FALSE;
7563 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7564 if not Assigned(wglGetExtensionsStringARB) then Exit;
7565 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7567 if glext_ExtensionSupported('WGL_ARB_render_texture', extstring) then
7568 begin
7569 wglBindTexImageARB := wglGetProcAddress('wglBindTexImageARB');
7570 if not Assigned(wglBindTexImageARB) then Exit;
7571 wglReleaseTexImageARB := wglGetProcAddress('wglReleaseTexImageARB');
7572 if not Assigned(wglReleaseTexImageARB) then Exit;
7573 wglSetPbufferAttribARB := wglGetProcAddress('wglSetPbufferAttribARB');
7574 if not Assigned(wglSetPbufferAttribARB) then Exit;
7575 Result := TRUE;
7576 end;
7578 end;
7580 function Load_WGL_EXT_extensions_string: Boolean;
7581 var
7582 extstring: String;
7583 begin
7585 Result := FALSE;
7586 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7587 if not Assigned(wglGetExtensionsStringARB) then Exit;
7588 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7590 if glext_ExtensionSupported('WGL_EXT_extensions_string', extstring) then
7591 begin
7592 wglGetExtensionsStringEXT := wglGetProcAddress('wglGetExtensionsStringEXT');
7593 if not Assigned(wglGetExtensionsStringEXT) then Exit;
7594 Result := TRUE;
7595 end;
7597 end;
7599 function Load_WGL_EXT_make_current_read: Boolean;
7600 var
7601 extstring: String;
7602 begin
7604 Result := FALSE;
7605 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7606 if not Assigned(wglGetExtensionsStringARB) then Exit;
7607 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7609 if glext_ExtensionSupported('WGL_EXT_make_current_read', extstring) then
7610 begin
7611 wglMakeContextCurrentEXT := wglGetProcAddress('wglMakeContextCurrentEXT');
7612 if not Assigned(wglMakeContextCurrentEXT) then Exit;
7613 wglGetCurrentReadDCEXT := wglGetProcAddress('wglGetCurrentReadDCEXT');
7614 if not Assigned(wglGetCurrentReadDCEXT) then Exit;
7615 Result := TRUE;
7616 end;
7618 end;
7620 function Load_WGL_EXT_pbuffer: Boolean;
7621 var
7622 extstring: String;
7623 begin
7625 Result := FALSE;
7626 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7627 if not Assigned(wglGetExtensionsStringARB) then Exit;
7628 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7630 if glext_ExtensionSupported('WGL_EXT_pbuffer', extstring) then
7631 begin
7632 wglCreatePbufferEXT := wglGetProcAddress('wglCreatePbufferEXT');
7633 if not Assigned(wglCreatePbufferEXT) then Exit;
7634 wglGetPbufferDCEXT := wglGetProcAddress('wglGetPbufferDCEXT');
7635 if not Assigned(wglGetPbufferDCEXT) then Exit;
7636 wglReleasePbufferDCEXT := wglGetProcAddress('wglReleasePbufferDCEXT');
7637 if not Assigned(wglReleasePbufferDCEXT) then Exit;
7638 wglDestroyPbufferEXT := wglGetProcAddress('wglDestroyPbufferEXT');
7639 if not Assigned(wglDestroyPbufferEXT) then Exit;
7640 wglQueryPbufferEXT := wglGetProcAddress('wglQueryPbufferEXT');
7641 if not Assigned(wglQueryPbufferEXT) then Exit;
7642 Result := TRUE;
7643 end;
7645 end;
7647 function Load_WGL_EXT_pixel_format: Boolean;
7648 var
7649 extstring: String;
7650 begin
7652 Result := FALSE;
7653 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7654 if not Assigned(wglGetExtensionsStringARB) then Exit;
7655 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7657 if glext_ExtensionSupported('WGL_EXT_pixel_format', extstring) then
7658 begin
7659 wglGetPixelFormatAttribivEXT := wglGetProcAddress('wglGetPixelFormatAttribivEXT');
7660 if not Assigned(wglGetPixelFormatAttribivEXT) then Exit;
7661 wglGetPixelFormatAttribfvEXT := wglGetProcAddress('wglGetPixelFormatAttribfvEXT');
7662 if not Assigned(wglGetPixelFormatAttribfvEXT) then Exit;
7663 wglChoosePixelFormatEXT := wglGetProcAddress('wglChoosePixelFormatEXT');
7664 if not Assigned(wglChoosePixelFormatEXT) then Exit;
7665 Result := TRUE;
7666 end;
7668 end;
7670 function Load_WGL_I3D_digital_video_control: Boolean;
7671 var
7672 extstring: String;
7673 begin
7675 Result := FALSE;
7676 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7677 if not Assigned(wglGetExtensionsStringARB) then Exit;
7678 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7680 if glext_ExtensionSupported('WGL_I3D_digital_video_control', extstring) then
7681 begin
7682 wglGetDigitalVideoParametersI3D := wglGetProcAddress('wglGetDigitalVideoParametersI3D');
7683 if not Assigned(wglGetDigitalVideoParametersI3D) then Exit;
7684 wglSetDigitalVideoParametersI3D := wglGetProcAddress('wglSetDigitalVideoParametersI3D');
7685 if not Assigned(wglSetDigitalVideoParametersI3D) then Exit;
7686 Result := TRUE;
7687 end;
7689 end;
7691 function Load_WGL_I3D_gamma: Boolean;
7692 var
7693 extstring: String;
7694 begin
7696 Result := FALSE;
7697 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7698 if not Assigned(wglGetExtensionsStringARB) then Exit;
7699 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7701 if glext_ExtensionSupported('WGL_I3D_gamma', extstring) then
7702 begin
7703 wglGetGammaTableParametersI3D := wglGetProcAddress('wglGetGammaTableParametersI3D');
7704 if not Assigned(wglGetGammaTableParametersI3D) then Exit;
7705 wglSetGammaTableParametersI3D := wglGetProcAddress('wglSetGammaTableParametersI3D');
7706 if not Assigned(wglSetGammaTableParametersI3D) then Exit;
7707 wglGetGammaTableI3D := wglGetProcAddress('wglGetGammaTableI3D');
7708 if not Assigned(wglGetGammaTableI3D) then Exit;
7709 wglSetGammaTableI3D := wglGetProcAddress('wglSetGammaTableI3D');
7710 if not Assigned(wglSetGammaTableI3D) then Exit;
7711 Result := TRUE;
7712 end;
7714 end;
7716 function Load_WGL_I3D_genlock: Boolean;
7717 var
7718 extstring: String;
7719 begin
7721 Result := FALSE;
7722 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7723 if not Assigned(wglGetExtensionsStringARB) then Exit;
7724 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7726 if glext_ExtensionSupported('WGL_I3D_genlock', extstring) then
7727 begin
7728 wglEnableGenlockI3D := wglGetProcAddress('wglEnableGenlockI3D');
7729 if not Assigned(wglEnableGenlockI3D) then Exit;
7730 wglDisableGenlockI3D := wglGetProcAddress('wglDisableGenlockI3D');
7731 if not Assigned(wglDisableGenlockI3D) then Exit;
7732 wglIsEnabledGenlockI3D := wglGetProcAddress('wglIsEnabledGenlockI3D');
7733 if not Assigned(wglIsEnabledGenlockI3D) then Exit;
7734 wglGenlockSourceI3D := wglGetProcAddress('wglGenlockSourceI3D');
7735 if not Assigned(wglGenlockSourceI3D) then Exit;
7736 wglGetGenlockSourceI3D := wglGetProcAddress('wglGetGenlockSourceI3D');
7737 if not Assigned(wglGetGenlockSourceI3D) then Exit;
7738 wglGenlockSourceEdgeI3D := wglGetProcAddress('wglGenlockSourceEdgeI3D');
7739 if not Assigned(wglGenlockSourceEdgeI3D) then Exit;
7740 wglGetGenlockSourceEdgeI3D := wglGetProcAddress('wglGetGenlockSourceEdgeI3D');
7741 if not Assigned(wglGetGenlockSourceEdgeI3D) then Exit;
7742 wglGenlockSampleRateI3D := wglGetProcAddress('wglGenlockSampleRateI3D');
7743 if not Assigned(wglGenlockSampleRateI3D) then Exit;
7744 wglGetGenlockSampleRateI3D := wglGetProcAddress('wglGetGenlockSampleRateI3D');
7745 if not Assigned(wglGetGenlockSampleRateI3D) then Exit;
7746 wglGenlockSourceDelayI3D := wglGetProcAddress('wglGenlockSourceDelayI3D');
7747 if not Assigned(wglGenlockSourceDelayI3D) then Exit;
7748 wglGetGenlockSourceDelayI3D := wglGetProcAddress('wglGetGenlockSourceDelayI3D');
7749 if not Assigned(wglGetGenlockSourceDelayI3D) then Exit;
7750 wglQueryGenlockMaxSourceDelayI3D := wglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
7751 if not Assigned(wglQueryGenlockMaxSourceDelayI3D) then Exit;
7752 Result := TRUE;
7753 end;
7755 end;
7757 function Load_GL_ARB_matrix_palette: Boolean;
7758 var
7759 extstring: String;
7760 begin
7762 Result := FALSE;
7763 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7765 if glext_ExtensionSupported('GL_ARB_matrix_palette', extstring) then
7766 begin
7767 glCurrentPaletteMatrixARB := wglGetProcAddress('glCurrentPaletteMatrixARB');
7768 if not Assigned(glCurrentPaletteMatrixARB) then Exit;
7769 glMatrixIndexubvARB := wglGetProcAddress('glMatrixIndexubvARB');
7770 if not Assigned(glMatrixIndexubvARB) then Exit;
7771 glMatrixIndexusvARB := wglGetProcAddress('glMatrixIndexusvARB');
7772 if not Assigned(glMatrixIndexusvARB) then Exit;
7773 glMatrixIndexuivARB := wglGetProcAddress('glMatrixIndexuivARB');
7774 if not Assigned(glMatrixIndexuivARB) then Exit;
7775 glMatrixIndexPointerARB := wglGetProcAddress('glMatrixIndexPointerARB');
7776 if not Assigned(glMatrixIndexPointerARB) then Exit;
7777 Result := TRUE;
7778 end;
7780 end;
7782 function Load_GL_NV_element_array: Boolean;
7783 var
7784 extstring: String;
7785 begin
7787 Result := FALSE;
7788 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7790 if glext_ExtensionSupported('GL_NV_element_array', extstring) then
7791 begin
7792 glElementPointerNV := wglGetProcAddress('glElementPointerNV');
7793 if not Assigned(glElementPointerNV) then Exit;
7794 glDrawElementArrayNV := wglGetProcAddress('glDrawElementArrayNV');
7795 if not Assigned(glDrawElementArrayNV) then Exit;
7796 glDrawRangeElementArrayNV := wglGetProcAddress('glDrawRangeElementArrayNV');
7797 if not Assigned(glDrawRangeElementArrayNV) then Exit;
7798 glMultiDrawElementArrayNV := wglGetProcAddress('glMultiDrawElementArrayNV');
7799 if not Assigned(glMultiDrawElementArrayNV) then Exit;
7800 glMultiDrawRangeElementArrayNV := wglGetProcAddress('glMultiDrawRangeElementArrayNV');
7801 if not Assigned(glMultiDrawRangeElementArrayNV) then Exit;
7802 Result := TRUE;
7803 end;
7805 end;
7807 function Load_GL_NV_float_buffer: Boolean;
7808 var
7809 extstring: String;
7810 begin
7812 Result := FALSE;
7813 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7815 if glext_ExtensionSupported('GL_NV_float_buffer', extstring) then
7816 begin
7817 Result := TRUE;
7818 end;
7820 end;
7822 function Load_GL_NV_fragment_program: Boolean;
7823 var
7824 extstring: String;
7825 begin
7827 Result := FALSE;
7828 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7830 if glext_ExtensionSupported('GL_NV_fragment_program', extstring) then
7831 begin
7832 glProgramNamedParameter4fNV := wglGetProcAddress('glProgramNamedParameter4fNV');
7833 if not Assigned(glProgramNamedParameter4fNV) then Exit;
7834 glProgramNamedParameter4dNV := wglGetProcAddress('glProgramNamedParameter4dNV');
7835 if not Assigned(glProgramNamedParameter4dNV) then Exit;
7836 glGetProgramNamedParameterfvNV := wglGetProcAddress('glGetProgramNamedParameterfvNV');
7837 if not Assigned(glGetProgramNamedParameterfvNV) then Exit;
7838 glGetProgramNamedParameterdvNV := wglGetProcAddress('glGetProgramNamedParameterdvNV');
7839 if not Assigned(glGetProgramNamedParameterdvNV) then Exit;
7840 glProgramLocalParameter4dARB := wglGetProcAddress('glProgramLocalParameter4dARB');
7841 if not Assigned(glProgramLocalParameter4dARB) then Exit;
7842 glProgramLocalParameter4dvARB := wglGetProcAddress('glProgramLocalParameter4dvARB');
7843 if not Assigned(glProgramLocalParameter4dvARB) then Exit;
7844 glProgramLocalParameter4fARB := wglGetProcAddress('glProgramLocalParameter4fARB');
7845 if not Assigned(glProgramLocalParameter4fARB) then Exit;
7846 glProgramLocalParameter4fvARB := wglGetProcAddress('glProgramLocalParameter4fvARB');
7847 if not Assigned(glProgramLocalParameter4fvARB) then Exit;
7848 glGetProgramLocalParameterdvARB := wglGetProcAddress('glGetProgramLocalParameterdvARB');
7849 if not Assigned(glGetProgramLocalParameterdvARB) then Exit;
7850 glGetProgramLocalParameterfvARB := wglGetProcAddress('glGetProgramLocalParameterfvARB');
7851 if not Assigned(glGetProgramLocalParameterfvARB) then Exit;
7852 Result := TRUE;
7853 end;
7855 end;
7857 function Load_GL_NV_primitive_restart: Boolean;
7858 var
7859 extstring: String;
7860 begin
7862 Result := FALSE;
7863 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7865 if glext_ExtensionSupported('GL_NV_primitive_restart', extstring) then
7866 begin
7867 glPrimitiveRestartNV := wglGetProcAddress('glPrimitiveRestartNV');
7868 if not Assigned(glPrimitiveRestartNV) then Exit;
7869 glPrimitiveRestartIndexNV := wglGetProcAddress('glPrimitiveRestartIndexNV');
7870 if not Assigned(glPrimitiveRestartIndexNV) then Exit;
7871 Result := TRUE;
7872 end;
7874 end;
7876 function Load_GL_NV_vertex_program2: Boolean;
7877 var
7878 extstring: String;
7879 begin
7881 Result := FALSE;
7882 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7884 if glext_ExtensionSupported('GL_NV_vertex_program2', extstring) then
7885 begin
7886 Result := TRUE;
7887 end;
7889 end;
7891 function Load_WGL_NV_render_texture_rectangle: Boolean;
7892 var
7893 extstring: String;
7894 begin
7896 Result := FALSE;
7897 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7898 if not Assigned(wglGetExtensionsStringARB) then Exit;
7899 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7901 if glext_ExtensionSupported('WGL_NV_render_texture_rectangle', extstring) then
7902 begin
7903 Result := TRUE;
7904 end;
7906 end;
7908 function Load_GL_NV_pixel_data_range: Boolean;
7909 var
7910 extstring: String;
7911 begin
7913 Result := FALSE;
7914 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7916 if glext_ExtensionSupported('GL_NV_pixel_data_range', extstring) then
7917 begin
7918 glPixelDataRangeNV := wglGetProcAddress('glPixelDataRangeNV');
7919 if not Assigned(glPixelDataRangeNV) then Exit;
7920 glFlushPixelDataRangeNV := wglGetProcAddress('glFlushPixelDataRangeNV');
7921 if not Assigned(glFlushPixelDataRangeNV) then Exit;
7922 wglAllocateMemoryNV := wglGetProcAddress('wglAllocateMemoryNV');
7923 if not Assigned(wglAllocateMemoryNV) then Exit;
7924 wglFreeMemoryNV := wglGetProcAddress('wglFreeMemoryNV');
7925 if not Assigned(wglFreeMemoryNV) then Exit;
7926 Result := TRUE;
7927 end;
7929 end;
7931 function Load_GL_EXT_texture_rectangle: Boolean;
7932 var
7933 extstring: String;
7934 begin
7936 Result := FALSE;
7937 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7939 if glext_ExtensionSupported('GL_EXT_texture_rectangle', extstring) then
7940 begin
7941 Result := TRUE;
7942 end;
7944 end;
7946 function Load_GL_S3_s3tc: Boolean;
7947 var
7948 extstring: String;
7949 begin
7951 Result := FALSE;
7952 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7954 if glext_ExtensionSupported('GL_S3_s3tc', extstring) then
7955 begin
7956 Result := TRUE;
7957 end;
7959 end;
7961 function Load_GL_ATI_draw_buffers: Boolean;
7962 var
7963 extstring: String;
7964 begin
7966 Result := FALSE;
7967 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
7969 if glext_ExtensionSupported('GL_ATI_draw_buffers', extstring) then
7970 begin
7971 glDrawBuffersATI := wglGetProcAddress('glDrawBuffersATI');
7972 if not Assigned(glDrawBuffersATI) then Exit;
7973 Result := TRUE;
7974 end;
7976 end;
7978 function Load_WGL_ATI_pixel_format_float: Boolean;
7979 var
7980 extstring: String;
7981 begin
7983 Result := FALSE;
7984 wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
7985 if not Assigned(wglGetExtensionsStringARB) then Exit;
7986 extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
7988 if glext_ExtensionSupported('WGL_ATI_pixel_format_float', extstring) then
7989 begin
7990 Result := TRUE;
7991 end;
7993 end;
7995 function Load_GL_ATI_texture_env_combine3: Boolean;
7996 var
7997 extstring: String;
7998 begin
8000 Result := FALSE;
8001 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8003 if glext_ExtensionSupported('GL_ATI_texture_env_combine3', extstring) then
8004 begin
8005 Result := TRUE;
8006 end;
8008 end;
8010 function Load_GL_ATI_texture_float: Boolean;
8011 var
8012 extstring: String;
8013 begin
8015 Result := FALSE;
8016 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8018 if glext_ExtensionSupported('GL_ATI_texture_float', extstring) then
8019 begin
8020 Result := TRUE;
8021 end;
8023 end;
8025 function Load_GL_NV_texture_expand_normal: Boolean;
8026 var
8027 extstring: String;
8028 begin
8030 Result := FALSE;
8031 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8033 if glext_ExtensionSupported('GL_NV_texture_expand_normal', extstring) then
8034 begin
8035 Result := TRUE;
8036 end;
8038 end;
8040 function Load_GL_NV_half_float: Boolean;
8041 var
8042 extstring: String;
8043 begin
8045 Result := FALSE;
8046 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8048 if glext_ExtensionSupported('GL_NV_half_float', extstring) then
8049 begin
8050 glVertex2hNV := wglGetProcAddress('glVertex2hNV');
8051 if not Assigned(glVertex2hNV) then Exit;
8052 glVertex2hvNV := wglGetProcAddress('glVertex2hvNV');
8053 if not Assigned(glVertex2hvNV) then Exit;
8054 glVertex3hNV := wglGetProcAddress('glVertex3hNV');
8055 if not Assigned(glVertex3hNV) then Exit;
8056 glVertex3hvNV := wglGetProcAddress('glVertex3hvNV');
8057 if not Assigned(glVertex3hvNV) then Exit;
8058 glVertex4hNV := wglGetProcAddress('glVertex4hNV');
8059 if not Assigned(glVertex4hNV) then Exit;
8060 glVertex4hvNV := wglGetProcAddress('glVertex4hvNV');
8061 if not Assigned(glVertex4hvNV) then Exit;
8062 glNormal3hNV := wglGetProcAddress('glNormal3hNV');
8063 if not Assigned(glNormal3hNV) then Exit;
8064 glNormal3hvNV := wglGetProcAddress('glNormal3hvNV');
8065 if not Assigned(glNormal3hvNV) then Exit;
8066 glColor3hNV := wglGetProcAddress('glColor3hNV');
8067 if not Assigned(glColor3hNV) then Exit;
8068 glColor3hvNV := wglGetProcAddress('glColor3hvNV');
8069 if not Assigned(glColor3hvNV) then Exit;
8070 glColor4hNV := wglGetProcAddress('glColor4hNV');
8071 if not Assigned(glColor4hNV) then Exit;
8072 glColor4hvNV := wglGetProcAddress('glColor4hvNV');
8073 if not Assigned(glColor4hvNV) then Exit;
8074 glTexCoord1hNV := wglGetProcAddress('glTexCoord1hNV');
8075 if not Assigned(glTexCoord1hNV) then Exit;
8076 glTexCoord1hvNV := wglGetProcAddress('glTexCoord1hvNV');
8077 if not Assigned(glTexCoord1hvNV) then Exit;
8078 glTexCoord2hNV := wglGetProcAddress('glTexCoord2hNV');
8079 if not Assigned(glTexCoord2hNV) then Exit;
8080 glTexCoord2hvNV := wglGetProcAddress('glTexCoord2hvNV');
8081 if not Assigned(glTexCoord2hvNV) then Exit;
8082 glTexCoord3hNV := wglGetProcAddress('glTexCoord3hNV');
8083 if not Assigned(glTexCoord3hNV) then Exit;
8084 glTexCoord3hvNV := wglGetProcAddress('glTexCoord3hvNV');
8085 if not Assigned(glTexCoord3hvNV) then Exit;
8086 glTexCoord4hNV := wglGetProcAddress('glTexCoord4hNV');
8087 if not Assigned(glTexCoord4hNV) then Exit;
8088 glTexCoord4hvNV := wglGetProcAddress('glTexCoord4hvNV');
8089 if not Assigned(glTexCoord4hvNV) then Exit;
8090 glMultiTexCoord1hNV := wglGetProcAddress('glMultiTexCoord1hNV');
8091 if not Assigned(glMultiTexCoord1hNV) then Exit;
8092 glMultiTexCoord1hvNV := wglGetProcAddress('glMultiTexCoord1hvNV');
8093 if not Assigned(glMultiTexCoord1hvNV) then Exit;
8094 glMultiTexCoord2hNV := wglGetProcAddress('glMultiTexCoord2hNV');
8095 if not Assigned(glMultiTexCoord2hNV) then Exit;
8096 glMultiTexCoord2hvNV := wglGetProcAddress('glMultiTexCoord2hvNV');
8097 if not Assigned(glMultiTexCoord2hvNV) then Exit;
8098 glMultiTexCoord3hNV := wglGetProcAddress('glMultiTexCoord3hNV');
8099 if not Assigned(glMultiTexCoord3hNV) then Exit;
8100 glMultiTexCoord3hvNV := wglGetProcAddress('glMultiTexCoord3hvNV');
8101 if not Assigned(glMultiTexCoord3hvNV) then Exit;
8102 glMultiTexCoord4hNV := wglGetProcAddress('glMultiTexCoord4hNV');
8103 if not Assigned(glMultiTexCoord4hNV) then Exit;
8104 glMultiTexCoord4hvNV := wglGetProcAddress('glMultiTexCoord4hvNV');
8105 if not Assigned(glMultiTexCoord4hvNV) then Exit;
8106 glFogCoordhNV := wglGetProcAddress('glFogCoordhNV');
8107 if not Assigned(glFogCoordhNV) then Exit;
8108 glFogCoordhvNV := wglGetProcAddress('glFogCoordhvNV');
8109 if not Assigned(glFogCoordhvNV) then Exit;
8110 glSecondaryColor3hNV := wglGetProcAddress('glSecondaryColor3hNV');
8111 if not Assigned(glSecondaryColor3hNV) then Exit;
8112 glSecondaryColor3hvNV := wglGetProcAddress('glSecondaryColor3hvNV');
8113 if not Assigned(glSecondaryColor3hvNV) then Exit;
8114 glVertexWeighthNV := wglGetProcAddress('glVertexWeighthNV');
8115 if not Assigned(glVertexWeighthNV) then Exit;
8116 glVertexWeighthvNV := wglGetProcAddress('glVertexWeighthvNV');
8117 if not Assigned(glVertexWeighthvNV) then Exit;
8118 glVertexAttrib1hNV := wglGetProcAddress('glVertexAttrib1hNV');
8119 if not Assigned(glVertexAttrib1hNV) then Exit;
8120 glVertexAttrib1hvNV := wglGetProcAddress('glVertexAttrib1hvNV');
8121 if not Assigned(glVertexAttrib1hvNV) then Exit;
8122 glVertexAttrib2hNV := wglGetProcAddress('glVertexAttrib2hNV');
8123 if not Assigned(glVertexAttrib2hNV) then Exit;
8124 glVertexAttrib2hvNV := wglGetProcAddress('glVertexAttrib2hvNV');
8125 if not Assigned(glVertexAttrib2hvNV) then Exit;
8126 glVertexAttrib3hNV := wglGetProcAddress('glVertexAttrib3hNV');
8127 if not Assigned(glVertexAttrib3hNV) then Exit;
8128 glVertexAttrib3hvNV := wglGetProcAddress('glVertexAttrib3hvNV');
8129 if not Assigned(glVertexAttrib3hvNV) then Exit;
8130 glVertexAttrib4hNV := wglGetProcAddress('glVertexAttrib4hNV');
8131 if not Assigned(glVertexAttrib4hNV) then Exit;
8132 glVertexAttrib4hvNV := wglGetProcAddress('glVertexAttrib4hvNV');
8133 if not Assigned(glVertexAttrib4hvNV) then Exit;
8134 glVertexAttribs1hvNV := wglGetProcAddress('glVertexAttribs1hvNV');
8135 if not Assigned(glVertexAttribs1hvNV) then Exit;
8136 glVertexAttribs2hvNV := wglGetProcAddress('glVertexAttribs2hvNV');
8137 if not Assigned(glVertexAttribs2hvNV) then Exit;
8138 glVertexAttribs3hvNV := wglGetProcAddress('glVertexAttribs3hvNV');
8139 if not Assigned(glVertexAttribs3hvNV) then Exit;
8140 glVertexAttribs4hvNV := wglGetProcAddress('glVertexAttribs4hvNV');
8141 if not Assigned(glVertexAttribs4hvNV) then Exit;
8142 Result := TRUE;
8143 end;
8145 end;
8147 function Load_GL_ATI_map_object_buffer: Boolean;
8148 var
8149 extstring: String;
8150 begin
8152 Result := FALSE;
8153 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8155 if glext_ExtensionSupported('GL_ATI_map_object_buffer', extstring) then
8156 begin
8157 glMapObjectBufferATI := wglGetProcAddress('glMapObjectBufferATI');
8158 if not Assigned(glMapObjectBufferATI) then Exit;
8159 glUnmapObjectBufferATI := wglGetProcAddress('glUnmapObjectBufferATI');
8160 if not Assigned(glUnmapObjectBufferATI) then Exit;
8161 Result := TRUE;
8162 end;
8164 end;
8166 function Load_GL_ATI_separate_stencil: Boolean;
8167 var
8168 extstring: String;
8169 begin
8171 Result := FALSE;
8172 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8174 if glext_ExtensionSupported('GL_ATI_separate_stencil', extstring) then
8175 begin
8176 glStencilOpSeparateATI := wglGetProcAddress('glStencilOpSeparateATI');
8177 if not Assigned(glStencilOpSeparateATI) then Exit;
8178 glStencilFuncSeparateATI := wglGetProcAddress('glStencilFuncSeparateATI');
8179 if not Assigned(glStencilFuncSeparateATI) then Exit;
8180 Result := TRUE;
8181 end;
8183 end;
8185 function Load_GL_ATI_vertex_attrib_array_object: Boolean;
8186 var
8187 extstring: String;
8188 begin
8190 Result := FALSE;
8191 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8193 if glext_ExtensionSupported('GL_ATI_vertex_attrib_array_object', extstring) then
8194 begin
8195 glVertexAttribArrayObjectATI := wglGetProcAddress('glVertexAttribArrayObjectATI');
8196 if not Assigned(glVertexAttribArrayObjectATI) then Exit;
8197 glGetVertexAttribArrayObjectfvATI := wglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
8198 if not Assigned(glGetVertexAttribArrayObjectfvATI) then Exit;
8199 glGetVertexAttribArrayObjectivATI := wglGetProcAddress('glGetVertexAttribArrayObjectivATI');
8200 if not Assigned(glGetVertexAttribArrayObjectivATI) then Exit;
8201 Result := TRUE;
8202 end;
8204 end;
8206 function Load_GL_ARB_vertex_buffer_object: Boolean;
8207 var
8208 extstring: String;
8209 begin
8211 Result := FALSE;
8212 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8214 if glext_ExtensionSupported('GL_ARB_vertex_buffer_object', extstring) then
8215 begin
8216 glBindBufferARB := wglGetProcAddress('glBindBufferARB');
8217 if not Assigned(glBindBufferARB) then Exit;
8218 glDeleteBuffersARB := wglGetProcAddress('glDeleteBuffersARB');
8219 if not Assigned(glDeleteBuffersARB) then Exit;
8220 glGenBuffersARB := wglGetProcAddress('glGenBuffersARB');
8221 if not Assigned(glGenBuffersARB) then Exit;
8222 glIsBufferARB := wglGetProcAddress('glIsBufferARB');
8223 if not Assigned(glIsBufferARB) then Exit;
8224 glBufferDataARB := wglGetProcAddress('glBufferDataARB');
8225 if not Assigned(glBufferDataARB) then Exit;
8226 glBufferSubDataARB := wglGetProcAddress('glBufferSubDataARB');
8227 if not Assigned(glBufferSubDataARB) then Exit;
8228 glGetBufferSubDataARB := wglGetProcAddress('glGetBufferSubDataARB');
8229 if not Assigned(glGetBufferSubDataARB) then Exit;
8230 glMapBufferARB := wglGetProcAddress('glMapBufferARB');
8231 if not Assigned(glMapBufferARB) then Exit;
8232 glUnmapBufferARB := wglGetProcAddress('glUnmapBufferARB');
8233 if not Assigned(glUnmapBufferARB) then Exit;
8234 glGetBufferParameterivARB := wglGetProcAddress('glGetBufferParameterivARB');
8235 if not Assigned(glGetBufferParameterivARB) then Exit;
8236 glGetBufferPointervARB := wglGetProcAddress('glGetBufferPointervARB');
8237 if not Assigned(glGetBufferPointervARB) then Exit;
8238 Result := TRUE;
8239 end;
8241 end;
8243 function Load_GL_ARB_occlusion_query: Boolean;
8244 var
8245 extstring: String;
8246 begin
8248 Result := FALSE;
8249 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8251 if glext_ExtensionSupported('GL_ARB_occlusion_query', extstring) then
8252 begin
8253 glGenQueriesARB := wglGetProcAddress('glGenQueriesARB');
8254 if not Assigned(glGenQueriesARB) then Exit;
8255 glDeleteQueriesARB := wglGetProcAddress('glDeleteQueriesARB');
8256 if not Assigned(glDeleteQueriesARB) then Exit;
8257 glIsQueryARB := wglGetProcAddress('glIsQueryARB');
8258 if not Assigned(glIsQueryARB) then Exit;
8259 glBeginQueryARB := wglGetProcAddress('glBeginQueryARB');
8260 if not Assigned(glBeginQueryARB) then Exit;
8261 glEndQueryARB := wglGetProcAddress('glEndQueryARB');
8262 if not Assigned(glEndQueryARB) then Exit;
8263 glGetQueryivARB := wglGetProcAddress('glGetQueryivARB');
8264 if not Assigned(glGetQueryivARB) then Exit;
8265 glGetQueryObjectivARB := wglGetProcAddress('glGetQueryObjectivARB');
8266 if not Assigned(glGetQueryObjectivARB) then Exit;
8267 glGetQueryObjectuivARB := wglGetProcAddress('glGetQueryObjectuivARB');
8268 if not Assigned(glGetQueryObjectuivARB) then Exit;
8269 Result := TRUE;
8270 end;
8272 end;
8274 function Load_GL_ARB_shader_objects: Boolean;
8275 var
8276 extstring: String;
8277 begin
8279 Result := FALSE;
8280 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8282 if glext_ExtensionSupported('GL_ARB_shader_objects', extstring) then
8283 begin
8284 glDeleteObjectARB := wglGetProcAddress('glDeleteObjectARB');
8285 if not Assigned(glDeleteObjectARB) then Exit;
8286 glGetHandleARB := wglGetProcAddress('glGetHandleARB');
8287 if not Assigned(glGetHandleARB) then Exit;
8288 glDetachObjectARB := wglGetProcAddress('glDetachObjectARB');
8289 if not Assigned(glDetachObjectARB) then Exit;
8290 glCreateShaderObjectARB := wglGetProcAddress('glCreateShaderObjectARB');
8291 if not Assigned(glCreateShaderObjectARB) then Exit;
8292 glShaderSourceARB := wglGetProcAddress('glShaderSourceARB');
8293 if not Assigned(glShaderSourceARB) then Exit;
8294 glCompileShaderARB := wglGetProcAddress('glCompileShaderARB');
8295 if not Assigned(glCompileShaderARB) then Exit;
8296 glCreateProgramObjectARB := wglGetProcAddress('glCreateProgramObjectARB');
8297 if not Assigned(glCreateProgramObjectARB) then Exit;
8298 glAttachObjectARB := wglGetProcAddress('glAttachObjectARB');
8299 if not Assigned(glAttachObjectARB) then Exit;
8300 glLinkProgramARB := wglGetProcAddress('glLinkProgramARB');
8301 if not Assigned(glLinkProgramARB) then Exit;
8302 glUseProgramObjectARB := wglGetProcAddress('glUseProgramObjectARB');
8303 if not Assigned(glUseProgramObjectARB) then Exit;
8304 glValidateProgramARB := wglGetProcAddress('glValidateProgramARB');
8305 if not Assigned(glValidateProgramARB) then Exit;
8306 glUniform1fARB := wglGetProcAddress('glUniform1fARB');
8307 if not Assigned(glUniform1fARB) then Exit;
8308 glUniform2fARB := wglGetProcAddress('glUniform2fARB');
8309 if not Assigned(glUniform2fARB) then Exit;
8310 glUniform3fARB := wglGetProcAddress('glUniform3fARB');
8311 if not Assigned(glUniform3fARB) then Exit;
8312 glUniform4fARB := wglGetProcAddress('glUniform4fARB');
8313 if not Assigned(glUniform4fARB) then Exit;
8314 glUniform1iARB := wglGetProcAddress('glUniform1iARB');
8315 if not Assigned(glUniform1iARB) then Exit;
8316 glUniform2iARB := wglGetProcAddress('glUniform2iARB');
8317 if not Assigned(glUniform2iARB) then Exit;
8318 glUniform3iARB := wglGetProcAddress('glUniform3iARB');
8319 if not Assigned(glUniform3iARB) then Exit;
8320 glUniform4iARB := wglGetProcAddress('glUniform4iARB');
8321 if not Assigned(glUniform4iARB) then Exit;
8322 glUniform1fvARB := wglGetProcAddress('glUniform1fvARB');
8323 if not Assigned(glUniform1fvARB) then Exit;
8324 glUniform2fvARB := wglGetProcAddress('glUniform2fvARB');
8325 if not Assigned(glUniform2fvARB) then Exit;
8326 glUniform3fvARB := wglGetProcAddress('glUniform3fvARB');
8327 if not Assigned(glUniform3fvARB) then Exit;
8328 glUniform4fvARB := wglGetProcAddress('glUniform4fvARB');
8329 if not Assigned(glUniform4fvARB) then Exit;
8330 glUniform1ivARB := wglGetProcAddress('glUniform1ivARB');
8331 if not Assigned(glUniform1ivARB) then Exit;
8332 glUniform2ivARB := wglGetProcAddress('glUniform2ivARB');
8333 if not Assigned(glUniform2ivARB) then Exit;
8334 glUniform3ivARB := wglGetProcAddress('glUniform3ivARB');
8335 if not Assigned(glUniform3ivARB) then Exit;
8336 glUniform4ivARB := wglGetProcAddress('glUniform4ivARB');
8337 if not Assigned(glUniform4ivARB) then Exit;
8338 glUniformMatrix2fvARB := wglGetProcAddress('glUniformMatrix2fvARB');
8339 if not Assigned(glUniformMatrix2fvARB) then Exit;
8340 glUniformMatrix3fvARB := wglGetProcAddress('glUniformMatrix3fvARB');
8341 if not Assigned(glUniformMatrix3fvARB) then Exit;
8342 glUniformMatrix4fvARB := wglGetProcAddress('glUniformMatrix4fvARB');
8343 if not Assigned(glUniformMatrix4fvARB) then Exit;
8344 glGetObjectParameterfvARB := wglGetProcAddress('glGetObjectParameterfvARB');
8345 if not Assigned(glGetObjectParameterfvARB) then Exit;
8346 glGetObjectParameterivARB := wglGetProcAddress('glGetObjectParameterivARB');
8347 if not Assigned(glGetObjectParameterivARB) then Exit;
8348 glGetInfoLogARB := wglGetProcAddress('glGetInfoLogARB');
8349 if not Assigned(glGetInfoLogARB) then Exit;
8350 glGetAttachedObjectsARB := wglGetProcAddress('glGetAttachedObjectsARB');
8351 if not Assigned(glGetAttachedObjectsARB) then Exit;
8352 glGetUniformLocationARB := wglGetProcAddress('glGetUniformLocationARB');
8353 if not Assigned(glGetUniformLocationARB) then Exit;
8354 glGetActiveUniformARB := wglGetProcAddress('glGetActiveUniformARB');
8355 if not Assigned(glGetActiveUniformARB) then Exit;
8356 glGetUniformfvARB := wglGetProcAddress('glGetUniformfvARB');
8357 if not Assigned(glGetUniformfvARB) then Exit;
8358 glGetUniformivARB := wglGetProcAddress('glGetUniformivARB');
8359 if not Assigned(glGetUniformivARB) then Exit;
8360 glGetShaderSourceARB := wglGetProcAddress('glGetShaderSourceARB');
8361 if not Assigned(glGetShaderSourceARB) then Exit;
8362 Result := TRUE;
8363 end;
8365 end;
8367 function Load_GL_ARB_vertex_shader: Boolean;
8368 var
8369 extstring: String;
8370 begin
8372 Result := FALSE;
8373 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8375 if glext_ExtensionSupported('GL_ARB_vertex_shader', extstring) then
8376 begin
8377 glVertexAttrib1fARB := wglGetProcAddress('glVertexAttrib1fARB');
8378 if not Assigned(glVertexAttrib1fARB) then Exit;
8379 glVertexAttrib1sARB := wglGetProcAddress('glVertexAttrib1sARB');
8380 if not Assigned(glVertexAttrib1sARB) then Exit;
8381 glVertexAttrib1dARB := wglGetProcAddress('glVertexAttrib1dARB');
8382 if not Assigned(glVertexAttrib1dARB) then Exit;
8383 glVertexAttrib2fARB := wglGetProcAddress('glVertexAttrib2fARB');
8384 if not Assigned(glVertexAttrib2fARB) then Exit;
8385 glVertexAttrib2sARB := wglGetProcAddress('glVertexAttrib2sARB');
8386 if not Assigned(glVertexAttrib2sARB) then Exit;
8387 glVertexAttrib2dARB := wglGetProcAddress('glVertexAttrib2dARB');
8388 if not Assigned(glVertexAttrib2dARB) then Exit;
8389 glVertexAttrib3fARB := wglGetProcAddress('glVertexAttrib3fARB');
8390 if not Assigned(glVertexAttrib3fARB) then Exit;
8391 glVertexAttrib3sARB := wglGetProcAddress('glVertexAttrib3sARB');
8392 if not Assigned(glVertexAttrib3sARB) then Exit;
8393 glVertexAttrib3dARB := wglGetProcAddress('glVertexAttrib3dARB');
8394 if not Assigned(glVertexAttrib3dARB) then Exit;
8395 glVertexAttrib4fARB := wglGetProcAddress('glVertexAttrib4fARB');
8396 if not Assigned(glVertexAttrib4fARB) then Exit;
8397 glVertexAttrib4sARB := wglGetProcAddress('glVertexAttrib4sARB');
8398 if not Assigned(glVertexAttrib4sARB) then Exit;
8399 glVertexAttrib4dARB := wglGetProcAddress('glVertexAttrib4dARB');
8400 if not Assigned(glVertexAttrib4dARB) then Exit;
8401 glVertexAttrib4NubARB := wglGetProcAddress('glVertexAttrib4NubARB');
8402 if not Assigned(glVertexAttrib4NubARB) then Exit;
8403 glVertexAttrib1fvARB := wglGetProcAddress('glVertexAttrib1fvARB');
8404 if not Assigned(glVertexAttrib1fvARB) then Exit;
8405 glVertexAttrib1svARB := wglGetProcAddress('glVertexAttrib1svARB');
8406 if not Assigned(glVertexAttrib1svARB) then Exit;
8407 glVertexAttrib1dvARB := wglGetProcAddress('glVertexAttrib1dvARB');
8408 if not Assigned(glVertexAttrib1dvARB) then Exit;
8409 glVertexAttrib2fvARB := wglGetProcAddress('glVertexAttrib2fvARB');
8410 if not Assigned(glVertexAttrib2fvARB) then Exit;
8411 glVertexAttrib2svARB := wglGetProcAddress('glVertexAttrib2svARB');
8412 if not Assigned(glVertexAttrib2svARB) then Exit;
8413 glVertexAttrib2dvARB := wglGetProcAddress('glVertexAttrib2dvARB');
8414 if not Assigned(glVertexAttrib2dvARB) then Exit;
8415 glVertexAttrib3fvARB := wglGetProcAddress('glVertexAttrib3fvARB');
8416 if not Assigned(glVertexAttrib3fvARB) then Exit;
8417 glVertexAttrib3svARB := wglGetProcAddress('glVertexAttrib3svARB');
8418 if not Assigned(glVertexAttrib3svARB) then Exit;
8419 glVertexAttrib3dvARB := wglGetProcAddress('glVertexAttrib3dvARB');
8420 if not Assigned(glVertexAttrib3dvARB) then Exit;
8421 glVertexAttrib4fvARB := wglGetProcAddress('glVertexAttrib4fvARB');
8422 if not Assigned(glVertexAttrib4fvARB) then Exit;
8423 glVertexAttrib4svARB := wglGetProcAddress('glVertexAttrib4svARB');
8424 if not Assigned(glVertexAttrib4svARB) then Exit;
8425 glVertexAttrib4dvARB := wglGetProcAddress('glVertexAttrib4dvARB');
8426 if not Assigned(glVertexAttrib4dvARB) then Exit;
8427 glVertexAttrib4ivARB := wglGetProcAddress('glVertexAttrib4ivARB');
8428 if not Assigned(glVertexAttrib4ivARB) then Exit;
8429 glVertexAttrib4bvARB := wglGetProcAddress('glVertexAttrib4bvARB');
8430 if not Assigned(glVertexAttrib4bvARB) then Exit;
8431 glVertexAttrib4ubvARB := wglGetProcAddress('glVertexAttrib4ubvARB');
8432 if not Assigned(glVertexAttrib4ubvARB) then Exit;
8433 glVertexAttrib4usvARB := wglGetProcAddress('glVertexAttrib4usvARB');
8434 if not Assigned(glVertexAttrib4usvARB) then Exit;
8435 glVertexAttrib4uivARB := wglGetProcAddress('glVertexAttrib4uivARB');
8436 if not Assigned(glVertexAttrib4uivARB) then Exit;
8437 glVertexAttrib4NbvARB := wglGetProcAddress('glVertexAttrib4NbvARB');
8438 if not Assigned(glVertexAttrib4NbvARB) then Exit;
8439 glVertexAttrib4NsvARB := wglGetProcAddress('glVertexAttrib4NsvARB');
8440 if not Assigned(glVertexAttrib4NsvARB) then Exit;
8441 glVertexAttrib4NivARB := wglGetProcAddress('glVertexAttrib4NivARB');
8442 if not Assigned(glVertexAttrib4NivARB) then Exit;
8443 glVertexAttrib4NubvARB := wglGetProcAddress('glVertexAttrib4NubvARB');
8444 if not Assigned(glVertexAttrib4NubvARB) then Exit;
8445 glVertexAttrib4NusvARB := wglGetProcAddress('glVertexAttrib4NusvARB');
8446 if not Assigned(glVertexAttrib4NusvARB) then Exit;
8447 glVertexAttrib4NuivARB := wglGetProcAddress('glVertexAttrib4NuivARB');
8448 if not Assigned(glVertexAttrib4NuivARB) then Exit;
8449 glVertexAttribPointerARB := wglGetProcAddress('glVertexAttribPointerARB');
8450 if not Assigned(glVertexAttribPointerARB) then Exit;
8451 glEnableVertexAttribArrayARB := wglGetProcAddress('glEnableVertexAttribArrayARB');
8452 if not Assigned(glEnableVertexAttribArrayARB) then Exit;
8453 glDisableVertexAttribArrayARB := wglGetProcAddress('glDisableVertexAttribArrayARB');
8454 if not Assigned(glDisableVertexAttribArrayARB) then Exit;
8455 glBindAttribLocationARB := wglGetProcAddress('glBindAttribLocationARB');
8456 if not Assigned(glBindAttribLocationARB) then Exit;
8457 glGetActiveAttribARB := wglGetProcAddress('glGetActiveAttribARB');
8458 if not Assigned(glGetActiveAttribARB) then Exit;
8459 glGetAttribLocationARB := wglGetProcAddress('glGetAttribLocationARB');
8460 if not Assigned(glGetAttribLocationARB) then Exit;
8461 glGetVertexAttribdvARB := wglGetProcAddress('glGetVertexAttribdvARB');
8462 if not Assigned(glGetVertexAttribdvARB) then Exit;
8463 glGetVertexAttribfvARB := wglGetProcAddress('glGetVertexAttribfvARB');
8464 if not Assigned(glGetVertexAttribfvARB) then Exit;
8465 glGetVertexAttribivARB := wglGetProcAddress('glGetVertexAttribivARB');
8466 if not Assigned(glGetVertexAttribivARB) then Exit;
8467 glGetVertexAttribPointervARB := wglGetProcAddress('glGetVertexAttribPointervARB');
8468 if not Assigned(glGetVertexAttribPointervARB) then Exit;
8469 Result := TRUE;
8470 end;
8472 end;
8474 function Load_GL_ARB_fragment_shader: Boolean;
8475 var
8476 extstring: String;
8477 begin
8479 Result := FALSE;
8480 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8482 if glext_ExtensionSupported('GL_ARB_fragment_shader', extstring) then
8483 begin
8484 Result := TRUE;
8485 end;
8487 end;
8489 function Load_GL_ARB_shading_language_100: Boolean;
8490 var
8491 extstring: String;
8492 begin
8494 Result := FALSE;
8495 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8497 if glext_ExtensionSupported('GL_ARB_shading_language_100', extstring) then
8498 begin
8499 Result := TRUE;
8500 end;
8502 end;
8504 function Load_GL_ARB_texture_non_power_of_two: Boolean;
8505 var
8506 extstring: String;
8507 begin
8509 Result := FALSE;
8510 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8512 if glext_ExtensionSupported('GL_ARB_texture_non_power_of_two', extstring) then
8513 begin
8514 Result := TRUE;
8515 end;
8517 end;
8519 function Load_GL_ARB_point_sprite: Boolean;
8520 var
8521 extstring: String;
8522 begin
8524 Result := FALSE;
8525 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8527 if glext_ExtensionSupported('GL_ARB_point_sprite', extstring) then
8528 begin
8529 Result := TRUE;
8530 end;
8532 end;
8534 function Load_GL_EXT_depth_bounds_test: Boolean;
8535 var
8536 extstring: String;
8537 begin
8539 Result := FALSE;
8540 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8542 if glext_ExtensionSupported('GL_EXT_depth_bounds_test', extstring) then
8543 begin
8544 glDepthBoundsEXT := wglGetProcAddress('glDepthBoundsEXT');
8545 if not Assigned(glDepthBoundsEXT) then Exit;
8546 Result := TRUE;
8547 end;
8549 end;
8551 function Load_GL_EXT_secondary_color: Boolean;
8552 var
8553 extstring: String;
8554 begin
8556 Result := FALSE;
8557 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8559 if glext_ExtensionSupported('GL_EXT_secondary_color', extstring) then
8560 begin
8561 glSecondaryColor3bEXT := wglGetProcAddress('glSecondaryColor3bEXT');
8562 if not Assigned(glSecondaryColor3bEXT) then Exit;
8563 glSecondaryColor3sEXT := wglGetProcAddress('glSecondaryColor3sEXT');
8564 if not Assigned(glSecondaryColor3sEXT) then Exit;
8565 glSecondaryColor3iEXT := wglGetProcAddress('glSecondaryColor3iEXT');
8566 if not Assigned(glSecondaryColor3iEXT) then Exit;
8567 glSecondaryColor3fEXT := wglGetProcAddress('glSecondaryColor3fEXT');
8568 if not Assigned(glSecondaryColor3fEXT) then Exit;
8569 glSecondaryColor3dEXT := wglGetProcAddress('glSecondaryColor3dEXT');
8570 if not Assigned(glSecondaryColor3dEXT) then Exit;
8571 glSecondaryColor3ubEXT := wglGetProcAddress('glSecondaryColor3ubEXT');
8572 if not Assigned(glSecondaryColor3ubEXT) then Exit;
8573 glSecondaryColor3usEXT := wglGetProcAddress('glSecondaryColor3usEXT');
8574 if not Assigned(glSecondaryColor3usEXT) then Exit;
8575 glSecondaryColor3uiEXT := wglGetProcAddress('glSecondaryColor3uiEXT');
8576 if not Assigned(glSecondaryColor3uiEXT) then Exit;
8577 glSecondaryColor3bvEXT := wglGetProcAddress('glSecondaryColor3bvEXT');
8578 if not Assigned(glSecondaryColor3bvEXT) then Exit;
8579 glSecondaryColor3svEXT := wglGetProcAddress('glSecondaryColor3svEXT');
8580 if not Assigned(glSecondaryColor3svEXT) then Exit;
8581 glSecondaryColor3ivEXT := wglGetProcAddress('glSecondaryColor3ivEXT');
8582 if not Assigned(glSecondaryColor3ivEXT) then Exit;
8583 glSecondaryColor3fvEXT := wglGetProcAddress('glSecondaryColor3fvEXT');
8584 if not Assigned(glSecondaryColor3fvEXT) then Exit;
8585 glSecondaryColor3dvEXT := wglGetProcAddress('glSecondaryColor3dvEXT');
8586 if not Assigned(glSecondaryColor3dvEXT) then Exit;
8587 glSecondaryColor3ubvEXT := wglGetProcAddress('glSecondaryColor3ubvEXT');
8588 if not Assigned(glSecondaryColor3ubvEXT) then Exit;
8589 glSecondaryColor3usvEXT := wglGetProcAddress('glSecondaryColor3usvEXT');
8590 if not Assigned(glSecondaryColor3usvEXT) then Exit;
8591 glSecondaryColor3uivEXT := wglGetProcAddress('glSecondaryColor3uivEXT');
8592 if not Assigned(glSecondaryColor3uivEXT) then Exit;
8593 glSecondaryColorPointerEXT := wglGetProcAddress('glSecondaryColorPointerEXT');
8594 if not Assigned(glSecondaryColorPointerEXT) then Exit;
8595 Result := TRUE;
8596 end;
8598 end;
8600 function Load_GL_EXT_texture_mirror_clamp: Boolean;
8601 var
8602 extstring: String;
8603 begin
8605 Result := FALSE;
8606 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8608 if glext_ExtensionSupported('GL_EXT_texture_mirror_clamp', extstring) then
8609 begin
8610 Result := TRUE;
8611 end;
8613 end;
8615 function Load_GL_EXT_blend_equation_separate: Boolean;
8616 var
8617 extstring: String;
8618 begin
8620 Result := FALSE;
8621 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8623 if glext_ExtensionSupported('GL_EXT_blend_equation_separate', extstring) then
8624 begin
8625 glBlendEquationSeparateEXT := wglGetProcAddress('glBlendEquationSeparateEXT');
8626 if not Assigned(glBlendEquationSeparateEXT) then Exit;
8627 Result := TRUE;
8628 end;
8630 end;
8632 function Load_GL_MESA_pack_invert: Boolean;
8633 var
8634 extstring: String;
8635 begin
8637 Result := FALSE;
8638 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8640 if glext_ExtensionSupported('GL_MESA_pack_invert', extstring) then
8641 begin
8642 Result := TRUE;
8643 end;
8645 end;
8647 function Load_GL_MESA_ycbcr_texture: Boolean;
8648 var
8649 extstring: String;
8650 begin
8652 Result := FALSE;
8653 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8655 if glext_ExtensionSupported('GL_MESA_ycbcr_texture', extstring) then
8656 begin
8657 Result := TRUE;
8658 end;
8660 end;
8662 function Load_GL_ARB_fragment_program_shadow: Boolean;
8663 var
8664 extstring: String;
8665 begin
8667 Result := FALSE;
8668 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8670 if glext_ExtensionSupported('GL_ARB_fragment_program_shadow', extstring) then
8671 begin
8672 Result := TRUE;
8673 end;
8675 end;
8677 function Load_GL_EXT_fog_coord: Boolean;
8678 var
8679 extstring: String;
8680 begin
8682 Result := FALSE;
8683 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8685 if glext_ExtensionSupported('GL_EXT_fog_coord', extstring) then
8686 begin
8687 glFogCoordfEXT := wglGetProcAddress('glFogCoordfEXT');
8688 if not Assigned(glFogCoordfEXT) then Exit;
8689 glFogCoorddEXT := wglGetProcAddress('glFogCoorddEXT');
8690 if not Assigned(glFogCoorddEXT) then Exit;
8691 glFogCoordfvEXT := wglGetProcAddress('glFogCoordfvEXT');
8692 if not Assigned(glFogCoordfvEXT) then Exit;
8693 glFogCoorddvEXT := wglGetProcAddress('glFogCoorddvEXT');
8694 if not Assigned(glFogCoorddvEXT) then Exit;
8695 glFogCoordPointerEXT := wglGetProcAddress('glFogCoordPointerEXT');
8696 if not Assigned(glFogCoordPointerEXT) then Exit;
8697 Result := TRUE;
8698 end;
8700 end;
8702 function Load_GL_NV_fragment_program_option: Boolean;
8703 var
8704 extstring: String;
8705 begin
8707 Result := FALSE;
8708 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8710 if glext_ExtensionSupported('GL_NV_fragment_program_option', extstring) then
8711 begin
8712 Result := TRUE;
8713 end;
8715 end;
8717 function Load_GL_EXT_pixel_buffer_object: Boolean;
8718 var
8719 extstring: String;
8720 begin
8722 Result := FALSE;
8723 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8725 if glext_ExtensionSupported('GL_EXT_pixel_buffer_object', extstring) then
8726 begin
8727 Result := TRUE;
8728 end;
8730 end;
8732 function Load_GL_NV_fragment_program2: Boolean;
8733 var
8734 extstring: String;
8735 begin
8737 Result := FALSE;
8738 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8740 if glext_ExtensionSupported('GL_NV_fragment_program2', extstring) then
8741 begin
8742 Result := TRUE;
8743 end;
8745 end;
8747 function Load_GL_NV_vertex_program2_option: Boolean;
8748 var
8749 extstring: String;
8750 begin
8752 Result := FALSE;
8753 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8755 if glext_ExtensionSupported('GL_NV_vertex_program2_option', extstring) then
8756 begin
8757 Result := TRUE;
8758 end;
8760 end;
8762 function Load_GL_NV_vertex_program3: Boolean;
8763 var
8764 extstring: String;
8765 begin
8767 Result := FALSE;
8768 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8770 if glext_ExtensionSupported('GL_NV_vertex_program3', extstring) then
8771 begin
8772 Result := TRUE;
8773 end;
8775 end;
8777 function Load_GL_ARB_draw_buffers: Boolean;
8778 var
8779 extstring: String;
8780 begin
8782 Result := FALSE;
8783 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8785 if glext_ExtensionSupported('GL_ARB_draw_buffers', extstring) then
8786 begin
8787 glDrawBuffersARB := wglGetProcAddress('glDrawBuffersARB');
8788 if not Assigned(glDrawBuffersARB) then Exit;
8789 Result := TRUE;
8790 end;
8792 end;
8794 function Load_GL_ARB_texture_rectangle: Boolean;
8795 var
8796 extstring: String;
8797 begin
8799 Result := FALSE;
8800 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8802 if glext_ExtensionSupported('GL_ARB_texture_rectangle', extstring) then
8803 begin
8804 Result := TRUE;
8805 end;
8807 end;
8809 function Load_GL_ARB_color_buffer_float: Boolean;
8810 var
8811 extstring: String;
8812 begin
8814 Result := FALSE;
8815 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8817 if glext_ExtensionSupported('GL_ARB_color_buffer_float', extstring) then
8818 begin
8819 glClampColorARB := wglGetProcAddress('glClampColorARB');
8820 if not Assigned(glClampColorARB) then Exit;
8821 Result := TRUE;
8822 end;
8824 end;
8826 function Load_GL_ARB_half_float_pixel: Boolean;
8827 var
8828 extstring: String;
8829 begin
8831 Result := FALSE;
8832 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8834 if glext_ExtensionSupported('GL_ARB_half_float_pixel', extstring) then
8835 begin
8836 Result := TRUE;
8837 end;
8839 end;
8841 function Load_GL_ARB_texture_float: Boolean;
8842 var
8843 extstring: String;
8844 begin
8846 Result := FALSE;
8847 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8849 if glext_ExtensionSupported('GL_ARB_texture_float', extstring) then
8850 begin
8851 Result := TRUE;
8852 end;
8854 end;
8856 function Load_GL_EXT_texture_compression_dxt1: Boolean;
8857 var
8858 extstring: String;
8859 begin
8861 Result := FALSE;
8862 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8864 if glext_ExtensionSupported('GL_EXT_texture_compression_dxt1', extstring) then
8865 begin
8866 Result := TRUE;
8867 end;
8869 end;
8871 function Load_GL_ARB_pixel_buffer_object: Boolean;
8872 var
8873 extstring: String;
8874 begin
8876 Result := FALSE;
8877 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8879 if glext_ExtensionSupported('GL_ARB_pixel_buffer_object', extstring) then
8880 begin
8881 Result := TRUE;
8882 end;
8884 end;
8886 function Load_GL_EXT_framebuffer_object: Boolean;
8887 var
8888 extstring: String;
8889 begin
8891 Result := FALSE;
8892 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8894 if glext_ExtensionSupported('GL_EXT_framebuffer_object', extstring) then
8895 begin
8896 glIsRenderbufferEXT := wglGetProcAddress('glIsRenderbufferEXT');
8897 if not Assigned(glIsRenderbufferEXT) then Exit;
8898 glBindRenderbufferEXT := wglGetProcAddress('glBindRenderbufferEXT');
8899 if not Assigned(glBindRenderbufferEXT) then Exit;
8900 glDeleteRenderbuffersEXT := wglGetProcAddress('glDeleteRenderbuffersEXT');
8901 if not Assigned(glDeleteRenderbuffersEXT) then Exit;
8902 glGenRenderbuffersEXT := wglGetProcAddress('glGenRenderbuffersEXT');
8903 if not Assigned(glGenRenderbuffersEXT) then Exit;
8904 glRenderbufferStorageEXT := wglGetProcAddress('glRenderbufferStorageEXT');
8905 if not Assigned(glRenderbufferStorageEXT) then Exit;
8906 glGetRenderbufferParameterivEXT := wglGetProcAddress('glGetRenderbufferParameterivEXT');
8907 if not Assigned(glGetRenderbufferParameterivEXT) then Exit;
8908 glIsFramebufferEXT := wglGetProcAddress('glIsFramebufferEXT');
8909 if not Assigned(glIsFramebufferEXT) then Exit;
8910 glBindFramebufferEXT := wglGetProcAddress('glBindFramebufferEXT');
8911 if not Assigned(glBindFramebufferEXT) then Exit;
8912 glDeleteFramebuffersEXT := wglGetProcAddress('glDeleteFramebuffersEXT');
8913 if not Assigned(glDeleteFramebuffersEXT) then Exit;
8914 glGenFramebuffersEXT := wglGetProcAddress('glGenFramebuffersEXT');
8915 if not Assigned(glGenFramebuffersEXT) then Exit;
8916 glCheckFramebufferStatusEXT := wglGetProcAddress('glCheckFramebufferStatusEXT');
8917 if not Assigned(glCheckFramebufferStatusEXT) then Exit;
8918 glFramebufferTexture1DEXT := wglGetProcAddress('glFramebufferTexture1DEXT');
8919 if not Assigned(glFramebufferTexture1DEXT) then Exit;
8920 glFramebufferTexture2DEXT := wglGetProcAddress('glFramebufferTexture2DEXT');
8921 if not Assigned(glFramebufferTexture2DEXT) then Exit;
8922 glFramebufferTexture3DEXT := wglGetProcAddress('glFramebufferTexture3DEXT');
8923 if not Assigned(glFramebufferTexture3DEXT) then Exit;
8924 glFramebufferRenderbufferEXT := wglGetProcAddress('glFramebufferRenderbufferEXT');
8925 if not Assigned(glFramebufferRenderbufferEXT) then Exit;
8926 glGetFramebufferAttachmentParameterivEXT := wglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
8927 if not Assigned(glGetFramebufferAttachmentParameterivEXT) then Exit;
8928 glGenerateMipmapEXT := wglGetProcAddress('glGenerateMipmapEXT');
8929 if not Assigned(glGenerateMipmapEXT) then Exit;
8930 Result := TRUE;
8931 end;
8933 end;
8935 function Load_GL_version_1_4: Boolean;
8936 var
8937 extstring: String;
8938 begin
8940 Result := FALSE;
8941 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
8943 glBlendFuncSeparate := wglGetProcAddress('glBlendFuncSeparate');
8944 if not Assigned(glBlendFuncSeparate) then Exit;
8945 glFogCoordf := wglGetProcAddress('glFogCoordf');
8946 if not Assigned(glFogCoordf) then Exit;
8947 glFogCoordfv := wglGetProcAddress('glFogCoordfv');
8948 if not Assigned(glFogCoordfv) then Exit;
8949 glFogCoordd := wglGetProcAddress('glFogCoordd');
8950 if not Assigned(glFogCoordd) then Exit;
8951 glFogCoorddv := wglGetProcAddress('glFogCoorddv');
8952 if not Assigned(glFogCoorddv) then Exit;
8953 glFogCoordPointer := wglGetProcAddress('glFogCoordPointer');
8954 if not Assigned(glFogCoordPointer) then Exit;
8955 glMultiDrawArrays := wglGetProcAddress('glMultiDrawArrays');
8956 if not Assigned(glMultiDrawArrays) then Exit;
8957 glMultiDrawElements := wglGetProcAddress('glMultiDrawElements');
8958 if not Assigned(glMultiDrawElements) then Exit;
8959 glPointParameterf := wglGetProcAddress('glPointParameterf');
8960 if not Assigned(glPointParameterf) then Exit;
8961 glPointParameterfv := wglGetProcAddress('glPointParameterfv');
8962 if not Assigned(glPointParameterfv) then Exit;
8963 glPointParameteri := wglGetProcAddress('glPointParameteri');
8964 if not Assigned(glPointParameteri) then Exit;
8965 glPointParameteriv := wglGetProcAddress('glPointParameteriv');
8966 if not Assigned(glPointParameteriv) then Exit;
8967 glSecondaryColor3b := wglGetProcAddress('glSecondaryColor3b');
8968 if not Assigned(glSecondaryColor3b) then Exit;
8969 glSecondaryColor3bv := wglGetProcAddress('glSecondaryColor3bv');
8970 if not Assigned(glSecondaryColor3bv) then Exit;
8971 glSecondaryColor3d := wglGetProcAddress('glSecondaryColor3d');
8972 if not Assigned(glSecondaryColor3d) then Exit;
8973 glSecondaryColor3dv := wglGetProcAddress('glSecondaryColor3dv');
8974 if not Assigned(glSecondaryColor3dv) then Exit;
8975 glSecondaryColor3f := wglGetProcAddress('glSecondaryColor3f');
8976 if not Assigned(glSecondaryColor3f) then Exit;
8977 glSecondaryColor3fv := wglGetProcAddress('glSecondaryColor3fv');
8978 if not Assigned(glSecondaryColor3fv) then Exit;
8979 glSecondaryColor3i := wglGetProcAddress('glSecondaryColor3i');
8980 if not Assigned(glSecondaryColor3i) then Exit;
8981 glSecondaryColor3iv := wglGetProcAddress('glSecondaryColor3iv');
8982 if not Assigned(glSecondaryColor3iv) then Exit;
8983 glSecondaryColor3s := wglGetProcAddress('glSecondaryColor3s');
8984 if not Assigned(glSecondaryColor3s) then Exit;
8985 glSecondaryColor3sv := wglGetProcAddress('glSecondaryColor3sv');
8986 if not Assigned(glSecondaryColor3sv) then Exit;
8987 glSecondaryColor3ub := wglGetProcAddress('glSecondaryColor3ub');
8988 if not Assigned(glSecondaryColor3ub) then Exit;
8989 glSecondaryColor3ubv := wglGetProcAddress('glSecondaryColor3ubv');
8990 if not Assigned(glSecondaryColor3ubv) then Exit;
8991 glSecondaryColor3ui := wglGetProcAddress('glSecondaryColor3ui');
8992 if not Assigned(glSecondaryColor3ui) then Exit;
8993 glSecondaryColor3uiv := wglGetProcAddress('glSecondaryColor3uiv');
8994 if not Assigned(glSecondaryColor3uiv) then Exit;
8995 glSecondaryColor3us := wglGetProcAddress('glSecondaryColor3us');
8996 if not Assigned(glSecondaryColor3us) then Exit;
8997 glSecondaryColor3usv := wglGetProcAddress('glSecondaryColor3usv');
8998 if not Assigned(glSecondaryColor3usv) then Exit;
8999 glSecondaryColorPointer := wglGetProcAddress('glSecondaryColorPointer');
9000 if not Assigned(glSecondaryColorPointer) then Exit;
9001 glWindowPos2d := wglGetProcAddress('glWindowPos2d');
9002 if not Assigned(glWindowPos2d) then Exit;
9003 glWindowPos2dv := wglGetProcAddress('glWindowPos2dv');
9004 if not Assigned(glWindowPos2dv) then Exit;
9005 glWindowPos2f := wglGetProcAddress('glWindowPos2f');
9006 if not Assigned(glWindowPos2f) then Exit;
9007 glWindowPos2fv := wglGetProcAddress('glWindowPos2fv');
9008 if not Assigned(glWindowPos2fv) then Exit;
9009 glWindowPos2i := wglGetProcAddress('glWindowPos2i');
9010 if not Assigned(glWindowPos2i) then Exit;
9011 glWindowPos2iv := wglGetProcAddress('glWindowPos2iv');
9012 if not Assigned(glWindowPos2iv) then Exit;
9013 glWindowPos2s := wglGetProcAddress('glWindowPos2s');
9014 if not Assigned(glWindowPos2s) then Exit;
9015 glWindowPos2sv := wglGetProcAddress('glWindowPos2sv');
9016 if not Assigned(glWindowPos2sv) then Exit;
9017 glWindowPos3d := wglGetProcAddress('glWindowPos3d');
9018 if not Assigned(glWindowPos3d) then Exit;
9019 glWindowPos3dv := wglGetProcAddress('glWindowPos3dv');
9020 if not Assigned(glWindowPos3dv) then Exit;
9021 glWindowPos3f := wglGetProcAddress('glWindowPos3f');
9022 if not Assigned(glWindowPos3f) then Exit;
9023 glWindowPos3fv := wglGetProcAddress('glWindowPos3fv');
9024 if not Assigned(glWindowPos3fv) then Exit;
9025 glWindowPos3i := wglGetProcAddress('glWindowPos3i');
9026 if not Assigned(glWindowPos3i) then Exit;
9027 glWindowPos3iv := wglGetProcAddress('glWindowPos3iv');
9028 if not Assigned(glWindowPos3iv) then Exit;
9029 glWindowPos3s := wglGetProcAddress('glWindowPos3s');
9030 if not Assigned(glWindowPos3s) then Exit;
9031 glWindowPos3sv := wglGetProcAddress('glWindowPos3sv');
9032 if not Assigned(glWindowPos3sv) then Exit;
9033 Result := TRUE;
9035 end;
9037 function Load_GL_version_1_5: Boolean;
9038 var
9039 extstring: String;
9040 begin
9042 Result := FALSE;
9043 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
9045 glGenQueries := wglGetProcAddress('glGenQueries');
9046 if not Assigned(glGenQueries) then Exit;
9047 glDeleteQueries := wglGetProcAddress('glDeleteQueries');
9048 if not Assigned(glDeleteQueries) then Exit;
9049 glIsQuery := wglGetProcAddress('glIsQuery');
9050 if not Assigned(glIsQuery) then Exit;
9051 glBeginQuery := wglGetProcAddress('glBeginQuery');
9052 if not Assigned(glBeginQuery) then Exit;
9053 glEndQuery := wglGetProcAddress('glEndQuery');
9054 if not Assigned(glEndQuery) then Exit;
9055 glGetQueryiv := wglGetProcAddress('glGetQueryiv');
9056 if not Assigned(glGetQueryiv) then Exit;
9057 glGetQueryObjectiv := wglGetProcAddress('glGetQueryObjectiv');
9058 if not Assigned(glGetQueryObjectiv) then Exit;
9059 glGetQueryObjectuiv := wglGetProcAddress('glGetQueryObjectuiv');
9060 if not Assigned(glGetQueryObjectuiv) then Exit;
9061 glBindBuffer := wglGetProcAddress('glBindBuffer');
9062 if not Assigned(glBindBuffer) then Exit;
9063 glDeleteBuffers := wglGetProcAddress('glDeleteBuffers');
9064 if not Assigned(glDeleteBuffers) then Exit;
9065 glGenBuffers := wglGetProcAddress('glGenBuffers');
9066 if not Assigned(glGenBuffers) then Exit;
9067 glIsBuffer := wglGetProcAddress('glIsBuffer');
9068 if not Assigned(glIsBuffer) then Exit;
9069 glBufferData := wglGetProcAddress('glBufferData');
9070 if not Assigned(glBufferData) then Exit;
9071 glBufferSubData := wglGetProcAddress('glBufferSubData');
9072 if not Assigned(glBufferSubData) then Exit;
9073 glGetBufferSubData := wglGetProcAddress('glGetBufferSubData');
9074 if not Assigned(glGetBufferSubData) then Exit;
9075 glMapBuffer := wglGetProcAddress('glMapBuffer');
9076 if not Assigned(glMapBuffer) then Exit;
9077 glUnmapBuffer := wglGetProcAddress('glUnmapBuffer');
9078 if not Assigned(glUnmapBuffer) then Exit;
9079 glGetBufferParameteriv := wglGetProcAddress('glGetBufferParameteriv');
9080 if not Assigned(glGetBufferParameteriv) then Exit;
9081 glGetBufferPointerv := wglGetProcAddress('glGetBufferPointerv');
9082 if not Assigned(glGetBufferPointerv) then Exit;
9083 Result := TRUE;
9085 end;
9087 function Load_GL_version_2_0: Boolean;
9088 var
9089 extstring: String;
9090 begin
9092 Result := FALSE;
9093 extstring := String(PChar(glGetString(GL_EXTENSIONS)));
9095 glBlendEquationSeparate := wglGetProcAddress('glBlendEquationSeparate');
9096 if not Assigned(glBlendEquationSeparate) then Exit;
9097 glDrawBuffers := wglGetProcAddress('glDrawBuffers');
9098 if not Assigned(glDrawBuffers) then Exit;
9099 glStencilOpSeparate := wglGetProcAddress('glStencilOpSeparate');
9100 if not Assigned(glStencilOpSeparate) then Exit;
9101 glStencilFuncSeparate := wglGetProcAddress('glStencilFuncSeparate');
9102 if not Assigned(glStencilFuncSeparate) then Exit;
9103 glStencilMaskSeparate := wglGetProcAddress('glStencilMaskSeparate');
9104 if not Assigned(glStencilMaskSeparate) then Exit;
9105 glAttachShader := wglGetProcAddress('glAttachShader');
9106 if not Assigned(glAttachShader) then Exit;
9107 glBindAttribLocation := wglGetProcAddress('glBindAttribLocation');
9108 if not Assigned(glBindAttribLocation) then Exit;
9109 glCompileShader := wglGetProcAddress('glCompileShader');
9110 if not Assigned(glCompileShader) then Exit;
9111 glCreateProgram := wglGetProcAddress('glCreateProgram');
9112 if not Assigned(glCreateProgram) then Exit;
9113 glCreateShader := wglGetProcAddress('glCreateShader');
9114 if not Assigned(glCreateShader) then Exit;
9115 glDeleteProgram := wglGetProcAddress('glDeleteProgram');
9116 if not Assigned(glDeleteProgram) then Exit;
9117 glDeleteShader := wglGetProcAddress('glDeleteShader');
9118 if not Assigned(glDeleteShader) then Exit;
9119 glDetachShader := wglGetProcAddress('glDetachShader');
9120 if not Assigned(glDetachShader) then Exit;
9121 glDisableVertexAttribArray := wglGetProcAddress('glDisableVertexAttribArray');
9122 if not Assigned(glDisableVertexAttribArray) then Exit;
9123 glEnableVertexAttribArray := wglGetProcAddress('glEnableVertexAttribArray');
9124 if not Assigned(glEnableVertexAttribArray) then Exit;
9125 glGetActiveAttrib := wglGetProcAddress('glGetActiveAttrib');
9126 if not Assigned(glGetActiveAttrib) then Exit;
9127 glGetActiveUniform := wglGetProcAddress('glGetActiveUniform');
9128 if not Assigned(glGetActiveUniform) then Exit;
9129 glGetAttachedShaders := wglGetProcAddress('glGetAttachedShaders');
9130 if not Assigned(glGetAttachedShaders) then Exit;
9131 glGetAttribLocation := wglGetProcAddress('glGetAttribLocation');
9132 if not Assigned(glGetAttribLocation) then Exit;
9133 glGetProgramiv := wglGetProcAddress('glGetProgramiv');
9134 if not Assigned(glGetProgramiv) then Exit;
9135 glGetProgramInfoLog := wglGetProcAddress('glGetProgramInfoLog');
9136 if not Assigned(glGetProgramInfoLog) then Exit;
9137 glGetShaderiv := wglGetProcAddress('glGetShaderiv');
9138 if not Assigned(glGetShaderiv) then Exit;
9139 glGetShaderInfoLog := wglGetProcAddress('glGetShaderInfoLog');
9140 if not Assigned(glGetShaderInfoLog) then Exit;
9141 glGetShaderSource := wglGetProcAddress('glGetShaderSource');
9142 if not Assigned(glGetShaderSource) then Exit;
9143 glGetUniformLocation := wglGetProcAddress('glGetUniformLocation');
9144 if not Assigned(glGetUniformLocation) then Exit;
9145 glGetUniformfv := wglGetProcAddress('glGetUniformfv');
9146 if not Assigned(glGetUniformfv) then Exit;
9147 glGetUniformiv := wglGetProcAddress('glGetUniformiv');
9148 if not Assigned(glGetUniformiv) then Exit;
9149 glGetVertexAttribdv := wglGetProcAddress('glGetVertexAttribdv');
9150 if not Assigned(glGetVertexAttribdv) then Exit;
9151 glGetVertexAttribfv := wglGetProcAddress('glGetVertexAttribfv');
9152 if not Assigned(glGetVertexAttribfv) then Exit;
9153 glGetVertexAttribiv := wglGetProcAddress('glGetVertexAttribiv');
9154 if not Assigned(glGetVertexAttribiv) then Exit;
9155 glGetVertexAttribPointerv := wglGetProcAddress('glGetVertexAttribPointerv');
9156 if not Assigned(glGetVertexAttribPointerv) then Exit;
9157 glIsProgram := wglGetProcAddress('glIsProgram');
9158 if not Assigned(glIsProgram) then Exit;
9159 glIsShader := wglGetProcAddress('glIsShader');
9160 if not Assigned(glIsShader) then Exit;
9161 glLinkProgram := wglGetProcAddress('glLinkProgram');
9162 if not Assigned(glLinkProgram) then Exit;
9163 glShaderSource := wglGetProcAddress('glShaderSource');
9164 if not Assigned(glShaderSource) then Exit;
9165 glUseProgram := wglGetProcAddress('glUseProgram');
9166 if not Assigned(glUseProgram) then Exit;
9167 glUniform1f := wglGetProcAddress('glUniform1f');
9168 if not Assigned(glUniform1f) then Exit;
9169 glUniform2f := wglGetProcAddress('glUniform2f');
9170 if not Assigned(glUniform2f) then Exit;
9171 glUniform3f := wglGetProcAddress('glUniform3f');
9172 if not Assigned(glUniform3f) then Exit;
9173 glUniform4f := wglGetProcAddress('glUniform4f');
9174 if not Assigned(glUniform4f) then Exit;
9175 glUniform1i := wglGetProcAddress('glUniform1i');
9176 if not Assigned(glUniform1i) then Exit;
9177 glUniform2i := wglGetProcAddress('glUniform2i');
9178 if not Assigned(glUniform2i) then Exit;
9179 glUniform3i := wglGetProcAddress('glUniform3i');
9180 if not Assigned(glUniform3i) then Exit;
9181 glUniform4i := wglGetProcAddress('glUniform4i');
9182 if not Assigned(glUniform4i) then Exit;
9183 glUniform1fv := wglGetProcAddress('glUniform1fv');
9184 if not Assigned(glUniform1fv) then Exit;
9185 glUniform2fv := wglGetProcAddress('glUniform2fv');
9186 if not Assigned(glUniform2fv) then Exit;
9187 glUniform3fv := wglGetProcAddress('glUniform3fv');
9188 if not Assigned(glUniform3fv) then Exit;
9189 glUniform4fv := wglGetProcAddress('glUniform4fv');
9190 if not Assigned(glUniform4fv) then Exit;
9191 glUniform1iv := wglGetProcAddress('glUniform1iv');
9192 if not Assigned(glUniform1iv) then Exit;
9193 glUniform2iv := wglGetProcAddress('glUniform2iv');
9194 if not Assigned(glUniform2iv) then Exit;
9195 glUniform3iv := wglGetProcAddress('glUniform3iv');
9196 if not Assigned(glUniform3iv) then Exit;
9197 glUniform4iv := wglGetProcAddress('glUniform4iv');
9198 if not Assigned(glUniform4iv) then Exit;
9199 glUniformMatrix2fv := wglGetProcAddress('glUniformMatrix2fv');
9200 if not Assigned(glUniformMatrix2fv) then Exit;
9201 glUniformMatrix3fv := wglGetProcAddress('glUniformMatrix3fv');
9202 if not Assigned(glUniformMatrix3fv) then Exit;
9203 glUniformMatrix4fv := wglGetProcAddress('glUniformMatrix4fv');
9204 if not Assigned(glUniformMatrix4fv) then Exit;
9205 glValidateProgram := wglGetProcAddress('glValidateProgram');
9206 if not Assigned(glValidateProgram) then Exit;
9207 glVertexAttrib1d := wglGetProcAddress('glVertexAttrib1d');
9208 if not Assigned(glVertexAttrib1d) then Exit;
9209 glVertexAttrib1dv := wglGetProcAddress('glVertexAttrib1dv');
9210 if not Assigned(glVertexAttrib1dv) then Exit;
9211 glVertexAttrib1f := wglGetProcAddress('glVertexAttrib1f');
9212 if not Assigned(glVertexAttrib1f) then Exit;
9213 glVertexAttrib1fv := wglGetProcAddress('glVertexAttrib1fv');
9214 if not Assigned(glVertexAttrib1fv) then Exit;
9215 glVertexAttrib1s := wglGetProcAddress('glVertexAttrib1s');
9216 if not Assigned(glVertexAttrib1s) then Exit;
9217 glVertexAttrib1sv := wglGetProcAddress('glVertexAttrib1sv');
9218 if not Assigned(glVertexAttrib1sv) then Exit;
9219 glVertexAttrib2d := wglGetProcAddress('glVertexAttrib2d');
9220 if not Assigned(glVertexAttrib2d) then Exit;
9221 glVertexAttrib2dv := wglGetProcAddress('glVertexAttrib2dv');
9222 if not Assigned(glVertexAttrib2dv) then Exit;
9223 glVertexAttrib2f := wglGetProcAddress('glVertexAttrib2f');
9224 if not Assigned(glVertexAttrib2f) then Exit;
9225 glVertexAttrib2fv := wglGetProcAddress('glVertexAttrib2fv');
9226 if not Assigned(glVertexAttrib2fv) then Exit;
9227 glVertexAttrib2s := wglGetProcAddress('glVertexAttrib2s');
9228 if not Assigned(glVertexAttrib2s) then Exit;
9229 glVertexAttrib2sv := wglGetProcAddress('glVertexAttrib2sv');
9230 if not Assigned(glVertexAttrib2sv) then Exit;
9231 glVertexAttrib3d := wglGetProcAddress('glVertexAttrib3d');
9232 if not Assigned(glVertexAttrib3d) then Exit;
9233 glVertexAttrib3dv := wglGetProcAddress('glVertexAttrib3dv');
9234 if not Assigned(glVertexAttrib3dv) then Exit;
9235 glVertexAttrib3f := wglGetProcAddress('glVertexAttrib3f');
9236 if not Assigned(glVertexAttrib3f) then Exit;
9237 glVertexAttrib3fv := wglGetProcAddress('glVertexAttrib3fv');
9238 if not Assigned(glVertexAttrib3fv) then Exit;
9239 glVertexAttrib3s := wglGetProcAddress('glVertexAttrib3s');
9240 if not Assigned(glVertexAttrib3s) then Exit;
9241 glVertexAttrib3sv := wglGetProcAddress('glVertexAttrib3sv');
9242 if not Assigned(glVertexAttrib3sv) then Exit;
9243 glVertexAttrib4Nbv := wglGetProcAddress('glVertexAttrib4Nbv');
9244 if not Assigned(glVertexAttrib4Nbv) then Exit;
9245 glVertexAttrib4Niv := wglGetProcAddress('glVertexAttrib4Niv');
9246 if not Assigned(glVertexAttrib4Niv) then Exit;
9247 glVertexAttrib4Nsv := wglGetProcAddress('glVertexAttrib4Nsv');
9248 if not Assigned(glVertexAttrib4Nsv) then Exit;
9249 glVertexAttrib4Nub := wglGetProcAddress('glVertexAttrib4Nub');
9250 if not Assigned(glVertexAttrib4Nub) then Exit;
9251 glVertexAttrib4Nubv := wglGetProcAddress('glVertexAttrib4Nubv');
9252 if not Assigned(glVertexAttrib4Nubv) then Exit;
9253 glVertexAttrib4Nuiv := wglGetProcAddress('glVertexAttrib4Nuiv');
9254 if not Assigned(glVertexAttrib4Nuiv) then Exit;
9255 glVertexAttrib4Nusv := wglGetProcAddress('glVertexAttrib4Nusv');
9256 if not Assigned(glVertexAttrib4Nusv) then Exit;
9257 glVertexAttrib4bv := wglGetProcAddress('glVertexAttrib4bv');
9258 if not Assigned(glVertexAttrib4bv) then Exit;
9259 glVertexAttrib4d := wglGetProcAddress('glVertexAttrib4d');
9260 if not Assigned(glVertexAttrib4d) then Exit;
9261 glVertexAttrib4dv := wglGetProcAddress('glVertexAttrib4dv');
9262 if not Assigned(glVertexAttrib4dv) then Exit;
9263 glVertexAttrib4f := wglGetProcAddress('glVertexAttrib4f');
9264 if not Assigned(glVertexAttrib4f) then Exit;
9265 glVertexAttrib4fv := wglGetProcAddress('glVertexAttrib4fv');
9266 if not Assigned(glVertexAttrib4fv) then Exit;
9267 glVertexAttrib4iv := wglGetProcAddress('glVertexAttrib4iv');
9268 if not Assigned(glVertexAttrib4iv) then Exit;
9269 glVertexAttrib4s := wglGetProcAddress('glVertexAttrib4s');
9270 if not Assigned(glVertexAttrib4s) then Exit;
9271 glVertexAttrib4sv := wglGetProcAddress('glVertexAttrib4sv');
9272 if not Assigned(glVertexAttrib4sv) then Exit;
9273 glVertexAttrib4ubv := wglGetProcAddress('glVertexAttrib4ubv');
9274 if not Assigned(glVertexAttrib4ubv) then Exit;
9275 glVertexAttrib4uiv := wglGetProcAddress('glVertexAttrib4uiv');
9276 if not Assigned(glVertexAttrib4uiv) then Exit;
9277 glVertexAttrib4usv := wglGetProcAddress('glVertexAttrib4usv');
9278 if not Assigned(glVertexAttrib4usv) then Exit;
9279 glVertexAttribPointer := wglGetProcAddress('glVertexAttribPointer');
9280 if not Assigned(glVertexAttribPointer) then Exit;
9281 Result := TRUE;
9283 end;
9285 function glext_LoadExtension(ext: String): Boolean;
9286 begin
9288 Result := FALSE;
9290 if ext = 'GL_version_1_2' then Result := Load_GL_version_1_2
9291 else if ext = 'GL_ARB_imaging' then Result := Load_GL_ARB_imaging
9292 else if ext = 'GL_version_1_3' then Result := Load_GL_version_1_3
9293 else if ext = 'GL_ARB_multitexture' then Result := Load_GL_ARB_multitexture
9294 else if ext = 'GL_ARB_transpose_matrix' then Result := Load_GL_ARB_transpose_matrix
9295 else if ext = 'GL_ARB_multisample' then Result := Load_GL_ARB_multisample
9296 else if ext = 'GL_ARB_texture_env_add' then Result := Load_GL_ARB_texture_env_add
9297 else if ext = 'WGL_ARB_extensions_string' then Result := Load_WGL_ARB_extensions_string
9298 else if ext = 'WGL_ARB_buffer_region' then Result := Load_WGL_ARB_buffer_region
9299 else if ext = 'GL_ARB_texture_cube_map' then Result := Load_GL_ARB_texture_cube_map
9300 else if ext = 'GL_ARB_depth_texture' then Result := Load_GL_ARB_depth_texture
9301 else if ext = 'GL_ARB_point_parameters' then Result := Load_GL_ARB_point_parameters
9302 else if ext = 'GL_ARB_shadow' then Result := Load_GL_ARB_shadow
9303 else if ext = 'GL_ARB_shadow_ambient' then Result := Load_GL_ARB_shadow_ambient
9304 else if ext = 'GL_ARB_texture_border_clamp' then Result := Load_GL_ARB_texture_border_clamp
9305 else if ext = 'GL_ARB_texture_compression' then Result := Load_GL_ARB_texture_compression
9306 else if ext = 'GL_ARB_texture_env_combine' then Result := Load_GL_ARB_texture_env_combine
9307 else if ext = 'GL_ARB_texture_env_crossbar' then Result := Load_GL_ARB_texture_env_crossbar
9308 else if ext = 'GL_ARB_texture_env_dot3' then Result := Load_GL_ARB_texture_env_dot3
9309 else if ext = 'GL_ARB_texture_mirrored_repeat' then Result := Load_GL_ARB_texture_mirrored_repeat
9310 else if ext = 'GL_ARB_vertex_blend' then Result := Load_GL_ARB_vertex_blend
9311 else if ext = 'GL_ARB_vertex_program' then Result := Load_GL_ARB_vertex_program
9312 else if ext = 'GL_ARB_window_pos' then Result := Load_GL_ARB_window_pos
9313 else if ext = 'GL_EXT_422_pixels' then Result := Load_GL_EXT_422_pixels
9314 else if ext = 'GL_EXT_abgr' then Result := Load_GL_EXT_abgr
9315 else if ext = 'GL_EXT_bgra' then Result := Load_GL_EXT_bgra
9316 else if ext = 'GL_EXT_blend_color' then Result := Load_GL_EXT_blend_color
9317 else if ext = 'GL_EXT_blend_func_separate' then Result := Load_GL_EXT_blend_func_separate
9318 else if ext = 'GL_EXT_blend_logic_op' then Result := Load_GL_EXT_blend_logic_op
9319 else if ext = 'GL_EXT_blend_minmax' then Result := Load_GL_EXT_blend_minmax
9320 else if ext = 'GL_EXT_blend_subtract' then Result := Load_GL_EXT_blend_subtract
9321 else if ext = 'GL_EXT_clip_volume_hint' then Result := Load_GL_EXT_clip_volume_hint
9322 else if ext = 'GL_EXT_color_subtable' then Result := Load_GL_EXT_color_subtable
9323 else if ext = 'GL_EXT_compiled_vertex_array' then Result := Load_GL_EXT_compiled_vertex_array
9324 else if ext = 'GL_EXT_convolution' then Result := Load_GL_EXT_convolution
9325 else if ext = 'GL_EXT_histogram' then Result := Load_GL_EXT_histogram
9326 else if ext = 'GL_EXT_multi_draw_arrays' then Result := Load_GL_EXT_multi_draw_arrays
9327 else if ext = 'GL_EXT_packed_pixels' then Result := Load_GL_EXT_packed_pixels
9328 else if ext = 'GL_EXT_paletted_texture' then Result := Load_GL_EXT_paletted_texture
9329 else if ext = 'GL_EXT_point_parameters' then Result := Load_GL_EXT_point_parameters
9330 else if ext = 'GL_EXT_polygon_offset' then Result := Load_GL_EXT_polygon_offset
9331 else if ext = 'GL_EXT_separate_specular_color' then Result := Load_GL_EXT_separate_specular_color
9332 else if ext = 'GL_EXT_shadow_funcs' then Result := Load_GL_EXT_shadow_funcs
9333 else if ext = 'GL_EXT_shared_texture_palette' then Result := Load_GL_EXT_shared_texture_palette
9334 else if ext = 'GL_EXT_stencil_two_side' then Result := Load_GL_EXT_stencil_two_side
9335 else if ext = 'GL_EXT_stencil_wrap' then Result := Load_GL_EXT_stencil_wrap
9336 else if ext = 'GL_EXT_subtexture' then Result := Load_GL_EXT_subtexture
9337 else if ext = 'GL_EXT_texture3D' then Result := Load_GL_EXT_texture3D
9338 else if ext = 'GL_EXT_texture_compression_s3tc' then Result := Load_GL_EXT_texture_compression_s3tc
9339 else if ext = 'GL_EXT_texture_env_add' then Result := Load_GL_EXT_texture_env_add
9340 else if ext = 'GL_EXT_texture_env_combine' then Result := Load_GL_EXT_texture_env_combine
9341 else if ext = 'GL_EXT_texture_env_dot3' then Result := Load_GL_EXT_texture_env_dot3
9342 else if ext = 'GL_EXT_texture_filter_anisotropic' then Result := Load_GL_EXT_texture_filter_anisotropic
9343 else if ext = 'GL_EXT_texture_lod_bias' then Result := Load_GL_EXT_texture_lod_bias
9344 else if ext = 'GL_EXT_texture_object' then Result := Load_GL_EXT_texture_object
9345 else if ext = 'GL_EXT_vertex_array' then Result := Load_GL_EXT_vertex_array
9346 else if ext = 'GL_EXT_vertex_shader' then Result := Load_GL_EXT_vertex_shader
9347 else if ext = 'GL_EXT_vertex_weighting' then Result := Load_GL_EXT_vertex_weighting
9348 else if ext = 'GL_HP_occlusion_test' then Result := Load_GL_HP_occlusion_test
9349 else if ext = 'GL_NV_blend_square' then Result := Load_GL_NV_blend_square
9350 else if ext = 'GL_NV_copy_depth_to_color' then Result := Load_GL_NV_copy_depth_to_color
9351 else if ext = 'GL_NV_depth_clamp' then Result := Load_GL_NV_depth_clamp
9352 else if ext = 'GL_NV_evaluators' then Result := Load_GL_NV_evaluators
9353 else if ext = 'GL_NV_fence' then Result := Load_GL_NV_fence
9354 else if ext = 'GL_NV_fog_distance' then Result := Load_GL_NV_fog_distance
9355 else if ext = 'GL_NV_light_max_exponent' then Result := Load_GL_NV_light_max_exponent
9356 else if ext = 'GL_NV_multisample_filter_hint' then Result := Load_GL_NV_multisample_filter_hint
9357 else if ext = 'GL_NV_occlusion_query' then Result := Load_GL_NV_occlusion_query
9358 else if ext = 'GL_NV_packed_depth_stencil' then Result := Load_GL_NV_packed_depth_stencil
9359 else if ext = 'GL_NV_point_sprite' then Result := Load_GL_NV_point_sprite
9360 else if ext = 'GL_NV_register_combiners' then Result := Load_GL_NV_register_combiners
9361 else if ext = 'GL_NV_register_combiners2' then Result := Load_GL_NV_register_combiners2
9362 else if ext = 'GL_NV_texgen_emboss' then Result := Load_GL_NV_texgen_emboss
9363 else if ext = 'GL_NV_texgen_reflection' then Result := Load_GL_NV_texgen_reflection
9364 else if ext = 'GL_NV_texture_compression_vtc' then Result := Load_GL_NV_texture_compression_vtc
9365 else if ext = 'GL_NV_texture_env_combine4' then Result := Load_GL_NV_texture_env_combine4
9366 else if ext = 'GL_NV_texture_rectangle' then Result := Load_GL_NV_texture_rectangle
9367 else if ext = 'GL_NV_texture_shader' then Result := Load_GL_NV_texture_shader
9368 else if ext = 'GL_NV_texture_shader2' then Result := Load_GL_NV_texture_shader2
9369 else if ext = 'GL_NV_texture_shader3' then Result := Load_GL_NV_texture_shader3
9370 else if ext = 'GL_NV_vertex_array_range' then Result := Load_GL_NV_vertex_array_range
9371 else if ext = 'GL_NV_vertex_array_range2' then Result := Load_GL_NV_vertex_array_range2
9372 else if ext = 'GL_NV_vertex_program' then Result := Load_GL_NV_vertex_program
9373 else if ext = 'GL_NV_vertex_program1_1' then Result := Load_GL_NV_vertex_program1_1
9374 else if ext = 'GL_ATI_element_array' then Result := Load_GL_ATI_element_array
9375 else if ext = 'GL_ATI_envmap_bumpmap' then Result := Load_GL_ATI_envmap_bumpmap
9376 else if ext = 'GL_ATI_fragment_shader' then Result := Load_GL_ATI_fragment_shader
9377 else if ext = 'GL_ATI_pn_triangles' then Result := Load_GL_ATI_pn_triangles
9378 else if ext = 'GL_ATI_texture_mirror_once' then Result := Load_GL_ATI_texture_mirror_once
9379 else if ext = 'GL_ATI_vertex_array_object' then Result := Load_GL_ATI_vertex_array_object
9380 else if ext = 'GL_ATI_vertex_streams' then Result := Load_GL_ATI_vertex_streams
9381 else if ext = 'WGL_I3D_image_buffer' then Result := Load_WGL_I3D_image_buffer
9382 else if ext = 'WGL_I3D_swap_frame_lock' then Result := Load_WGL_I3D_swap_frame_lock
9383 else if ext = 'WGL_I3D_swap_frame_usage' then Result := Load_WGL_I3D_swap_frame_usage
9384 else if ext = 'GL_3DFX_texture_compression_FXT1' then Result := Load_GL_3DFX_texture_compression_FXT1
9385 else if ext = 'GL_IBM_cull_vertex' then Result := Load_GL_IBM_cull_vertex
9386 else if ext = 'GL_IBM_multimode_draw_arrays' then Result := Load_GL_IBM_multimode_draw_arrays
9387 else if ext = 'GL_IBM_raster_pos_clip' then Result := Load_GL_IBM_raster_pos_clip
9388 else if ext = 'GL_IBM_texture_mirrored_repeat' then Result := Load_GL_IBM_texture_mirrored_repeat
9389 else if ext = 'GL_IBM_vertex_array_lists' then Result := Load_GL_IBM_vertex_array_lists
9390 else if ext = 'GL_MESA_resize_buffers' then Result := Load_GL_MESA_resize_buffers
9391 else if ext = 'GL_MESA_window_pos' then Result := Load_GL_MESA_window_pos
9392 else if ext = 'GL_OML_interlace' then Result := Load_GL_OML_interlace
9393 else if ext = 'GL_OML_resample' then Result := Load_GL_OML_resample
9394 else if ext = 'GL_OML_subsample' then Result := Load_GL_OML_subsample
9395 else if ext = 'GL_SGIS_generate_mipmap' then Result := Load_GL_SGIS_generate_mipmap
9396 else if ext = 'GL_SGIS_multisample' then Result := Load_GL_SGIS_multisample
9397 else if ext = 'GL_SGIS_pixel_texture' then Result := Load_GL_SGIS_pixel_texture
9398 else if ext = 'GL_SGIS_texture_border_clamp' then Result := Load_GL_SGIS_texture_border_clamp
9399 else if ext = 'GL_SGIS_texture_color_mask' then Result := Load_GL_SGIS_texture_color_mask
9400 else if ext = 'GL_SGIS_texture_edge_clamp' then Result := Load_GL_SGIS_texture_edge_clamp
9401 else if ext = 'GL_SGIS_texture_lod' then Result := Load_GL_SGIS_texture_lod
9402 else if ext = 'GL_SGIS_depth_texture' then Result := Load_GL_SGIS_depth_texture
9403 else if ext = 'GL_SGIX_fog_offset' then Result := Load_GL_SGIX_fog_offset
9404 else if ext = 'GL_SGIX_interlace' then Result := Load_GL_SGIX_interlace
9405 else if ext = 'GL_SGIX_shadow_ambient' then Result := Load_GL_SGIX_shadow_ambient
9406 else if ext = 'GL_SGI_color_matrix' then Result := Load_GL_SGI_color_matrix
9407 else if ext = 'GL_SGI_color_table' then Result := Load_GL_SGI_color_table
9408 else if ext = 'GL_SGI_texture_color_table' then Result := Load_GL_SGI_texture_color_table
9409 else if ext = 'GL_SUN_vertex' then Result := Load_GL_SUN_vertex
9410 else if ext = 'GL_ARB_fragment_program' then Result := Load_GL_ARB_fragment_program
9411 else if ext = 'GL_ATI_text_fragment_shader' then Result := Load_GL_ATI_text_fragment_shader
9412 else if ext = 'GL_APPLE_client_storage' then Result := Load_GL_APPLE_client_storage
9413 else if ext = 'GL_APPLE_element_array' then Result := Load_GL_APPLE_element_array
9414 else if ext = 'GL_APPLE_fence' then Result := Load_GL_APPLE_fence
9415 else if ext = 'GL_APPLE_vertex_array_object' then Result := Load_GL_APPLE_vertex_array_object
9416 else if ext = 'GL_APPLE_vertex_array_range' then Result := Load_GL_APPLE_vertex_array_range
9417 else if ext = 'WGL_ARB_pixel_format' then Result := Load_WGL_ARB_pixel_format
9418 else if ext = 'WGL_ARB_make_current_read' then Result := Load_WGL_ARB_make_current_read
9419 else if ext = 'WGL_ARB_pbuffer' then Result := Load_WGL_ARB_pbuffer
9420 else if ext = 'WGL_EXT_swap_control' then Result := Load_WGL_EXT_swap_control
9421 else if ext = 'WGL_ARB_render_texture' then Result := Load_WGL_ARB_render_texture
9422 else if ext = 'WGL_EXT_extensions_string' then Result := Load_WGL_EXT_extensions_string
9423 else if ext = 'WGL_EXT_make_current_read' then Result := Load_WGL_EXT_make_current_read
9424 else if ext = 'WGL_EXT_pbuffer' then Result := Load_WGL_EXT_pbuffer
9425 else if ext = 'WGL_EXT_pixel_format' then Result := Load_WGL_EXT_pixel_format
9426 else if ext = 'WGL_I3D_digital_video_control' then Result := Load_WGL_I3D_digital_video_control
9427 else if ext = 'WGL_I3D_gamma' then Result := Load_WGL_I3D_gamma
9428 else if ext = 'WGL_I3D_genlock' then Result := Load_WGL_I3D_genlock
9429 else if ext = 'GL_ARB_matrix_palette' then Result := Load_GL_ARB_matrix_palette
9430 else if ext = 'GL_NV_element_array' then Result := Load_GL_NV_element_array
9431 else if ext = 'GL_NV_float_buffer' then Result := Load_GL_NV_float_buffer
9432 else if ext = 'GL_NV_fragment_program' then Result := Load_GL_NV_fragment_program
9433 else if ext = 'GL_NV_primitive_restart' then Result := Load_GL_NV_primitive_restart
9434 else if ext = 'GL_NV_vertex_program2' then Result := Load_GL_NV_vertex_program2
9435 else if ext = 'WGL_NV_render_texture_rectangle' then Result := Load_WGL_NV_render_texture_rectangle
9436 else if ext = 'GL_NV_pixel_data_range' then Result := Load_GL_NV_pixel_data_range
9437 else if ext = 'GL_EXT_texture_rectangle' then Result := Load_GL_EXT_texture_rectangle
9438 else if ext = 'GL_S3_s3tc' then Result := Load_GL_S3_s3tc
9439 else if ext = 'GL_ATI_draw_buffers' then Result := Load_GL_ATI_draw_buffers
9440 else if ext = 'WGL_ATI_pixel_format_float' then Result := Load_WGL_ATI_pixel_format_float
9441 else if ext = 'GL_ATI_texture_env_combine3' then Result := Load_GL_ATI_texture_env_combine3
9442 else if ext = 'GL_ATI_texture_float' then Result := Load_GL_ATI_texture_float
9443 else if ext = 'GL_NV_texture_expand_normal' then Result := Load_GL_NV_texture_expand_normal
9444 else if ext = 'GL_NV_half_float' then Result := Load_GL_NV_half_float
9445 else if ext = 'GL_ATI_map_object_buffer' then Result := Load_GL_ATI_map_object_buffer
9446 else if ext = 'GL_ATI_separate_stencil' then Result := Load_GL_ATI_separate_stencil
9447 else if ext = 'GL_ATI_vertex_attrib_array_object' then Result := Load_GL_ATI_vertex_attrib_array_object
9448 else if ext = 'GL_ARB_vertex_buffer_object' then Result := Load_GL_ARB_vertex_buffer_object
9449 else if ext = 'GL_ARB_occlusion_query' then Result := Load_GL_ARB_occlusion_query
9450 else if ext = 'GL_ARB_shader_objects' then Result := Load_GL_ARB_shader_objects
9451 else if ext = 'GL_ARB_vertex_shader' then Result := Load_GL_ARB_vertex_shader
9452 else if ext = 'GL_ARB_fragment_shader' then Result := Load_GL_ARB_fragment_shader
9453 else if ext = 'GL_ARB_shading_language_100' then Result := Load_GL_ARB_shading_language_100
9454 else if ext = 'GL_ARB_texture_non_power_of_two' then Result := Load_GL_ARB_texture_non_power_of_two
9455 else if ext = 'GL_ARB_point_sprite' then Result := Load_GL_ARB_point_sprite
9456 else if ext = 'GL_EXT_depth_bounds_test' then Result := Load_GL_EXT_depth_bounds_test
9457 else if ext = 'GL_EXT_secondary_color' then Result := Load_GL_EXT_secondary_color
9458 else if ext = 'GL_EXT_texture_mirror_clamp' then Result := Load_GL_EXT_texture_mirror_clamp
9459 else if ext = 'GL_EXT_blend_equation_separate' then Result := Load_GL_EXT_blend_equation_separate
9460 else if ext = 'GL_MESA_pack_invert' then Result := Load_GL_MESA_pack_invert
9461 else if ext = 'GL_MESA_ycbcr_texture' then Result := Load_GL_MESA_ycbcr_texture
9462 else if ext = 'GL_ARB_fragment_program_shadow' then Result := Load_GL_ARB_fragment_program_shadow
9463 else if ext = 'GL_EXT_fog_coord' then Result := Load_GL_EXT_fog_coord
9464 else if ext = 'GL_NV_fragment_program_option' then Result := Load_GL_NV_fragment_program_option
9465 else if ext = 'GL_EXT_pixel_buffer_object' then Result := Load_GL_EXT_pixel_buffer_object
9466 else if ext = 'GL_NV_fragment_program2' then Result := Load_GL_NV_fragment_program2
9467 else if ext = 'GL_NV_vertex_program2_option' then Result := Load_GL_NV_vertex_program2_option
9468 else if ext = 'GL_NV_vertex_program3' then Result := Load_GL_NV_vertex_program3
9469 else if ext = 'GL_ARB_draw_buffers' then Result := Load_GL_ARB_draw_buffers
9470 else if ext = 'GL_ARB_texture_rectangle' then Result := Load_GL_ARB_texture_rectangle
9471 else if ext = 'GL_ARB_color_buffer_float' then Result := Load_GL_ARB_color_buffer_float
9472 else if ext = 'GL_ARB_half_float_pixel' then Result := Load_GL_ARB_half_float_pixel
9473 else if ext = 'GL_ARB_texture_float' then Result := Load_GL_ARB_texture_float
9474 else if ext = 'GL_EXT_texture_compression_dxt1' then Result := Load_GL_EXT_texture_compression_dxt1
9475 else if ext = 'GL_ARB_pixel_buffer_object' then Result := Load_GL_ARB_pixel_buffer_object
9476 else if ext = 'GL_EXT_framebuffer_object' then Result := Load_GL_EXT_framebuffer_object
9477 else if ext = 'GL_version_1_4' then Result := Load_GL_version_1_4
9478 else if ext = 'GL_version_1_5' then Result := Load_GL_version_1_5
9479 else if ext = 'GL_version_2_0' then Result := Load_GL_version_2_0
9481 end;
9483 end.