1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
// Copyright © 2015, Peter Atashian
// Licensed under the MIT License <LICENSE.md>
//! FFI bindings to opengl32.
#![cfg(all(windows, any(target_arch = "x86", target_arch = "x86_64")))]
extern crate winapi;
use winapi::*;
extern "system" {
    // pub fn GlmfBeginGlsBlock();
    // pub fn GlmfCloseMetaFile();
    // pub fn GlmfEndGlsBlock();
    // pub fn GlmfEndPlayback();
    // pub fn GlmfInitPlayback();
    // pub fn GlmfPlayGlsRecord();
    pub fn glAccum(op: GLenum, value: GLfloat);
    pub fn glAlphaFunc(func: GLenum, reference: GLclampf);
    // pub fn glAreTexturesResident();
    // pub fn glArrayElement();
    // pub fn glBegin();
    // pub fn glBindTexture();
    // pub fn glBitmap();
    // pub fn glBlendFunc();
    // pub fn glCallList();
    // pub fn glCallLists();
    // pub fn glClear();
    // pub fn glClearAccum();
    // pub fn glClearColor();
    // pub fn glClearDepth();
    // pub fn glClearIndex();
    // pub fn glClearStencil();
    // pub fn glClipPlane();
    // pub fn glColor3b();
    // pub fn glColor3bv();
    // pub fn glColor3d();
    // pub fn glColor3dv();
    // pub fn glColor3f();
    // pub fn glColor3fv();
    // pub fn glColor3i();
    // pub fn glColor3iv();
    // pub fn glColor3s();
    // pub fn glColor3sv();
    // pub fn glColor3ub();
    // pub fn glColor3ubv();
    // pub fn glColor3ui();
    // pub fn glColor3uiv();
    // pub fn glColor3us();
    // pub fn glColor3usv();
    // pub fn glColor4b();
    // pub fn glColor4bv();
    // pub fn glColor4d();
    // pub fn glColor4dv();
    // pub fn glColor4f();
    // pub fn glColor4fv();
    // pub fn glColor4i();
    // pub fn glColor4iv();
    // pub fn glColor4s();
    // pub fn glColor4sv();
    // pub fn glColor4ub();
    // pub fn glColor4ubv();
    // pub fn glColor4ui();
    // pub fn glColor4uiv();
    // pub fn glColor4us();
    // pub fn glColor4usv();
    // pub fn glColorMask();
    // pub fn glColorMaterial();
    // pub fn glColorPointer();
    // pub fn glCopyPixels();
    // pub fn glCopyTexImage1D();
    // pub fn glCopyTexImage2D();
    // pub fn glCopyTexSubImage1D();
    // pub fn glCopyTexSubImage2D();
    // pub fn glCullFace();
    // pub fn glDebugEntry();
    // pub fn glDeleteLists();
    // pub fn glDeleteTextures();
    // pub fn glDepthFunc();
    // pub fn glDepthMask();
    // pub fn glDepthRange();
    // pub fn glDisable();
    // pub fn glDisableClientState();
    // pub fn glDrawArrays();
    // pub fn glDrawBuffer();
    // pub fn glDrawElements();
    // pub fn glDrawPixels();
    // pub fn glEdgeFlag();
    // pub fn glEdgeFlagPointer();
    // pub fn glEdgeFlagv();
    // pub fn glEnable();
    // pub fn glEnableClientState();
    // pub fn glEnd();
    // pub fn glEndList();
    // pub fn glEvalCoord1d();
    // pub fn glEvalCoord1dv();
    // pub fn glEvalCoord1f();
    // pub fn glEvalCoord1fv();
    // pub fn glEvalCoord2d();
    // pub fn glEvalCoord2dv();
    // pub fn glEvalCoord2f();
    // pub fn glEvalCoord2fv();
    // pub fn glEvalMesh1();
    // pub fn glEvalMesh2();
    // pub fn glEvalPoint1();
    // pub fn glEvalPoint2();
    // pub fn glFeedbackBuffer();
    // pub fn glFinish();
    // pub fn glFlush();
    // pub fn glFogf();
    // pub fn glFogfv();
    // pub fn glFogi();
    // pub fn glFogiv();
    // pub fn glFrontFace();
    // pub fn glFrustum();
    // pub fn glGenLists();
    // pub fn glGenTextures();
    // pub fn glGetBooleanv();
    // pub fn glGetClipPlane();
    // pub fn glGetDoublev();
    // pub fn glGetError();
    // pub fn glGetFloatv();
    // pub fn glGetIntegerv();
    // pub fn glGetLightfv();
    // pub fn glGetLightiv();
    // pub fn glGetMapdv();
    // pub fn glGetMapfv();
    // pub fn glGetMapiv();
    // pub fn glGetMaterialfv();
    // pub fn glGetMaterialiv();
    // pub fn glGetPixelMapfv();
    // pub fn glGetPixelMapuiv();
    // pub fn glGetPixelMapusv();
    // pub fn glGetPointerv();
    // pub fn glGetPolygonStipple();
    // pub fn glGetString();
    // pub fn glGetTexEnvfv();
    // pub fn glGetTexEnviv();
    // pub fn glGetTexGendv();
    // pub fn glGetTexGenfv();
    // pub fn glGetTexGeniv();
    // pub fn glGetTexImage();
    // pub fn glGetTexLevelParameterfv();
    // pub fn glGetTexLevelParameteriv();
    // pub fn glGetTexParameterfv();
    // pub fn glGetTexParameteriv();
    // pub fn glHint();
    // pub fn glIndexMask();
    // pub fn glIndexPointer();
    // pub fn glIndexd();
    // pub fn glIndexdv();
    // pub fn glIndexf();
    // pub fn glIndexfv();
    // pub fn glIndexi();
    // pub fn glIndexiv();
    // pub fn glIndexs();
    // pub fn glIndexsv();
    // pub fn glIndexub();
    // pub fn glIndexubv();
    // pub fn glInitNames();
    // pub fn glInterleavedArrays();
    // pub fn glIsEnabled();
    // pub fn glIsList();
    // pub fn glIsTexture();
    // pub fn glLightModelf();
    // pub fn glLightModelfv();
    // pub fn glLightModeli();
    // pub fn glLightModeliv();
    // pub fn glLightf();
    // pub fn glLightfv();
    // pub fn glLighti();
    // pub fn glLightiv();
    // pub fn glLineStipple();
    // pub fn glLineWidth();
    // pub fn glListBase();
    // pub fn glLoadIdentity();
    // pub fn glLoadMatrixd();
    // pub fn glLoadMatrixf();
    // pub fn glLoadName();
    // pub fn glLogicOp();
    // pub fn glMap1d();
    // pub fn glMap1f();
    // pub fn glMap2d();
    // pub fn glMap2f();
    // pub fn glMapGrid1d();
    // pub fn glMapGrid1f();
    // pub fn glMapGrid2d();
    // pub fn glMapGrid2f();
    // pub fn glMaterialf();
    // pub fn glMaterialfv();
    // pub fn glMateriali();
    // pub fn glMaterialiv();
    // pub fn glMatrixMode();
    // pub fn glMultMatrixd();
    // pub fn glMultMatrixf();
    // pub fn glNewList();
    // pub fn glNormal3b();
    // pub fn glNormal3bv();
    // pub fn glNormal3d();
    // pub fn glNormal3dv();
    // pub fn glNormal3f();
    // pub fn glNormal3fv();
    // pub fn glNormal3i();
    // pub fn glNormal3iv();
    // pub fn glNormal3s();
    // pub fn glNormal3sv();
    // pub fn glNormalPointer();
    // pub fn glOrtho();
    // pub fn glPassThrough();
    // pub fn glPixelMapfv();
    // pub fn glPixelMapuiv();
    // pub fn glPixelMapusv();
    // pub fn glPixelStoref();
    // pub fn glPixelStorei();
    // pub fn glPixelTransferf();
    // pub fn glPixelTransferi();
    // pub fn glPixelZoom();
    // pub fn glPointSize();
    // pub fn glPolygonMode();
    // pub fn glPolygonOffset();
    // pub fn glPolygonStipple();
    // pub fn glPopAttrib();
    // pub fn glPopClientAttrib();
    // pub fn glPopMatrix();
    // pub fn glPopName();
    // pub fn glPrioritizeTextures();
    // pub fn glPushAttrib();
    // pub fn glPushClientAttrib();
    // pub fn glPushMatrix();
    // pub fn glPushName();
    // pub fn glRasterPos2d();
    // pub fn glRasterPos2dv();
    // pub fn glRasterPos2f();
    // pub fn glRasterPos2fv();
    // pub fn glRasterPos2i();
    // pub fn glRasterPos2iv();
    // pub fn glRasterPos2s();
    // pub fn glRasterPos2sv();
    // pub fn glRasterPos3d();
    // pub fn glRasterPos3dv();
    // pub fn glRasterPos3f();
    // pub fn glRasterPos3fv();
    // pub fn glRasterPos3i();
    // pub fn glRasterPos3iv();
    // pub fn glRasterPos3s();
    // pub fn glRasterPos3sv();
    // pub fn glRasterPos4d();
    // pub fn glRasterPos4dv();
    // pub fn glRasterPos4f();
    // pub fn glRasterPos4fv();
    // pub fn glRasterPos4i();
    // pub fn glRasterPos4iv();
    // pub fn glRasterPos4s();
    // pub fn glRasterPos4sv();
    // pub fn glReadBuffer();
    // pub fn glReadPixels();
    // pub fn glRectd();
    // pub fn glRectdv();
    // pub fn glRectf();
    // pub fn glRectfv();
    // pub fn glRecti();
    // pub fn glRectiv();
    // pub fn glRects();
    // pub fn glRectsv();
    // pub fn glRenderMode();
    // pub fn glRotated();
    // pub fn glRotatef();
    // pub fn glScaled();
    // pub fn glScalef();
    // pub fn glScissor();
    // pub fn glSelectBuffer();
    // pub fn glShadeModel();
    // pub fn glStencilFunc();
    // pub fn glStencilMask();
    // pub fn glStencilOp();
    // pub fn glTexCoord1d();
    // pub fn glTexCoord1dv();
    // pub fn glTexCoord1f();
    // pub fn glTexCoord1fv();
    // pub fn glTexCoord1i();
    // pub fn glTexCoord1iv();
    // pub fn glTexCoord1s();
    // pub fn glTexCoord1sv();
    // pub fn glTexCoord2d();
    // pub fn glTexCoord2dv();
    // pub fn glTexCoord2f();
    // pub fn glTexCoord2fv();
    // pub fn glTexCoord2i();
    // pub fn glTexCoord2iv();
    // pub fn glTexCoord2s();
    // pub fn glTexCoord2sv();
    // pub fn glTexCoord3d();
    // pub fn glTexCoord3dv();
    // pub fn glTexCoord3f();
    // pub fn glTexCoord3fv();
    // pub fn glTexCoord3i();
    // pub fn glTexCoord3iv();
    // pub fn glTexCoord3s();
    // pub fn glTexCoord3sv();
    // pub fn glTexCoord4d();
    // pub fn glTexCoord4dv();
    // pub fn glTexCoord4f();
    // pub fn glTexCoord4fv();
    // pub fn glTexCoord4i();
    // pub fn glTexCoord4iv();
    // pub fn glTexCoord4s();
    // pub fn glTexCoord4sv();
    // pub fn glTexCoordPointer();
    // pub fn glTexEnvf();
    // pub fn glTexEnvfv();
    // pub fn glTexEnvi();
    // pub fn glTexEnviv();
    // pub fn glTexGend();
    // pub fn glTexGendv();
    // pub fn glTexGenf();
    // pub fn glTexGenfv();
    // pub fn glTexGeni();
    // pub fn glTexGeniv();
    // pub fn glTexImage1D();
    // pub fn glTexImage2D();
    // pub fn glTexParameterf();
    // pub fn glTexParameterfv();
    // pub fn glTexParameteri();
    // pub fn glTexParameteriv();
    // pub fn glTexSubImage1D();
    // pub fn glTexSubImage2D();
    // pub fn glTranslated();
    // pub fn glTranslatef();
    // pub fn glVertex2d();
    // pub fn glVertex2dv();
    // pub fn glVertex2f();
    // pub fn glVertex2fv();
    // pub fn glVertex2i();
    // pub fn glVertex2iv();
    // pub fn glVertex2s();
    // pub fn glVertex2sv();
    // pub fn glVertex3d();
    // pub fn glVertex3dv();
    // pub fn glVertex3f();
    // pub fn glVertex3fv();
    // pub fn glVertex3i();
    // pub fn glVertex3iv();
    // pub fn glVertex3s();
    // pub fn glVertex3sv();
    // pub fn glVertex4d();
    // pub fn glVertex4dv();
    // pub fn glVertex4f();
    // pub fn glVertex4fv();
    // pub fn glVertex4i();
    // pub fn glVertex4iv();
    // pub fn glVertex4s();
    // pub fn glVertex4sv();
    // pub fn glVertexPointer();
    // pub fn glViewport();
    // pub fn wglChoosePixelFormat();
    pub fn wglCopyContext(hglrcSrc: HGLRC, hglrcDst: HGLRC, mask: UINT) -> BOOL;
    pub fn wglCreateContext(hdc: HDC) -> HGLRC;
    pub fn wglCreateLayerContext(hdc: HDC, iLayerPlane: c_int) -> HGLRC;
    pub fn wglDeleteContext(hglrc: HGLRC) -> BOOL;
    pub fn wglDescribeLayerPlane(
        hdc: HDC, iPixelFormat: c_int, iLayerPlane: c_int, nBytes: UINT,
        plpd: LPLAYERPLANEDESCRIPTOR
    ) -> BOOL;
    // pub fn wglDescribePixelFormat();
    pub fn wglGetCurrentContext() -> HGLRC;
    pub fn wglGetCurrentDC() -> HDC;
    // pub fn wglGetDefaultProcAddress();
    pub fn wglGetLayerPaletteEntries(
        hdc: HDC, iLayerPlane: c_int, iStart: c_int, cEntries: c_int, pcr: *const COLORREF
    ) -> c_int;
    // pub fn wglGetPixelFormat();
    pub fn wglGetProcAddress(lpszProc: LPCSTR) -> PROC;
    pub fn wglMakeCurrent(hdc: HDC, hglrc: HGLRC) -> BOOL;
    pub fn wglRealizeLayerPalette(hdc: HDC, iLayerPlane: c_int, bRealize: BOOL) -> BOOL;
    pub fn wglSetLayerPaletteEntries(
        hdc: HDC, iLayerPlane: c_int, iStart: c_int, cEntries: c_int, pcr: *const COLORREF
    ) -> c_int;
    // pub fn wglSetPixelFormat();
    pub fn wglShareLists(hglrc1: HGLRC, hglrc2: HGLRC) -> BOOL;
    // pub fn wglSwapBuffers();
    pub fn wglSwapLayerBuffers(hdc: HDC, fuPlanes: UINT) -> BOOL;
    // pub fn wglSwapMultipleBuffers();
    pub fn wglUseFontBitmapsA(hdc: HDC, first: DWORD, count: DWORD, listBase: DWORD) -> BOOL;
    pub fn wglUseFontBitmapsW(hdc: HDC, first: DWORD, count: DWORD, listBase: DWORD) -> BOOL;
    pub fn wglUseFontOutlinesA(
        hdc: HDC, first: DWORD, count: DWORD, listBase: DWORD, deviation: FLOAT,
        extrusion: FLOAT, format: c_int, lpgmf: LPGLYPHMETRICSFLOAT
    ) -> BOOL;
    pub fn wglUseFontOutlinesW(
        hdc: HDC, first: DWORD, count: DWORD, listBase: DWORD, deviation: FLOAT,
        extrusion: FLOAT, format: c_int, lpgmf: LPGLYPHMETRICSFLOAT
    ) -> BOOL;
}