root/trunk/gl/agl.d

Revision 157, 59.4 kB (checked in by jpelcis, 6 years ago)

Added an OpenAL implementation with ALUT.

Added an OpenGL implementation with all extensions, GLU, and GLUT.

Removed a second copy of d3d9.d.

Line 
1 module c.gl.agl;
2
3 /*
4     File:   AGL/agl.h and more
5
6     Contains:   Basic AGL data types, constants and function prototypes.
7
8     Version:    Technology: Mac OS X
9                 Release:    GM
10  
11      Copyright: (c) 2000, 2001, 2002, 2003 by Apple Computer, Inc., all rights reserved.
12  
13      Bugs?: For bug reports, consult the following page on
14         the World Wide Web:
15  
16         http://developer.apple.com/bugreporter/
17 */
18
19 version (darwin) {
20 private import c.gl.gl;
21
22 /*
23  * Constants
24  */
25 // Renderer ID numbers
26 const uint AGL_RENDERER_GENERIC_ID      = 0x00020200;
27 const uint AGL_RENDERER_APPLE_SW_ID     = 0x00020600;
28 const uint AGL_RENDERER_ATI_RAGE_128_ID     = 0x00021000;
29 const uint AGL_RENDERER_ATI_RADEON_ID       = 0x00021200;
30 const uint AGL_RENDERER_ATI_RAGE_PRO_ID     = 0x00021400;
31 const uint AGL_RENDERER_ATI_RADEON_8500_ID  = 0x00021600;
32 const uint AGL_RENDERER_NVIDIA_GEFORCE_2MX_ID   = 0x00022000; /* also for GeForce 4MX */
33 const uint AGL_RENDERER_NVIDIA_GEFORCE_3_ID = 0x00022200; /* also for GeForce 4 Ti */
34 const uint AGL_RENDERER_MESA_3DFX_ID        = 0x00040000;
35
36 const uint AGL_NONE             = 0;
37 const uint AGL_ALL_RENDERERS            = 1; /* choose from all available renderers */
38 const uint AGL_BUFFER_SIZE          = 2; /* depth of the index buffer */
39 const uint AGL_LEVEL                = 3; /* level in plane stacking */
40 const uint AGL_RGBA             = 4; /* choose an RGBA format */
41 const uint AGL_DOUBLEBUFFER         = 5; /* double buffering supported */
42 const uint AGL_STEREO               = 6; /* stereo buffering supported */
43 const uint AGL_AUX_BUFFERS          = 7; /* number of aux buffers */
44 const uint AGL_RED_SIZE             = 8; /* number of red component bits */
45 const uint AGL_GREEN_SIZE           = 9; /* number of green component bits */
46 const uint AGL_BLUE_SIZE            = 10; /* number of blue component bits */
47 const uint AGL_ALPHA_SIZE           = 11; /* number of alpha component bits */
48 const uint AGL_DEPTH_SIZE           = 12; /* number of depth bits */
49 const uint AGL_STENCIL_SIZE         = 13; /* number of stencil bits */
50 const uint AGL_ACCUM_RED_SIZE           = 14; /* number of red accum bits */
51 const uint AGL_ACCUM_GREEN_SIZE         = 15; /* number of green accum bits */
52 const uint AGL_ACCUM_BLUE_SIZE          = 16; /* number of blue accum bits */
53 const uint AGL_ACCUM_ALPHA_SIZE         = 17; /* number of alpha accum bits */
54
55
56 const uint AGL_PIXEL_SIZE           = 50; /* frame buffer bits per pixel */
57 const uint AGL_MINIMUM_POLICY           = 51; /* never choose smaller buffers than requested */
58 const uint AGL_MAXIMUM_POLICY           = 52; /* choose largest buffers of type requested */
59 const uint AGL_OFFSCREEN            = 53; /* choose an off-screen capable renderer */
60 const uint AGL_FULLSCREEN           = 54; /* choose a full-screen capable renderer */
61 const uint AGL_SAMPLE_BUFFERS_ARB       = 55; /* number of multi sample buffers */
62 const uint AGL_SAMPLES_ARB          = 56; /* number of samples per multi sample buffer */
63 const uint AGL_AUX_DEPTH_STENCIL        = 57; /* independent depth and/or stencil buffers for the aux buffer */
64
65 const uint AGL_RENDERER_ID          = 70; /* request renderer by ID */
66 const uint AGL_SINGLE_RENDERER          = 71; /* choose a single renderer for all screens */
67 const uint AGL_NO_RECOVERY          = 72; /* disable all failure recovery systems */
68 const uint AGL_ACCELERATED          = 73; /* choose a hardware accelerated renderer */
69 const uint AGL_CLOSEST_POLICY           = 74; /* choose the closest color buffer to request */
70 const uint AGL_ROBUST               = 75; /* renderer does not need failure recovery */
71 const uint AGL_BACKING_STORE            = 76; /* back buffer contents are valid after swap */
72 const uint AGL_MP_SAFE              = 78; /* renderer is multi-processor safe */
73
74 const uint AGL_WINDOW               = 80; /* can be used to render to an onscreen window */
75 const uint AGL_MULTISCREEN          = 81; /* single window can span multiple screens */
76 const uint AGL_VIRTUAL_SCREEN           = 82; /* virtual screen number */
77 const uint AGL_COMPLIANT            = 83; /* renderer is opengl compliant */
78
79 /* const uint AGL_OFFSCREEN         = 53; */
80 /* const uint AGL_FULLSCREEN            = 54; */
81 /* const uint AGL_RENDERER_ID           = 70; */
82 /* const uint AGL_ACCELERATED           = 73; */
83 /* const uint AGL_ROBUST            = 75; */
84 /* const uint AGL_BACKING_STORE         = 76; */
85 /* const uint AGL_MP_SAFE           = 78; */
86 /* const uint AGL_WINDOW            = 80; */
87 /* const uint AGL_MULTISCREEN           = 81; */
88 /* const uint AGL_COMPLIANT         = 83; */
89 const uint AGL_BUFFER_MODES         = 100;
90 const uint AGL_MIN_LEVEL            = 101;
91 const uint AGL_MAX_LEVEL            = 102;
92 const uint AGL_COLOR_MODES          = 103;
93 const uint AGL_ACCUM_MODES          = 104;
94 const uint AGL_DEPTH_MODES          = 105;
95 const uint AGL_STENCIL_MODES            = 106;
96 const uint AGL_MAX_AUX_BUFFERS          = 107;
97 const uint AGL_VIDEO_MEMORY         = 120;
98 const uint AGL_TEXTURE_MEMORY           = 121;
99
100 const uint AGL_SWAP_RECT            = 200; /* Enable or set the swap rectangle */
101 const uint AGL_BUFFER_RECT          = 202; /* Enable or set the buffer rectangle */
102 const uint AGL_SWAP_LIMIT           = 203; /* Enable or disable the swap async limit */
103 const uint AGL_COLORMAP_TRACKING        = 210; /* Enable or disable colormap tracking */
104 const uint AGL_COLORMAP_ENTRY           = 212; /* Set a colormap entry to {index, r, g, b} */
105 const uint AGL_RASTERIZATION            = 220; /* Enable or disable all rasterization */
106 const uint AGL_SWAP_INTERVAL            = 222; /* 0 -> Don't sync, n -> Sync every n retrace */
107 const uint AGL_STATE_VALIDATION         = 230; /* Validate state for multi-screen functionality */
108 const uint AGL_BUFFER_NAME          = 231; /* Set the buffer name. Allows for multi ctx to share a buffer */
109 const uint AGL_ORDER_CONTEXT_TO_FRONT       = 232; /* Order the current context in front of all the other contexts. */
110 const uint AGL_CONTEXT_SURFACE_ID       = 233; /* aglGetInteger only - returns the ID of the drawable surface for the context */
111 const uint AGL_CONTEXT_DISPLAY_ID       = 234; /* aglGetInteger only - returns the display ID(s) of all displays touched by the context, up to a maximum of 32 displays */
112 const uint AGL_SURFACE_ORDER            = 235; /* Position of OpenGL surface relative to window: 1 -> Above window, -1 -> Below Window */
113 const uint AGL_SURFACE_OPACITY          = 236; /* Opacity of OpenGL surface: 1 -> Surface is opaque (default), 0 -> non-opaque */
114 const uint AGL_CLIP_REGION          = 254; /* Enable or set the drawable clipping region */
115 const uint AGL_FS_CAPTURE_SINGLE        = 255; /* Enable the capture of only a single display for aglFullScreen, normally disabled */
116
117 const uint AGL_FORMAT_CACHE_SIZE        = 501; /* Set the size of the pixel format cache */
118 const uint AGL_CLEAR_FORMAT_CACHE       = 502; /* Reset the pixel format cache */
119 const uint AGL_RETAIN_RENDERERS         = 503; /* Whether to retain loaded renderers in memory */
120
121 const uint AGL_MONOSCOPIC_BIT           = 0x00000001;
122 const uint AGL_STEREOSCOPIC_BIT         = 0x00000002;
123 const uint AGL_SINGLEBUFFER_BIT         = 0x00000004;
124 const uint AGL_DOUBLEBUFFER_BIT         = 0x00000008;
125
126 const uint AGL_0_BIT                = 0x00000001;
127 const uint AGL_1_BIT                = 0x00000002;
128 const uint AGL_2_BIT                = 0x00000004;
129 const uint AGL_3_BIT                = 0x00000008;
130 const uint AGL_4_BIT                = 0x00000010;
131 const uint AGL_5_BIT                = 0x00000020;
132 const uint AGL_6_BIT                = 0x00000040;
133 const uint AGL_8_BIT                = 0x00000080;
134 const uint AGL_10_BIT               = 0x00000100;
135 const uint AGL_12_BIT               = 0x00000200;
136 const uint AGL_16_BIT               = 0x00000400;
137 const uint AGL_24_BIT               = 0x00000800;
138 const uint AGL_32_BIT               = 0x00001000;
139 const uint AGL_48_BIT               = 0x00002000;
140 const uint AGL_64_BIT               = 0x00004000;
141 const uint AGL_96_BIT               = 0x00008000;
142 const uint AGL_128_BIT              = 0x00010000;
143
144 const uint AGL_RGB8_BIT             = 0x00000001; /* 8 rgb bit/pixel,     RGB=7:0, inverse colormap */
145 const uint AGL_RGB8_A8_BIT          = 0x00000002; /* 8-8 argb bit/pixel,  A=7:0, RGB=7:0, inverse colormap */
146 const uint AGL_BGR233_BIT           = 0x00000004; /* 8 rgb bit/pixel,     B=7:6, G=5:3, R=2:0 */
147 const uint AGL_BGR233_A8_BIT            = 0x00000008; /* 8-8 argb bit/pixel,  A=7:0, B=7:6, G=5:3, R=2:0 */
148 const uint AGL_RGB332_BIT           = 0x00000010; /* 8 rgb bit/pixel,     R=7:5, G=4:2, B=1:0 */
149 const uint AGL_RGB332_A8_BIT            = 0x00000020; /* 8-8 argb bit/pixel,  A=7:0, R=7:5, G=4:2, B=1:0 */
150 const uint AGL_RGB444_BIT           = 0x00000040; /* 16 rgb bit/pixel,    R=11:8, G=7:4, B=3:0 */
151 const uint AGL_ARGB4444_BIT         = 0x00000080; /* 16 argb bit/pixel,   A=15:12, R=11:8, G=7:4, B=3:0 */
152 const uint AGL_RGB444_A8_BIT            = 0x00000100; /* 8-16 argb bit/pixel, A=7:0, R=11:8, G=7:4, B=3:0 */
153 const uint AGL_RGB555_BIT           = 0x00000200; /* 16 rgb bit/pixel,    R=14:10, G=9:5, B=4:0 */
154 const uint AGL_ARGB1555_BIT         = 0x00000400; /* 16 argb bit/pixel,   A=15, R=14:10, G=9:5, B=4:0 */
155 const uint AGL_RGB555_A8_BIT            = 0x00000800; /* 8-16 argb bit/pixel, A=7:0, R=14:10, G=9:5, B=4:0 */
156 const uint AGL_RGB565_BIT           = 0x00001000; /* 16 rgb bit/pixel,    R=15:11, G=10:5, B=4:0 */
157 const uint AGL_RGB565_A8_BIT            = 0x00002000; /* 8-16 argb bit/pixel, A=7:0, R=15:11, G=10:5, B=4:0 */
158 const uint AGL_RGB888_BIT           = 0x00004000; /* 32 rgb bit/pixel,    R=23:16, G=15:8, B=7:0 */
159 const uint AGL_ARGB8888_BIT         = 0x00008000; /* 32 argb bit/pixel,   A=31:24, R=23:16, G=15:8, B=7:0 */
160 const uint AGL_RGB888_A8_BIT            = 0x00010000; /* 8-32 argb bit/pixel, A=7:0, R=23:16, G=15:8, B=7:0 */
161 const uint AGL_RGB101010_BIT            = 0x00020000; /* 32 rgb bit/pixel,    R=29:20, G=19:10, B=9:0 */
162 const uint AGL_ARGB2101010_BIT          = 0x00040000; /* 32 argb bit/pixel,   A=31:30  R=29:20, G=19:10, B=9:0 */
163 const uint AGL_RGB101010_A8_BIT         = 0x00080000; /* 8-32 argb bit/pixel, A=7:0  R=29:20, G=19:10, B=9:0 */
164 const uint AGL_RGB121212_BIT            = 0x00100000; /* 48 rgb bit/pixel,    R=35:24, G=23:12, B=11:0 */
165 const uint AGL_ARGB12121212_BIT         = 0x00200000; /* 48 argb bit/pixel,   A=47:36, R=35:24, G=23:12, B=11:0 */
166 const uint AGL_RGB161616_BIT            = 0x00400000; /* 64 rgb bit/pixel,    R=47:32, G=31:16, B=15:0 */
167 const uint AGL_ARGB16161616_BIT         = 0x00800000; /* 64 argb bit/pixel,   A=63:48, R=47:32, G=31:16, B=15:0 */
168 const uint AGL_INDEX8_BIT           = 0x20000000; /* 8 bit color look up table */
169 const uint AGL_INDEX16_BIT          = 0x40000000; /* 16 bit color look up table */
170
171 const uint AGL_NO_ERROR             = 0; /* no error */
172 const uint AGL_BAD_ATTRIBUTE            = 10000; /* invalid pixel format attribute */
173 const uint AGL_BAD_PROPERTY         = 10001; /* invalid renderer property */
174 const uint AGL_BAD_PIXELFMT         = 10002; /* invalid pixel format */
175 const uint AGL_BAD_RENDINFO         = 10003; /* invalid renderer info */
176 const uint AGL_BAD_CONTEXT          = 10004; /* invalid context */
177 const uint AGL_BAD_DRAWABLE         = 10005; /* invalid drawable */
178 const uint AGL_BAD_GDEV             = 10006; /* invalid graphics device */
179 const uint AGL_BAD_STATE            = 10007; /* invalid context state */
180 const uint AGL_BAD_VALUE            = 10008; /* invalid numerical value */
181 const uint AGL_BAD_MATCH            = 10009; /* invalid share context */
182 const uint AGL_BAD_ENUM             = 10010; /* invalid enumerant */
183 const uint AGL_BAD_OFFSCREEN            = 10011; /* invalid offscreen drawable */
184 const uint AGL_BAD_FULLSCREEN           = 10012; /* invalid offscreen drawable */
185 const uint AGL_BAD_WINDOW           = 10013; /* invalid window */
186 const uint AGL_BAD_POINTER          = 10014; /* invalid pointer */
187 const uint AGL_BAD_MODULE           = 10015; /* invalid code module */
188 const uint AGL_BAD_ALLOC            = 10016; /* memory allocation failure */
189
190 /*
191  * Types and Structs
192  */
193 alias byte** Handle;
194 alias int* AGLPrivate;
195 alias int* GLIContext;
196 alias int* AGLDevice;
197 alias int* AGLRendererInfo;
198 alias int* AGLPixelFormat;
199 alias int* AGLContext;
200 alias int* AGLPbuffer;
201 alias ubyte Style;
202
203 struct RGBColor {
204     ushort red;
205     ushort green;
206     ushort blue;
207 }
208
209 struct GrafVars {
210     RGBColor rgbOpColor;
211     RGBColor rgbHiliteColor;
212     Handle pmFgColor;
213     short pmFgIndex;
214     Handle pmBkColor;
215     short pmBkIndex;
216     short pmFlags;
217 }
218 alias GrafVars AGLDrawable;
219
220 struct __GLIFunctionDispatchRec { extern (C) {
221     void (*accum)(GLIContext ctx, GLenum op, GLfloat value);
222     void (*alpha_func)(GLIContext ctx, GLenum func, GLclampf ref);
223     GLboolean (*are_textures_resident)(GLIContext ctx, GLsizei n, GLuint* textures, GLboolean* residences);
224     void (*array_element)(GLIContext ctx, GLint i);
225     void (*begin)(GLIContext ctx, GLenum mode);
226     void (*bind_texture)(GLIContext ctx, GLenum target, GLuint texture);
227     void (*bitmap)(GLIContext ctx, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, GLubyte* bitmap);
228     void (*blend_func)(GLIContext ctx, GLenum sfactor, GLenum dfactor);
229     void (*call_list)(GLIContext ctx, GLuint list);
230     void (*call_lists)(GLIContext ctx, GLsizei n, GLenum type, GLvoid* lists);
231     void (*clear)(GLIContext ctx, GLbitfield mask);
232     void (*clear_accum)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
233     void (*clear_color)(GLIContext ctx, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
234     void (*clear_depth)(GLIContext ctx, GLclampd depth);
235     void (*clear_index)(GLIContext ctx, GLfloat c);
236     void (*clear_stencil)(GLIContext ctx, GLint s);
237     void (*clip_plane)(GLIContext ctx, GLenum plane, GLdouble* equation);
238     void (*color3b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue);
239     void (*color3bv)(GLIContext ctx, GLbyte* v);
240     void (*color3d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue);
241     void (*color3dv)(GLIContext ctx, GLdouble* v);
242     void (*color3f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue);
243     void (*color3fv)(GLIContext ctx, GLfloat* v);
244     void (*color3i)(GLIContext ctx, GLint red, GLint green, GLint blue);
245     void (*color3iv)(GLIContext ctx, GLint* v);
246     void (*color3s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue);
247     void (*color3sv)(GLIContext ctx, GLshort* v);
248     void (*color3ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue);
249     void (*color3ubv)(GLIContext ctx, GLubyte* v);
250     void (*color3ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue);
251     void (*color3uiv)(GLIContext ctx, GLuint* v);
252     void (*color3us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue);
253     void (*color3usv)(GLIContext ctx, GLushort* v);
254     void (*color4b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
255     void (*color4bv)(GLIContext ctx, GLbyte* v);
256     void (*color4d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
257     void (*color4dv)(GLIContext ctx, GLdouble* v);
258     void (*color4f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
259     void (*color4fv)(GLIContext ctx, GLfloat* v);
260     void (*color4i)(GLIContext ctx, GLint red, GLint green, GLint blue, GLint alpha);
261     void (*color4iv)(GLIContext ctx, GLint* v);
262     void (*color4s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue, GLshort alpha);
263     void (*color4sv)(GLIContext ctx, GLshort* v);
264     void (*color4ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
265     void (*color4ubv)(GLIContext ctx, GLubyte* v);
266     void (*color4ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue, GLuint alpha);
267     void (*color4uiv)(GLIContext ctx, GLuint* v);
268     void (*color4us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue, GLushort alpha);
269     void (*color4usv)(GLIContext ctx, GLushort* v);
270     void (*color_mask)(GLIContext ctx, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
271     void (*color_material)(GLIContext ctx, GLenum face, GLenum mode);
272     void (*color_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, GLvoid* pointer);
273     void (*copy_pixels)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
274     void (*copy_tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
275     void (*copy_tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
276     void (*copy_tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
277     void (*copy_tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
278     void (*cull_face)(GLIContext ctx, GLenum mode);
279     void (*delete_lists)(GLIContext ctx, GLuint list, GLsizei range);
280     void (*delete_textures)(GLIContext ctx, GLsizei n, GLuint* textures);
281     void (*depth_func)(GLIContext ctx, GLenum func);
282     void (*depth_mask)(GLIContext ctx, GLboolean flag);
283     void (*depth_range)(GLIContext ctx, GLclampd zNear, GLclampd zFar);
284     void (*disable)(GLIContext ctx, GLenum cap);
285     void (*disable_client_state)(GLIContext ctx, GLenum array);
286     void (*draw_arrays)(GLIContext ctx, GLenum mode, GLint first, GLsizei count);
287     void (*draw_buffer)(GLIContext ctx, GLenum mode);
288     void (*draw_elements)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, GLvoid* indices);
289     void (*draw_pixels)(GLIContext ctx, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
290     void (*edge_flag)(GLIContext ctx, GLboolean flag);
291     void (*edge_flag_pointer)(GLIContext ctx, GLsizei stride, GLvoid* pointer);
292     void (*edge_flagv)(GLIContext ctx, GLboolean* flag);
293     void (*enable)(GLIContext ctx, GLenum cap);
294     void (*enable_client_state)(GLIContext ctx, GLenum array);
295     void (*end)(GLIContext ctx);
296     void (*end_list)(GLIContext ctx);
297     void (*eval_coord1d)(GLIContext ctx, GLdouble u);
298     void (*eval_coord1dv)(GLIContext ctx, GLdouble* u);
299     void (*eval_coord1f)(GLIContext ctx, GLfloat u);
300     void (*eval_coord1fv)(GLIContext ctx, GLfloat* u);
301     void (*eval_coord2d)(GLIContext ctx, GLdouble u, GLdouble v);
302     void (*eval_coord2dv)(GLIContext ctx, GLdouble* u);
303     void (*eval_coord2f)(GLIContext ctx, GLfloat u, GLfloat v);
304     void (*eval_coord2fv)(GLIContext ctx, GLfloat* u);
305     void (*eval_mesh1)(GLIContext ctx, GLenum mode, GLint i1, GLint i2);
306     void (*eval_mesh2)(GLIContext ctx, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
307     void (*eval_point1)(GLIContext ctx, GLint i);
308     void (*eval_point2)(GLIContext ctx, GLint i, GLint j);
309     void (*feedback_buffer)(GLIContext ctx, GLsizei size, GLenum type, GLfloat* buffer);
310     void (*finish)(GLIContext ctx);
311     void (*flush)(GLIContext ctx);
312     void (*fogf)(GLIContext ctx, GLenum pname, GLfloat param);
313     void (*fogfv)(GLIContext ctx, GLenum pname, GLfloat* params);
314     void (*fogi)(GLIContext ctx, GLenum pname, GLint param);
315     void (*fogiv)(GLIContext ctx, GLenum pname, GLint* params);
316     void (*front_face)(GLIContext ctx, GLenum mode);
317     void (*frustum)(GLIContext ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
318     GLuint (*gen_lists)(GLIContext ctx, GLsizei range);
319     void (*gen_textures)(GLIContext ctx, GLsizei n, GLuint* textures);
320     void (*get_booleanv)(GLIContext ctx, GLenum pname, GLboolean* params);
321     void (*get_clip_plane)(GLIContext ctx, GLenum plane, GLdouble* equation);
322     void (*get_doublev)(GLIContext ctx, GLenum pname, GLdouble* params);
323     GLenum (*get_error)(GLIContext ctx);
324     void (*get_floatv)(GLIContext ctx, GLenum pname, GLfloat* params);
325     void (*get_integerv)(GLIContext ctx, GLenum pname, GLint* params);
326     void (*get_lightfv)(GLIContext ctx, GLenum light, GLenum pname, GLfloat* params);
327     void (*get_lightiv)(GLIContext ctx, GLenum light, GLenum pname, GLint* params);
328     void (*get_mapdv)(GLIContext ctx, GLenum target, GLenum query, GLdouble* v);
329     void (*get_mapfv)(GLIContext ctx, GLenum target, GLenum query, GLfloat* v);
330     void (*get_mapiv)(GLIContext ctx, GLenum target, GLenum query, GLint* v);
331     void (*get_materialfv)(GLIContext ctx, GLenum face, GLenum pname, GLfloat* params);
332     void (*get_materialiv)(GLIContext ctx, GLenum face, GLenum pname, GLint* params);
333     void (*get_pixel_mapfv)(GLIContext ctx, GLenum map, GLfloat* values);
334     void (*get_pixel_mapuiv)(GLIContext ctx, GLenum map, GLuint* values);
335     void (*get_pixel_mapusv)(GLIContext ctx, GLenum map, GLushort* values);
336     void (*get_pointerv)(GLIContext ctx, GLenum pname, GLvoid** params);
337     void (*get_polygon_stipple)(GLIContext ctx, GLubyte* mask);
338     const GLubyte* (*get_string)(GLIContext ctx, GLenum name);
339     void (*get_tex_envfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat* params);
340     void (*get_tex_enviv)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
341     void (*get_tex_gendv)(GLIContext ctx, GLenum coord, GLenum pname, GLdouble* params);
342     void (*get_tex_genfv)(GLIContext ctx, GLenum coord, GLenum pname, GLfloat* params);
343     void (*get_tex_geniv)(GLIContext ctx, GLenum coord, GLenum pname, GLint* params);
344     void (*get_tex_image)(GLIContext ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid* pixels);
345     void (*get_tex_level_parameterfv)(GLIContext ctx, GLenum target, GLint level, GLenum pname, GLfloat* params);
346     void (*get_tex_level_parameteriv)(GLIContext ctx, GLenum target, GLint level, GLenum pname, GLint* params);
347     void (*get_tex_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat* params);
348     void (*get_tex_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
349     void (*hint)(GLIContext ctx, GLenum target, GLenum mode);
350     void (*index_mask)(GLIContext ctx, GLuint mask);
351     void (*index_pointer)(GLIContext ctx, GLenum type, GLsizei stride, GLvoid* pointer);
352     void (*indexd)(GLIContext ctx, GLdouble c);
353     void (*indexdv)(GLIContext ctx, GLdouble* c);
354     void (*indexf)(GLIContext ctx, GLfloat c);
355     void (*indexfv)(GLIContext ctx, GLfloat* c);
356     void (*indexi)(GLIContext ctx, GLint c);
357     void (*indexiv)(GLIContext ctx, GLint* c);
358     void (*indexs)(GLIContext ctx, GLshort c);
359     void (*indexsv)(GLIContext ctx, GLshort* c);
360     void (*indexub)(GLIContext ctx, GLubyte c);
361     void (*indexubv)(GLIContext ctx, GLubyte* c);
362     void (*init_names)(GLIContext ctx);
363     void (*interleaved_arrays)(GLIContext ctx, GLenum format, GLsizei stride, GLvoid* pointer);
364     GLboolean (*is_enabled)(GLIContext ctx, GLenum cap);
365     GLboolean (*is_list)(GLIContext ctx, GLuint list);
366     GLboolean (*is_texture)(GLIContext ctx, GLuint texture);
367     void (*light_modelf)(GLIContext ctx, GLenum pname, GLfloat param);
368     void (*light_modelfv)(GLIContext ctx, GLenum pname, GLfloat* params);
369     void (*light_modeli)(GLIContext ctx, GLenum pname, GLint param);
370     void (*light_modeliv)(GLIContext ctx, GLenum pname, GLint* params);
371     void (*lightf)(GLIContext ctx, GLenum light, GLenum pname, GLfloat param);
372     void (*lightfv)(GLIContext ctx, GLenum light, GLenum pname, GLfloat* params);
373     void (*lighti)(GLIContext ctx, GLenum light, GLenum pname, GLint param);
374     void (*lightiv)(GLIContext ctx, GLenum light, GLenum pname, GLint* params);
375     void (*line_stipple)(GLIContext ctx, GLint factor, GLushort pattern);
376     void (*line_width)(GLIContext ctx, GLfloat width);
377     void (*list_base)(GLIContext ctx, GLuint base);
378     void (*load_identity)(GLIContext ctx);
379     void (*load_matrixd)(GLIContext ctx, GLdouble* m);
380     void (*load_matrixf)(GLIContext ctx, GLfloat* m);
381     void (*load_name)(GLIContext ctx, GLuint name);
382     void (*logic_op)(GLIContext ctx, GLenum opcode);
383     void (*map1d)(GLIContext ctx, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, GLdouble* points);
384     void (*map1f)(GLIContext ctx, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, GLfloat* points);
385     void (*map2d)(GLIContext ctx, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble* points);
386     void (*map2f)(GLIContext ctx, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat* points);
387     void (*map_grid1d)(GLIContext ctx, GLint un, GLdouble u1, GLdouble u2);
388     void (*map_grid1f)(GLIContext ctx, GLint un, GLfloat u1, GLfloat u2);
389     void (*map_grid2d)(GLIContext ctx, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
390     void (*map_grid2f)(GLIContext ctx, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
391     void (*materialf)(GLIContext ctx, GLenum face, GLenum pname, GLfloat param);
392     void (*materialfv)(GLIContext ctx, GLenum face, GLenum pname, GLfloat* params);
393     void (*materiali)(GLIContext ctx, GLenum face, GLenum pname, GLint param);
394     void (*materialiv)(GLIContext ctx, GLenum face, GLenum pname, GLint* params);
395     void (*matrix_mode)(GLIContext ctx, GLenum mode);
396     void (*mult_matrixd)(GLIContext ctx, GLdouble* m);
397     void (*mult_matrixf)(GLIContext ctx, GLfloat* m);
398     void (*new_list)(GLIContext ctx, GLuint list, GLenum mode);
399     void (*normal3b)(GLIContext ctx, GLbyte nx, GLbyte ny, GLbyte nz);
400     void (*normal3bv)(GLIContext ctx, GLbyte* v);
401     void (*normal3d)(GLIContext ctx, GLdouble nx, GLdouble ny, GLdouble nz);
402     void (*normal3dv)(GLIContext ctx, GLdouble* v);
403     void (*normal3f)(GLIContext ctx, GLfloat nx, GLfloat ny, GLfloat nz);
404     void (*normal3fv)(GLIContext ctx, GLfloat* v);
405     void (*normal3i)(GLIContext ctx, GLint nx, GLint ny, GLint nz);
406     void (*normal3iv)(GLIContext ctx, GLint* v);
407     void (*normal3s)(GLIContext ctx, GLshort nx, GLshort ny, GLshort nz);
408     void (*normal3sv)(GLIContext ctx, GLshort* v);
409     void (*normal_pointer)(GLIContext ctx, GLenum type, GLsizei stride, GLvoid* pointer);
410     void (*ortho)(GLIContext ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
411     void (*pass_through)(GLIContext ctx, GLfloat token);
412     void (*pixel_mapfv)(GLIContext ctx, GLenum map, GLsizei mapsize, GLfloat* values);
413     void (*pixel_mapuiv)(GLIContext ctx, GLenum map, GLsizei mapsize, GLuint* values);
414     void (*pixel_mapusv)(GLIContext ctx, GLenum map, GLsizei mapsize, GLushort* values);
415     void (*pixel_storef)(GLIContext ctx, GLenum pname, GLfloat param);
416     void (*pixel_storei)(GLIContext ctx, GLenum pname, GLint param);
417     void (*pixel_transferf)(GLIContext ctx, GLenum pname, GLfloat param);
418     void (*pixel_transferi)(GLIContext ctx, GLenum pname, GLint param);
419     void (*pixel_zoom)(GLIContext ctx, GLfloat xfactor, GLfloat yfactor);
420     void (*point_size)(GLIContext ctx, GLfloat size);
421     void (*polygon_mode)(GLIContext ctx, GLenum face, GLenum mode);
422     void (*polygon_offset)(GLIContext ctx, GLfloat factor, GLfloat units);
423     void (*polygon_stipple)(GLIContext ctx, GLubyte* mask);
424     void (*pop_attrib)(GLIContext ctx);
425     void (*pop_client_attrib)(GLIContext ctx);
426     void (*pop_matrix)(GLIContext ctx);
427     void (*pop_name)(GLIContext ctx);
428     void (*prioritize_textures)(GLIContext ctx, GLsizei n, GLuint* textures, GLclampf* priorities);
429     void (*push_attrib)(GLIContext ctx, GLbitfield mask);
430     void (*push_client_attrib)(GLIContext ctx, GLbitfield mask);
431     void (*push_matrix)(GLIContext ctx);
432     void (*push_name)(GLIContext ctx, GLuint name);
433     void (*raster_pos2d)(GLIContext ctx, GLdouble x, GLdouble y);
434     void (*raster_pos2dv)(GLIContext ctx, GLdouble* v);
435     void (*raster_pos2f)(GLIContext ctx, GLfloat x, GLfloat y);
436     void (*raster_pos2fv)(GLIContext ctx, GLfloat* v);
437     void (*raster_pos2i)(GLIContext ctx, GLint x, GLint y);
438     void (*raster_pos2iv)(GLIContext ctx, GLint* v);
439     void (*raster_pos2s)(GLIContext ctx, GLshort x, GLshort y);
440     void (*raster_pos2sv)(GLIContext ctx, GLshort* v);
441     void (*raster_pos3d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z);
442     void (*raster_pos3dv)(GLIContext ctx, GLdouble* v);
443     void (*raster_pos3f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z);
444     void (*raster_pos3fv)(GLIContext ctx, GLfloat* v);
445     void (*raster_pos3i)(GLIContext ctx, GLint x, GLint y, GLint z);
446     void (*raster_pos3iv)(GLIContext ctx, GLint* v);
447     void (*raster_pos3s)(GLIContext ctx, GLshort x, GLshort y, GLshort z);
448     void (*raster_pos3sv)(GLIContext ctx, GLshort* v);
449     void (*raster_pos4d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
450     void (*raster_pos4dv)(GLIContext ctx, GLdouble* v);
451     void (*raster_pos4f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
452     void (*raster_pos4fv)(GLIContext ctx, GLfloat* v);
453     void (*raster_pos4i)(GLIContext ctx, GLint x, GLint y, GLint z, GLint w);
454     void (*raster_pos4iv)(GLIContext ctx, GLint* v);
455     void (*raster_pos4s)(GLIContext ctx, GLshort x, GLshort y, GLshort z, GLshort w);
456     void (*raster_pos4sv)(GLIContext ctx, GLshort* v);
457     void (*read_buffer)(GLIContext ctx, GLenum mode);
458     void (*read_pixels)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
459     void (*rectd)(GLIContext ctx, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
460     void (*rectdv)(GLIContext ctx, GLdouble* v1, GLdouble* v2);
461     void (*rectf)(GLIContext ctx, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
462     void (*rectfv)(GLIContext ctx, GLfloat* v1, GLfloat* v2);
463     void (*recti)(GLIContext ctx, GLint x1, GLint y1, GLint x2, GLint y2);
464     void (*rectiv)(GLIContext ctx, GLint* v1, GLint* v2);
465     void (*rects)(GLIContext ctx, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
466     void (*rectsv)(GLIContext ctx, GLshort* v1, GLshort* v2);
467     GLint (*render_mode)(GLIContext ctx, GLenum mode);
468     void (*rotated)(GLIContext ctx, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
469     void (*rotatef)(GLIContext ctx, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
470     void (*scaled)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z);
471     void (*scalef)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z);
472     void (*scissor)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height);
473     void (*select_buffer)(GLIContext ctx, GLsizei size, GLuint* buffer);
474     void (*shade_model)(GLIContext ctx, GLenum mode);
475     void (*stencil_func)(GLIContext ctx, GLenum func, GLint ref, GLuint mask);
476     void (*stencil_mask)(GLIContext ctx, GLuint mask);
477     void (*stencil_op)(GLIContext ctx, GLenum fail, GLenum zfail, GLenum zpass);
478     void (*tex_coord1d)(GLIContext ctx, GLdouble s);
479     void (*tex_coord1dv)(GLIContext ctx, GLdouble* v);
480     void (*tex_coord1f)(GLIContext ctx, GLfloat s);
481     void (*tex_coord1fv)(GLIContext ctx, GLfloat* v);
482     void (*tex_coord1i)(GLIContext ctx, GLint s);
483     void (*tex_coord1iv)(GLIContext ctx, GLint* v);
484     void (*tex_coord1s)(GLIContext ctx, GLshort s);
485     void (*tex_coord1sv)(GLIContext ctx, GLshort* v);
486     void (*tex_coord2d)(GLIContext ctx, GLdouble s, GLdouble t);
487     void (*tex_coord2dv)(GLIContext ctx, GLdouble* v);
488     void (*tex_coord2f)(GLIContext ctx, GLfloat s, GLfloat t);
489     void (*tex_coord2fv)(GLIContext ctx, GLfloat* v);
490     void (*tex_coord2i)(GLIContext ctx, GLint s, GLint t);
491     void (*tex_coord2iv)(GLIContext ctx, GLint* v);
492     void (*tex_coord2s)(GLIContext ctx, GLshort s, GLshort t);
493     void (*tex_coord2sv)(GLIContext ctx, GLshort* v);
494     void (*tex_coord3d)(GLIContext ctx, GLdouble s, GLdouble t, GLdouble r);
495     void (*tex_coord3dv)(GLIContext ctx, GLdouble* v);
496     void (*tex_coord3f)(GLIContext ctx, GLfloat s, GLfloat t, GLfloat r);
497     void (*tex_coord3fv)(GLIContext ctx, GLfloat* v);
498     void (*tex_coord3i)(GLIContext ctx, GLint s, GLint t, GLint r);
499     void (*tex_coord3iv)(GLIContext ctx, GLint* v);
500     void (*tex_coord3s)(GLIContext ctx, GLshort s, GLshort t, GLshort r);
501     void (*tex_coord3sv)(GLIContext ctx, GLshort* v);
502     void (*tex_coord4d)(GLIContext ctx, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
503     void (*tex_coord4dv)(GLIContext ctx, GLdouble* v);
504     void (*tex_coord4f)(GLIContext ctx, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
505     void (*tex_coord4fv)(GLIContext ctx, GLfloat* v);
506     void (*tex_coord4i)(GLIContext ctx, GLint s, GLint t, GLint r, GLint q);
507     void (*tex_coord4iv)(GLIContext ctx, GLint* v);
508     void (*tex_coord4s)(GLIContext ctx, GLshort s, GLshort t, GLshort r, GLshort q);
509     void (*tex_coord4sv)(GLIContext ctx, GLshort* v);
510     void (*tex_coord_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, GLvoid* pointer);
511     void (*tex_envf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat param);
512     void (*tex_envfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat* params);
513     void (*tex_envi)(GLIContext ctx, GLenum target, GLenum pname, GLint param);
514     void (*tex_enviv)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
515     void (*tex_gend)(GLIContext ctx, GLenum coord, GLenum pname, GLdouble param);
516     void (*tex_gendv)(GLIContext ctx, GLenum coord, GLenum pname, GLdouble* params);
517     void (*tex_genf)(GLIContext ctx, GLenum coord, GLenum pname, GLfloat param);
518     void (*tex_genfv)(GLIContext ctx, GLenum coord, GLenum pname, GLfloat* params);
519     void (*tex_geni)(GLIContext ctx, GLenum coord, GLenum pname, GLint param);
520     void (*tex_geniv)(GLIContext ctx, GLenum coord, GLenum pname, GLint* params);
521     void (*tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, GLvoid* pixels);
522     void (*tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLvoid* pixels);
523     void (*tex_parameterf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat param);
524     void (*tex_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat* params);
525     void (*tex_parameteri)(GLIContext ctx, GLenum target, GLenum pname, GLint param);
526     void (*tex_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
527     void (*tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, GLvoid* pixels);
528     void (*tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
529     void (*translated)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z);
530     void (*translatef)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z);
531     void (*vertex2d)(GLIContext ctx, GLdouble x, GLdouble y);
532     void (*vertex2dv)(GLIContext ctx, GLdouble* v);
533     void (*vertex2f)(GLIContext ctx, GLfloat x, GLfloat y);
534     void (*vertex2fv)(GLIContext ctx, GLfloat* v);
535     void (*vertex2i)(GLIContext ctx, GLint x, GLint y);
536     void (*vertex2iv)(GLIContext ctx, GLint* v);
537     void (*vertex2s)(GLIContext ctx, GLshort x, GLshort y);
538     void (*vertex2sv)(GLIContext ctx, GLshort* v);
539     void (*vertex3d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z);
540     void (*vertex3dv)(GLIContext ctx, GLdouble* v);
541     void (*vertex3f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z);
542     void (*vertex3fv)(GLIContext ctx, GLfloat* v);
543     void (*vertex3i)(GLIContext ctx, GLint x, GLint y, GLint z);
544     void (*vertex3iv)(GLIContext ctx, GLint* v);
545     void (*vertex3s)(GLIContext ctx, GLshort x, GLshort y, GLshort z);
546     void (*vertex3sv)(GLIContext ctx, GLshort* v);
547     void (*vertex4d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
548     void (*vertex4dv)(GLIContext ctx, GLdouble* v);
549     void (*vertex4f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
550     void (*vertex4fv)(GLIContext ctx, GLfloat* v);
551     void (*vertex4i)(GLIContext ctx, GLint x, GLint y, GLint z, GLint w);
552     void (*vertex4iv)(GLIContext ctx, GLint* v);
553     void (*vertex4s)(GLIContext ctx, GLshort x, GLshort y, GLshort z, GLshort w);
554     void (*vertex4sv)(GLIContext ctx, GLshort* v);
555     void (*vertex_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, GLvoid* pointer);
556     void (*viewport)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height);
557     void (*blend_func_separate)(GLIContext ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
558     void (*blend_color)(GLIContext ctx, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
559     void (*blend_equation)(GLIContext ctx, GLenum mode);
560     void (*lock_arrays_EXT)(GLIContext ctx, GLint first, GLsizei count);
561     void (*unlock_arrays_EXT)(GLIContext ctx);
562     void (*client_active_texture)(GLIContext ctx, GLenum target);
563     void (*active_texture)(GLIContext ctx, GLenum target);
564     void (*multi_tex_coord1d)(GLIContext ctx, GLenum target, GLdouble s);
565     void (*multi_tex_coord1dv)(GLIContext ctx, GLenum target, GLdouble* v);
566     void (*multi_tex_coord1f)(GLIContext ctx, GLenum target, GLfloat s);
567     void (*multi_tex_coord1fv)(GLIContext ctx, GLenum target, GLfloat* v);
568     void (*multi_tex_coord1i)(GLIContext ctx, GLenum target, GLint s);
569     void (*multi_tex_coord1iv)(GLIContext ctx, GLenum target, GLint* v);
570     void (*multi_tex_coord1s)(GLIContext ctx, GLenum target, GLshort s);
571     void (*multi_tex_coord1sv)(GLIContext ctx, GLenum target, GLshort* v);
572     void (*multi_tex_coord2d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t);
573     void (*multi_tex_coord2dv)(GLIContext ctx, GLenum target, GLdouble* v);
574     void (*multi_tex_coord2f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t);
575     void (*multi_tex_coord2fv)(GLIContext ctx, GLenum target, GLfloat* v);
576     void (*multi_tex_coord2i)(GLIContext ctx, GLenum target, GLint s, GLint t);
577     void (*multi_tex_coord2iv)(GLIContext ctx, GLenum target, GLint* v);
578     void (*multi_tex_coord2s)(GLIContext ctx, GLenum target, GLshort s, GLshort t);
579     void (*multi_tex_coord2sv)(GLIContext ctx, GLenum target, GLshort* v);
580     void (*multi_tex_coord3d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t, GLdouble r);
581     void (*multi_tex_coord3dv)(GLIContext ctx, GLenum target, GLdouble* v);
582     void (*multi_tex_coord3f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t, GLfloat r);
583     void (*multi_tex_coord3fv)(GLIContext ctx, GLenum target, GLfloat* v);
584     void (*multi_tex_coord3i)(GLIContext ctx, GLenum target, GLint s, GLint t, GLint r);
585     void (*multi_tex_coord3iv)(GLIContext ctx, GLenum target, GLint* v);
586     void (*multi_tex_coord3s)(GLIContext ctx, GLenum target, GLshort s, GLshort t, GLshort r);
587     void (*multi_tex_coord3sv)(GLIContext ctx, GLenum target, GLshort* v);
588     void (*multi_tex_coord4d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
589     void (*multi_tex_coord4dv)(GLIContext ctx, GLenum target, GLdouble* v);
590     void (*multi_tex_coord4f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
591     void (*multi_tex_coord4fv)(GLIContext ctx, GLenum target, GLfloat* v);
592     void (*multi_tex_coord4i)(GLIContext ctx, GLenum target, GLint s, GLint t, GLint r, GLint q);
593     void (*multi_tex_coord4iv)(GLIContext ctx, GLenum target, GLint* v);
594     void (*multi_tex_coord4s)(GLIContext ctx, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
595     void (*multi_tex_coord4sv)(GLIContext ctx, GLenum target, GLshort* v);
596     void (*load_transpose_matrixd)(GLIContext ctx, GLdouble* m);
597     void (*load_transpose_matrixf)(GLIContext ctx, GLfloat* m);
598     void (*mult_transpose_matrixd)(GLIContext ctx, GLdouble* m);
599     void (*mult_transpose_matrixf)(GLIContext ctx, GLfloat* m);
600     void (*compressed_tex_image3D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLvoid* data);
601     void (*compressed_tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLvoid* data);
602     void (*compressed_tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, GLvoid* data);
603     void (*compressed_tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLvoid* data);
604     void (*compressed_tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLvoid* data);
605     void (*compressed_tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, GLvoid* data);
606     void (*get_compressed_tex_image)(GLIContext ctx, GLenum target, GLint level, GLvoid* img);
607     void (*secondary_color3b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue);
608     void (*secondary_color3bv)(GLIContext ctx, GLbyte* v);
609     void (*secondary_color3d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue);
610     void (*secondary_color3dv)(GLIContext ctx, GLdouble* v);
611     void (*secondary_color3f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue);
612     void (*secondary_color3fv)(GLIContext ctx, GLfloat* v);
613     void (*secondary_color3i)(GLIContext ctx, GLint red, GLint green, GLint blue);
614     void (*secondary_color3iv)(GLIContext ctx, GLint* v);
615     void (*secondary_color3s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue);
616     void (*secondary_color3sv)(GLIContext ctx, GLshort* v);
617     void (*secondary_color3ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue);
618     void (*secondary_color3ubv)(GLIContext ctx, GLubyte* v);
619     void (*secondary_color3ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue);
620     void (*secondary_color3uiv)(GLIContext ctx, GLuint* v);
621     void (*secondary_color3us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue);
622     void (*secondary_color3usv)(GLIContext ctx, GLushort* v);
623     void (*secondary_color_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, GLvoid* pointer);
624     void (*vertex_array_range_EXT)(GLIContext ctx, GLsizei count, GLvoid* pointer);
625     void (*flush_vertex_array_range_EXT)(GLIContext ctx, GLsizei count, GLvoid* pointer);
626     void (*draw_range_elements)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLvoid* indices);
627     void (*color_table)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, GLvoid* table);
628     void (*color_table_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat* params);
629     void (*color_table_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
630     void (*copy_color_table)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
631     void (*get_color_table)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid* table);
632     void (*get_color_table_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat* params);
633     void (*get_color_table_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
634     void (*color_sub_table)(GLIContext ctx, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, GLvoid* data);
635     void (*copy_color_sub_table)(GLIContext ctx, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
636     void (*convolution_filter1D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, GLvoid* image);
637     void (*convolution_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* image);
638     void (*convolution_parameterf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat params);
639     void (*convolution_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat* params);
640     void (*convolution_parameteri)(GLIContext ctx, GLenum target, GLenum pname, GLint params);
641     void (*convolution_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
642     void (*copy_convolution_filter1D)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
643     void (*copy_convolution_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
644     void (*get_convolution_filter)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid* image);
645     void (*get_convolution_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat* params);
646     void (*get_convolution_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
647     void (*get_separable_filter)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid* row, GLvoid* column, GLvoid* span);
648     void (*separable_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* row, GLvoid* column);
649     void (*get_histogram)(GLIContext ctx, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid* values);
650     void (*get_histogram_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat* params);
651     void (*get_histogram_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
652     void (*get_minmax)(GLIContext ctx, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid* values);
653     void (*get_minmax_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat* params);
654     void (*get_minmax_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
655     void (*histogram)(GLIContext ctx, GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
656     void (*minmax)(GLIContext ctx, GLenum target, GLenum internalformat, GLboolean sink);
657     void (*reset_histogram)(GLIContext ctx, GLenum target);
658     void (*reset_minmax)(GLIContext ctx, GLenum target);
659     void (*tex_image3D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLvoid* pixels);
660     void (*tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* pixels);
661     void (*copy_tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
662     void (*combiner_parameterfv_NV)(GLIContext ctx, GLenum pname, GLfloat* params);
663     void (*combiner_parameterf_NV)(GLIContext ctx, GLenum pname, GLfloat param);
664     void (*combiner_parameteriv_NV)(GLIContext ctx, GLenum pname, GLint* params);
665     void (*combiner_parameteri_NV)(GLIContext ctx, GLenum pname, GLint param);
666     void (*combiner_input_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
667     void (*combiner_output_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
668     void (*final_combiner_input_NV)(GLIContext ctx, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
669     void (*get_combiner_input_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat* params);
670     void (*get_combiner_input_parameteriv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint* params);
671     void (*get_combiner_output_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum pname, GLfloat* params);
672     void (*get_combiner_output_parameteriv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum pname, GLint* params);
673     void (*get_final_combiner_input_parameterfv_NV)(GLIContext ctx, GLenum variable, GLenum pname, GLfloat* params);
674     void (*get_final_combiner_input_parameteriv_NV)(GLIContext ctx, GLenum variable, GLenum pname, GLint* params);
675     void (*combiner_stage_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum pname, GLfloat* params);
676     void (*get_combiner_stage_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum pname, GLfloat* params);
677     void (*texture_range_APPLE)(GLIContext ctx, GLenum target, GLsizei length, GLvoid* pointer);
678     void (*get_tex_parameter_pointerv_APPLE)(GLIContext ctx, GLenum target, GLenum pname, GLvoid** params);
679     void (*blend_equation_separate_ATI)(GLIContext ctx, GLenum equationRGB, GLenum equationAlpha);
680     void (*sample_coverage)(GLIContext ctx, GLclampf value, GLboolean invert);
681     void (*sample_pass)(GLIContext ctx, GLenum mode);
682     void (*pn_trianglesi_ATI)(GLIContext ctx, GLenum pname, GLint param);
683     void (*pn_trianglesf_ATI)(GLIContext ctx, GLenum pname, GLfloat param);
684     void (*gen_fences_APPLE)(GLIContext ctx, GLsizei n, GLuint* fences);
685     void (*delete_fences_APPLE)(GLIContext ctx, GLsizei n, GLuint* fences);
686     void (*set_fence_APPLE)(GLIContext ctx, GLuint fence);
687     GLboolean (*is_fence_APPLE)(GLIContext ctx, GLuint fence);
688     GLboolean (*test_fence_APPLE)(GLIContext ctx, GLuint fence);
689     void (*finish_fence_APPLE)(GLIContext ctx, GLuint fence);
690     GLboolean (*test_object_APPLE)(GLIContext ctx, GLenum object, GLuint name);
691     void (*finish_object_APPLE)(GLIContext ctx, GLenum object, GLuint name);
692     void (*bind_program_ARB)(GLIContext ctx, GLenum target, GLuint program);
693     void (*delete_programs_ARB)(GLIContext ctx, GLsizei n, GLuint* programs);
694     void (*gen_programs_ARB)(GLIContext ctx, GLsizei n, GLuint* programs);
695     GLboolean (*is_program_ARB)(GLIContext ctx, GLuint program);
696     void (*vertex_attrib1s_ARB)(GLIContext ctx, GLuint index, GLshort x);
697     void (*vertex_attrib1f_ARB)(GLIContext ctx, GLuint index, GLfloat x);
698     void (*vertex_attrib1d_ARB)(GLIContext ctx, GLuint index, GLdouble x);
699     void (*vertex_attrib2s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y);
700     void (*vertex_attrib2f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y);
701     void (*vertex_attrib2d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y);
702     void (*vertex_attrib3s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y, GLshort z);
703     void (*vertex_attrib3f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z);
704     void (*vertex_attrib3d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z);
705     void (*vertex_attrib4s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
706     void (*vertex_attrib4f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
707     void (*vertex_attrib4d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
708     void (*vertex_attrib4Nub_ARB)(GLIContext ctx, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
709     void (*vertex_attrib1sv_ARB)(GLIContext ctx, GLuint index, GLshort* v);
710     void (*vertex_attrib1fv_ARB)(GLIContext ctx, GLuint index, GLfloat* v);
711     void (*vertex_attrib1dv_ARB)(GLIContext ctx, GLuint index, GLdouble* v);
712     void (*vertex_attrib2sv_ARB)(GLIContext ctx, GLuint index, GLshort* v);
713     void (*vertex_attrib2fv_ARB)(GLIContext ctx, GLuint index, GLfloat* v);
714     void (*vertex_attrib2dv_ARB)(GLIContext ctx, GLuint index, GLdouble* v);
715     void (*vertex_attrib3sv_ARB)(GLIContext ctx, GLuint index, GLshort* v);
716     void (*vertex_attrib3fv_ARB)(GLIContext ctx, GLuint index, GLfloat* v);
717     void (*vertex_attrib3dv_ARB)(GLIContext ctx, GLuint index, GLdouble* v);
718     void (*vertex_attrib4bv_ARB)(GLIContext ctx, GLuint index, GLbyte* v);
719     void (*vertex_attrib4sv_ARB)(GLIContext ctx, GLuint index, GLshort* v);
720     void (*vertex_attrib4iv_ARB)(GLIContext ctx, GLuint index, GLint* v);
721     void (*vertex_attrib4ubv_ARB)(GLIContext ctx, GLuint index, GLubyte* v);
722     void (*vertex_attrib4usv_ARB)(GLIContext ctx, GLuint index, GLushort* v);
723     void (*vertex_attrib4uiv_ARB)(GLIContext ctx, GLuint index, GLuint* v);
724     void (*vertex_attrib4fv_ARB)(GLIContext ctx, GLuint index, GLfloat* v);
725     void (*vertex_attrib4dv_ARB)(GLIContext ctx, GLuint index, GLdouble* v);
726     void (*vertex_attrib4Nbv_ARB)(GLIContext ctx, GLuint index, GLbyte* v);
727     void (*vertex_attrib4Nsv_ARB)(GLIContext ctx, GLuint index, GLshort* v);
728     void (*vertex_attrib4Niv_ARB)(GLIContext ctx, GLuint index, GLint* v);
729     void (*vertex_attrib4Nubv_ARB)(GLIContext ctx, GLuint index, GLubyte* v);
730     void (*vertex_attrib4Nusv_ARB)(GLIContext ctx, GLuint index, GLushort* v);
731     void (*vertex_attrib4Nuiv_ARB)(GLIContext ctx, GLuint index, GLuint* v);
732     void (*vertex_attrib_pointer_ARB)(GLIContext ctx, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLvoid* pointer);
733     void (*enable_vertex_attrib_array_ARB)(GLIContext ctx, GLuint index);
734     void (*disable_vertex_attrib_array_ARB)(GLIContext ctx, GLuint index);
735     void (*get_vertex_attribdv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLdouble* params);
736     void (*get_vertex_attribfv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLfloat* params);
737     void (*get_vertex_attribiv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLint* params);
738     void (*get_vertex_attrib_pointerv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLvoid** pointer);
739     void (*program_env_parameter4d_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
740     void (*program_env_parameter4dv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble* params);
741     void (*program_env_parameter4f_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
742     void (*program_env_parameter4fv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat* params);
743     void (*program_local_parameter4d_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
744     void (*program_local_parameter4dv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble* params);
745     void (*program_local_parameter4f_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
746     void (*program_local_parameter4fv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat* params);
747     void (*get_program_env_parameterdv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble* params);
748     void (*get_program_env_parameterfv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat* params);
749     void (*get_program_local_parameterdv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble* params);
750     void (*get_program_local_parameterfv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat* params);
751     void (*program_string_ARB)(GLIContext ctx, GLenum target, GLenum format, GLsizei len, GLvoid* string);
752     void (*get_program_string_ARB)(GLIContext ctx, GLenum target, GLenum pname, GLvoid* string);
753     void (*get_programiv_ARB)(GLIContext ctx, GLenum target, GLenum pname, GLint* params);
754     void (*enable_vertex_attrib_ARB)(GLIContext ctx, GLuint index, GLenum pname);
755     void (*disable_vertex_attrib_ARB)(GLIContext ctx, GLuint index, GLenum pname);
756     GLboolean (*is_vertex_attrib_enabled_ARB)(GLIContext ctx, GLuint index, GLenum pname);
757     void (*map_vertex_attrib1d_ARB)(GLIContext ctx, GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, GLdouble* points);
758     void (*map_vertex_attrib1f_ARB)(GLIContext ctx, GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, GLfloat* points);
759     void (*map_vertex_attrib2d_ARB)(GLIContext ctx, GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble* points);
760     void (*map_vertex_attrib2f_ARB)(GLIContext ctx, GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat* points);
761     void (*point_parameterf)(GLIContext ctx, GLenum pname, GLfloat param);
762     void (*point_parameterfv)(GLIContext ctx, GLenum pname, GLfloat* params);
763     void (*point_parameteri)(GLIContext ctx, GLenum pname, GLint param);
764     void (*point_parameteriv)(GLIContext ctx, GLenum pname, GLint* params);
765     void (*fog_coordf)(GLIContext ctx, GLfloat coord);
766     void (*fog_coordfv)(GLIContext ctx, GLfloat* coord);
767     void (*fog_coordd)(GLIContext ctx, GLdouble coord);
768     void (*fog_coorddv)(GLIContext ctx, GLdouble* coord);
769     void (*fog_coord_pointer)(GLIContext ctx, GLenum type, GLsizei stride, GLvoid* pointer);
770     void (*vertex_array_parameteri_EXT)(GLIContext ctx, GLenum pname, GLint param);
771     void (*bind_vertex_array_EXT)(GLIContext ctx, GLuint id);
772     void (*delete_vertex_arrays_EXT)(GLIContext ctx, GLsizei n, GLuint* ids);
773     void (*gen_vertex_arrays_EXT)(GLIContext ctx, GLsizei n, GLuint* ids);
774     GLboolean (*is_vertex_array_EXT)(GLIContext ctx, GLuint id);
775     void (*element_pointer_APPLE)(GLIContext ctx, GLenum type, GLvoid* pointer);
776     void (*draw_element_array_APPLE)(GLIContext ctx, GLenum mode, GLint first, GLsizei count);
777     void (*draw_range_element_array_APPLE)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
778     void (*weightbv_ARB)(GLIContext ctx, GLint size, GLbyte* weights);
779     void (*weightsv_ARB)(GLIContext ctx, GLint size, GLshort* weights);
780     void (*weightiv_ARB)(GLIContext ctx, GLint size, GLint* weights);
781     void (*weightfv_ARB)(GLIContext ctx, GLint size, GLfloat* weights);
782     void (*weightdv_ARB)(GLIContext ctx, GLint size, GLdouble* weights);
783     void (*weightubv_ARB)(GLIContext ctx, GLint size, GLubyte* weights);
784     void (*weightusv_ARB)(GLIContext ctx, GLint size, GLushort* weights);
785     void (*weightuiv_ARB)(GLIContext ctx, GLint size, GLuint* weights);
786     void (*weight_pointer_ARB)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, GLvoid* pointer);
787     void (*vertex_blend_ARB)(GLIContext ctx, GLint count);
788     void (*multi_draw_arrays)(GLIContext ctx, GLenum mode, GLint* first, GLsizei* count, GLsizei primcount);
789     void (*multi_draw_elements)(GLIContext ctx, GLenum mode, GLsizei* count, GLenum type, GLvoid** indices, GLsizei primcount);
790     void (*window_pos2d) (GLIContext ctx, GLdouble x, GLdouble y);
791     void (*window_pos2dv) (GLIContext ctx, GLdouble* v);
792     void (*window_pos2f) (GLIContext ctx, GLfloat x, GLfloat y);
793     void (*window_pos2fv) (GLIContext ctx, GLfloat* v);
794     void (*window_pos2i) (GLIContext ctx, GLint x, GLint y);
795     void (*window_pos2iv) (GLIContext ctx, GLint* v);
796     void (*window_pos2s) (GLIContext ctx, GLshort x, GLshort y);
797     void (*window_pos2sv) (GLIContext ctx, GLshort* v);
798     void (*window_pos3d) (GLIContext ctx, GLdouble x, GLdouble y, GLdouble z);
799     void (*window_pos3dv) (GLIContext ctx, GLdouble* v);
800     void (*window_pos3f) (GLIContext ctx, GLfloat x, GLfloat y, GLfloat z);
801     void (*window_pos3fv) (GLIContext ctx, GLfloat* v);
802     void (*window_pos3i) (GLIContext ctx, GLint x, GLint y, GLint z);
803     void (*window_pos3iv) (GLIContext ctx, GLint* v);
804     void (*window_pos3s) (GLIContext ctx, GLshort x, GLshort y, GLshort z);
805     void (*window_pos3sv) (GLIContext ctx, GLshort* v);
806     void (*active_stencil_face_EXT) (GLIContext ctx, GLenum face);
807 } }
808 alias __GLIFunctionDispatchRec GLIFunctionDispatch;
809
810 struct __AGLContextRec {
811     GLIContext      rend;
812     GLIFunctionDispatch disp;
813     AGLPrivate      priv;
814 }
815
816 /*
817  * Functions
818  */
819 extern (C):
820 AGLPixelFormat aglChoosePixelFormat (AGLDevice* gdevs, GLint ndev, GLint* attribs);
821 void aglDestroyPixelFormat (AGLPixelFormat pix);
822 AGLPixelFormat aglNextPixelFormat( AGLPixelFormat pix);
823 GLboolean aglDescribePixelFormat (AGLPixelFormat pix, GLint attrib, GLint* value);
824 AGLDevice* aglDevicesOfPixelFormat (AGLPixelFormat pix, GLint* ndevs);
825
826 AGLRendererInfo aglQueryRendererInfo (AGLDevice* gdevs, GLint ndev);
827 void aglDestroyRendererInfo (AGLRendererInfo rend);
828 AGLRendererInfo aglNextRendererInfo (AGLRendererInfo rend);
829 GLboolean aglDescribeRenderer (AGLRendererInfo rend, GLint prop, GLint* value);
830
831 AGLContext aglCreateContext (AGLPixelFormat pix, AGLContext share);
832 GLboolean aglDestroyContext (AGLContext ctx);
833 GLboolean aglCopyContext (AGLContext src, AGLContext dst, GLuint mask);
834 GLboolean aglUpdateContext (AGLContext ctx);
835
836 GLboolean aglSetCurrentContext (AGLContext ctx);
837 AGLContext aglGetCurrentContext ();
838
839 GLboolean aglSetDrawable (AGLContext ctx, AGLDrawable draw);
840 GLboolean aglSetOffScreen (AGLContext ctx, GLsizei width, GLsizei height, GLsizei rowbytes, GLvoid* baseaddr);
841 GLboolean aglSetFullScreen (AGLContext ctx, GLsizei width, GLsizei height, GLsizei freq, GLint device);
842 AGLDrawable aglGetDrawable (AGLContext ctx);
843
844 GLboolean aglSetVirtualScreen (AGLContext ctx, GLint screen);
845 GLint aglGetVirtualScreen (AGLContext ctx);
846
847 void aglGetVersion (GLint* major, GLint* minor);
848
849 GLboolean aglConfigure (GLenum pname, GLuint param);
850
851 void aglSwapBuffers (AGLContext ctx);
852
853 GLboolean aglEnable (AGLContext ctx, GLenum pname);
854 GLboolean aglDisable (AGLContext ctx, GLenum pname);
855 GLboolean aglIsEnabled (AGLContext ctx, GLenum pname);
856 GLboolean aglSetInteger (AGLContext ctx, GLenum pname, GLint* params);
857 GLboolean aglGetInteger (AGLContext ctx, GLenum pname, GLint* params);
858
859 GLboolean aglUseFont (AGLContext ctx, GLint fontID, Style face, GLint size, GLint first, GLint count, GLint base);
860
861 GLenum aglGetError ();
862 GLubyte* aglErrorString (GLenum code);
863
864 void aglResetLibrary ();
865
866 void aglSurfaceTexture (AGLContext context, GLenum target, GLenum internalformat, AGLContext surfacecontext);
867
868 GLboolean aglCreatePBuffer (GLint width, GLint height, GLenum target, GLenum internalFormat, long max_level, AGLPbuffer* pbuffer);
869 GLboolean aglDestroyPBuffer (AGLPbuffer pbuffer);
870 GLboolean aglDescribePBuffer (AGLPbuffer pbuffer, GLint* width, GLint* height, GLenum* target, GLenum* internalFormat, GLint* max_level);
871 GLboolean aglTexImagePBuffer (AGLContext ctx, AGLPbuffer pbuffer, GLint source);
872
873 GLboolean aglSetPBuffer (AGLContext ctx, AGLPbuffer pbuffer, GLint face, GLint level, GLint screen);
874 GLboolean aglGetPBuffer (AGLContext ctx, AGLPbuffer* pbuffer, GLint* face, GLint* level, GLint* screen);
875 }
Note: See TracBrowser for help on using the browser.