opengl32/
lib.rs

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