glfw3.h
Go to the documentation of this file.
1 /*************************************************************************
2  * GLFW 3.2 - www.glfw.org
3  * A library for OpenGL, window and input
4  *------------------------------------------------------------------------
5  * Copyright (c) 2002-2006 Marcus Geelnard
6  * Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
7  *
8  * This software is provided 'as-is', without any express or implied
9  * warranty. In no event will the authors be held liable for any damages
10  * arising from the use of this software.
11  *
12  * Permission is granted to anyone to use this software for any purpose,
13  * including commercial applications, and to alter it and redistribute it
14  * freely, subject to the following restrictions:
15  *
16  * 1. The origin of this software must not be misrepresented; you must not
17  * claim that you wrote the original software. If you use this software
18  * in a product, an acknowledgment in the product documentation would
19  * be appreciated but is not required.
20  *
21  * 2. Altered source versions must be plainly marked as such, and must not
22  * be misrepresented as being the original software.
23  *
24  * 3. This notice may not be removed or altered from any source
25  * distribution.
26  *
27  *************************************************************************/
28 
29 #ifndef _glfw3_h_
30 #define _glfw3_h_
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 
37 /*************************************************************************
38  * Doxygen documentation
39  *************************************************************************/
40 
70 /*************************************************************************
71  * Compiler- and platform-specific preprocessor work
72  *************************************************************************/
73 
74 /* If we are we on Windows, we want a single define for it.
75  */
76 #if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
77  #define _WIN32
78 #endif /* _WIN32 */
79 
80 /* It is customary to use APIENTRY for OpenGL function pointer declarations on
81  * all platforms. Additionally, the Windows OpenGL header needs APIENTRY.
82  */
83 #ifndef APIENTRY
84  #ifdef _WIN32
85  #define APIENTRY __stdcall
86  #else
87  #define APIENTRY
88  #endif
89 #endif /* APIENTRY */
90 
91 /* Some Windows OpenGL headers need this.
92  */
93 #if !defined(WINGDIAPI) && defined(_WIN32)
94  #define WINGDIAPI __declspec(dllimport)
95  #define GLFW_WINGDIAPI_DEFINED
96 #endif /* WINGDIAPI */
97 
98 /* Some Windows GLU headers need this.
99  */
100 #if !defined(CALLBACK) && defined(_WIN32)
101  #define CALLBACK __stdcall
102  #define GLFW_CALLBACK_DEFINED
103 #endif /* CALLBACK */
104 
105 /* Most Windows GLU headers need wchar_t.
106  * The OS X OpenGL header blocks the definition of ptrdiff_t by glext.h.
107  */
108 #if !defined(GLFW_INCLUDE_NONE)
109  #include <stddef.h>
110 #endif
111 
112 /* Include the chosen client API headers.
113  */
114 #if defined(__APPLE_CC__)
115  #if defined(GLFW_INCLUDE_GLCOREARB)
116  #include <OpenGL/gl3.h>
117  #if defined(GLFW_INCLUDE_GLEXT)
118  #include <OpenGL/gl3ext.h>
119  #endif
120  #elif !defined(GLFW_INCLUDE_NONE)
121  #if !defined(GLFW_INCLUDE_GLEXT)
122  #define GL_GLEXT_LEGACY
123  #endif
124  #include <OpenGL/gl.h>
125  #endif
126  #if defined(GLFW_INCLUDE_GLU)
127  #include <OpenGL/glu.h>
128  #endif
129 #else
130  #if defined(GLFW_INCLUDE_GLCOREARB)
131  #include <GL/glcorearb.h>
132  #elif defined(GLFW_INCLUDE_ES1)
133  #include <GLES/gl.h>
134  #if defined(GLFW_INCLUDE_GLEXT)
135  #include <GLES/glext.h>
136  #endif
137  #elif defined(GLFW_INCLUDE_ES2)
138  #include <GLES2/gl2.h>
139  #if defined(GLFW_INCLUDE_GLEXT)
140  #include <GLES2/gl2ext.h>
141  #endif
142  #elif defined(GLFW_INCLUDE_ES3)
143  #include <GLES3/gl3.h>
144  #if defined(GLFW_INCLUDE_GLEXT)
145  #include <GLES3/gl2ext.h>
146  #endif
147  #elif defined(GLFW_INCLUDE_ES31)
148  #include <GLES3/gl31.h>
149  #if defined(GLFW_INCLUDE_GLEXT)
150  #include <GLES3/gl2ext.h>
151  #endif
152  #elif !defined(GLFW_INCLUDE_NONE)
153  #include <GL/gl.h>
154  #if defined(GLFW_INCLUDE_GLEXT)
155  #include <GL/glext.h>
156  #endif
157  #endif
158  #if defined(GLFW_INCLUDE_GLU)
159  #include <GL/glu.h>
160  #endif
161 #endif
162 
163 #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
164  /* GLFW_DLL must be defined by applications that are linking against the DLL
165  * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
166  * configuration header when compiling the DLL version of the library.
167  */
168  #error "You may not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
169 #endif
170 
171 /* GLFWAPI is used to declare public API functions for export
172  * from the DLL / shared library / dynamic library.
173  */
174 #if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
175  /* We are building GLFW as a Win32 DLL */
176  #define GLFWAPI __declspec(dllexport)
177 #elif defined(_WIN32) && defined(GLFW_DLL)
178  /* We are calling GLFW as a Win32 DLL */
179  #define GLFWAPI __declspec(dllimport)
180 #elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
181  /* We are building GLFW as a shared / dynamic library */
182  #define GLFWAPI __attribute__((visibility("default")))
183 #else
184  /* We are building or calling GLFW as a static library */
185  #define GLFWAPI
186 #endif
187 
188 
189 /*************************************************************************
190  * GLFW API tokens
191  *************************************************************************/
192 
200 #define GLFW_VERSION_MAJOR 3
201 
207 #define GLFW_VERSION_MINOR 2
208 
214 #define GLFW_VERSION_REVISION 0
215 
225 #define GLFW_TRUE 1
226 
232 #define GLFW_FALSE 0
233 
243 #define GLFW_RELEASE 0
244 
250 #define GLFW_PRESS 1
251 
257 #define GLFW_REPEAT 2
258 
283 /* The unknown key */
284 #define GLFW_KEY_UNKNOWN -1
285 
286 /* Printable keys */
287 #define GLFW_KEY_SPACE 32
288 #define GLFW_KEY_APOSTROPHE 39 /* ' */
289 #define GLFW_KEY_COMMA 44 /* , */
290 #define GLFW_KEY_MINUS 45 /* - */
291 #define GLFW_KEY_PERIOD 46 /* . */
292 #define GLFW_KEY_SLASH 47 /* / */
293 #define GLFW_KEY_0 48
294 #define GLFW_KEY_1 49
295 #define GLFW_KEY_2 50
296 #define GLFW_KEY_3 51
297 #define GLFW_KEY_4 52
298 #define GLFW_KEY_5 53
299 #define GLFW_KEY_6 54
300 #define GLFW_KEY_7 55
301 #define GLFW_KEY_8 56
302 #define GLFW_KEY_9 57
303 #define GLFW_KEY_SEMICOLON 59 /* ; */
304 #define GLFW_KEY_EQUAL 61 /* = */
305 #define GLFW_KEY_A 65
306 #define GLFW_KEY_B 66
307 #define GLFW_KEY_C 67
308 #define GLFW_KEY_D 68
309 #define GLFW_KEY_E 69
310 #define GLFW_KEY_F 70
311 #define GLFW_KEY_G 71
312 #define GLFW_KEY_H 72
313 #define GLFW_KEY_I 73
314 #define GLFW_KEY_J 74
315 #define GLFW_KEY_K 75
316 #define GLFW_KEY_L 76
317 #define GLFW_KEY_M 77
318 #define GLFW_KEY_N 78
319 #define GLFW_KEY_O 79
320 #define GLFW_KEY_P 80
321 #define GLFW_KEY_Q 81
322 #define GLFW_KEY_R 82
323 #define GLFW_KEY_S 83
324 #define GLFW_KEY_T 84
325 #define GLFW_KEY_U 85
326 #define GLFW_KEY_V 86
327 #define GLFW_KEY_W 87
328 #define GLFW_KEY_X 88
329 #define GLFW_KEY_Y 89
330 #define GLFW_KEY_Z 90
331 #define GLFW_KEY_LEFT_BRACKET 91 /* [ */
332 #define GLFW_KEY_BACKSLASH 92 /* \ */
333 #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
334 #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
335 #define GLFW_KEY_WORLD_1 161 /* non-US #1 */
336 #define GLFW_KEY_WORLD_2 162 /* non-US #2 */
337 
338 /* Function keys */
339 #define GLFW_KEY_ESCAPE 256
340 #define GLFW_KEY_ENTER 257
341 #define GLFW_KEY_TAB 258
342 #define GLFW_KEY_BACKSPACE 259
343 #define GLFW_KEY_INSERT 260
344 #define GLFW_KEY_DELETE 261
345 #define GLFW_KEY_RIGHT 262
346 #define GLFW_KEY_LEFT 263
347 #define GLFW_KEY_DOWN 264
348 #define GLFW_KEY_UP 265
349 #define GLFW_KEY_PAGE_UP 266
350 #define GLFW_KEY_PAGE_DOWN 267
351 #define GLFW_KEY_HOME 268
352 #define GLFW_KEY_END 269
353 #define GLFW_KEY_CAPS_LOCK 280
354 #define GLFW_KEY_SCROLL_LOCK 281
355 #define GLFW_KEY_NUM_LOCK 282
356 #define GLFW_KEY_PRINT_SCREEN 283
357 #define GLFW_KEY_PAUSE 284
358 #define GLFW_KEY_F1 290
359 #define GLFW_KEY_F2 291
360 #define GLFW_KEY_F3 292
361 #define GLFW_KEY_F4 293
362 #define GLFW_KEY_F5 294
363 #define GLFW_KEY_F6 295
364 #define GLFW_KEY_F7 296
365 #define GLFW_KEY_F8 297
366 #define GLFW_KEY_F9 298
367 #define GLFW_KEY_F10 299
368 #define GLFW_KEY_F11 300
369 #define GLFW_KEY_F12 301
370 #define GLFW_KEY_F13 302
371 #define GLFW_KEY_F14 303
372 #define GLFW_KEY_F15 304
373 #define GLFW_KEY_F16 305
374 #define GLFW_KEY_F17 306
375 #define GLFW_KEY_F18 307
376 #define GLFW_KEY_F19 308
377 #define GLFW_KEY_F20 309
378 #define GLFW_KEY_F21 310
379 #define GLFW_KEY_F22 311
380 #define GLFW_KEY_F23 312
381 #define GLFW_KEY_F24 313
382 #define GLFW_KEY_F25 314
383 #define GLFW_KEY_KP_0 320
384 #define GLFW_KEY_KP_1 321
385 #define GLFW_KEY_KP_2 322
386 #define GLFW_KEY_KP_3 323
387 #define GLFW_KEY_KP_4 324
388 #define GLFW_KEY_KP_5 325
389 #define GLFW_KEY_KP_6 326
390 #define GLFW_KEY_KP_7 327
391 #define GLFW_KEY_KP_8 328
392 #define GLFW_KEY_KP_9 329
393 #define GLFW_KEY_KP_DECIMAL 330
394 #define GLFW_KEY_KP_DIVIDE 331
395 #define GLFW_KEY_KP_MULTIPLY 332
396 #define GLFW_KEY_KP_SUBTRACT 333
397 #define GLFW_KEY_KP_ADD 334
398 #define GLFW_KEY_KP_ENTER 335
399 #define GLFW_KEY_KP_EQUAL 336
400 #define GLFW_KEY_LEFT_SHIFT 340
401 #define GLFW_KEY_LEFT_CONTROL 341
402 #define GLFW_KEY_LEFT_ALT 342
403 #define GLFW_KEY_LEFT_SUPER 343
404 #define GLFW_KEY_RIGHT_SHIFT 344
405 #define GLFW_KEY_RIGHT_CONTROL 345
406 #define GLFW_KEY_RIGHT_ALT 346
407 #define GLFW_KEY_RIGHT_SUPER 347
408 #define GLFW_KEY_MENU 348
409 #define GLFW_KEY_LAST GLFW_KEY_MENU
410 
422 #define GLFW_MOD_SHIFT 0x0001
423 
425 #define GLFW_MOD_CONTROL 0x0002
426 
428 #define GLFW_MOD_ALT 0x0004
429 
431 #define GLFW_MOD_SUPER 0x0008
432 
441 #define GLFW_MOUSE_BUTTON_1 0
442 #define GLFW_MOUSE_BUTTON_2 1
443 #define GLFW_MOUSE_BUTTON_3 2
444 #define GLFW_MOUSE_BUTTON_4 3
445 #define GLFW_MOUSE_BUTTON_5 4
446 #define GLFW_MOUSE_BUTTON_6 5
447 #define GLFW_MOUSE_BUTTON_7 6
448 #define GLFW_MOUSE_BUTTON_8 7
449 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
450 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
451 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
452 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
453 
461 #define GLFW_JOYSTICK_1 0
462 #define GLFW_JOYSTICK_2 1
463 #define GLFW_JOYSTICK_3 2
464 #define GLFW_JOYSTICK_4 3
465 #define GLFW_JOYSTICK_5 4
466 #define GLFW_JOYSTICK_6 5
467 #define GLFW_JOYSTICK_7 6
468 #define GLFW_JOYSTICK_8 7
469 #define GLFW_JOYSTICK_9 8
470 #define GLFW_JOYSTICK_10 9
471 #define GLFW_JOYSTICK_11 10
472 #define GLFW_JOYSTICK_12 11
473 #define GLFW_JOYSTICK_13 12
474 #define GLFW_JOYSTICK_14 13
475 #define GLFW_JOYSTICK_15 14
476 #define GLFW_JOYSTICK_16 15
477 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
478 
495 #define GLFW_NOT_INITIALIZED 0x00010001
496 
506 #define GLFW_NO_CURRENT_CONTEXT 0x00010002
507 
516 #define GLFW_INVALID_ENUM 0x00010003
517 
528 #define GLFW_INVALID_VALUE 0x00010004
529 
537 #define GLFW_OUT_OF_MEMORY 0x00010005
538 
557 #define GLFW_API_UNAVAILABLE 0x00010006
558 
575 #define GLFW_VERSION_UNAVAILABLE 0x00010007
576 
587 #define GLFW_PLATFORM_ERROR 0x00010008
588 
607 #define GLFW_FORMAT_UNAVAILABLE 0x00010009
608 
610 #define GLFW_FOCUSED 0x00020001
611 #define GLFW_ICONIFIED 0x00020002
612 #define GLFW_RESIZABLE 0x00020003
613 #define GLFW_VISIBLE 0x00020004
614 #define GLFW_DECORATED 0x00020005
615 #define GLFW_AUTO_ICONIFY 0x00020006
616 #define GLFW_FLOATING 0x00020007
617 
618 #define GLFW_RED_BITS 0x00021001
619 #define GLFW_GREEN_BITS 0x00021002
620 #define GLFW_BLUE_BITS 0x00021003
621 #define GLFW_ALPHA_BITS 0x00021004
622 #define GLFW_DEPTH_BITS 0x00021005
623 #define GLFW_STENCIL_BITS 0x00021006
624 #define GLFW_ACCUM_RED_BITS 0x00021007
625 #define GLFW_ACCUM_GREEN_BITS 0x00021008
626 #define GLFW_ACCUM_BLUE_BITS 0x00021009
627 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A
628 #define GLFW_AUX_BUFFERS 0x0002100B
629 #define GLFW_STEREO 0x0002100C
630 #define GLFW_SAMPLES 0x0002100D
631 #define GLFW_SRGB_CAPABLE 0x0002100E
632 #define GLFW_REFRESH_RATE 0x0002100F
633 #define GLFW_DOUBLEBUFFER 0x00021010
634 
635 #define GLFW_CLIENT_API 0x00022001
636 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
637 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003
638 #define GLFW_CONTEXT_REVISION 0x00022004
639 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005
640 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
641 #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
642 #define GLFW_OPENGL_PROFILE 0x00022008
643 #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
644 
645 #define GLFW_OPENGL_API 0x00030001
646 #define GLFW_OPENGL_ES_API 0x00030002
647 
648 #define GLFW_NO_ROBUSTNESS 0
649 #define GLFW_NO_RESET_NOTIFICATION 0x00031001
650 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
651 
652 #define GLFW_OPENGL_ANY_PROFILE 0
653 #define GLFW_OPENGL_CORE_PROFILE 0x00032001
654 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
655 
656 #define GLFW_CURSOR 0x00033001
657 #define GLFW_STICKY_KEYS 0x00033002
658 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
659 
660 #define GLFW_CURSOR_NORMAL 0x00034001
661 #define GLFW_CURSOR_HIDDEN 0x00034002
662 #define GLFW_CURSOR_DISABLED 0x00034003
663 
664 #define GLFW_ANY_RELEASE_BEHAVIOR 0
665 #define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
666 #define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
667 
679 #define GLFW_ARROW_CURSOR 0x00036001
680 
684 #define GLFW_IBEAM_CURSOR 0x00036002
685 
689 #define GLFW_CROSSHAIR_CURSOR 0x00036003
690 
694 #define GLFW_HAND_CURSOR 0x00036004
695 
699 #define GLFW_HRESIZE_CURSOR 0x00036005
700 
704 #define GLFW_VRESIZE_CURSOR 0x00036006
705 
707 #define GLFW_CONNECTED 0x00040001
708 #define GLFW_DISCONNECTED 0x00040002
709 
710 #define GLFW_DONT_CARE -1
711 
712 
713 /*************************************************************************
714  * GLFW API types
715  *************************************************************************/
716 
724 typedef void (*GLFWglproc)(void);
725 
732 typedef struct GLFWmonitor GLFWmonitor;
733 
740 typedef struct GLFWwindow GLFWwindow;
741 
748 typedef struct GLFWcursor GLFWcursor;
749 
761 typedef void (* GLFWerrorfun)(int,const char*);
762 
777 typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int);
778 
791 typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int);
792 
803 typedef void (* GLFWwindowclosefun)(GLFWwindow*);
804 
815 typedef void (* GLFWwindowrefreshfun)(GLFWwindow*);
816 
829 typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int);
830 
844 typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int);
845 
859 typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int);
860 
876 typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int);
877 
890 typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double);
891 
904 typedef void (* GLFWcursorenterfun)(GLFWwindow*,int);
905 
918 typedef void (* GLFWscrollfun)(GLFWwindow*,double,double);
919 
935 typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int);
936 
948 typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int);
949 
966 typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int);
967 
980 typedef void (* GLFWdropfun)(GLFWwindow*,int,const char**);
981 
993 typedef void (* GLFWmonitorfun)(GLFWmonitor*,int);
994 
1001 typedef struct GLFWvidmode
1002 {
1005  int width;
1008  int height;
1011  int redBits;
1021 } GLFWvidmode;
1022 
1031 typedef struct GLFWgammaramp
1032 {
1035  unsigned short* red;
1038  unsigned short* green;
1041  unsigned short* blue;
1044  unsigned int size;
1045 } GLFWgammaramp;
1046 
1049 typedef struct GLFWimage
1050 {
1053  int width;
1056  int height;
1059  unsigned char* pixels;
1060 } GLFWimage;
1061 
1062 
1063 /*************************************************************************
1064  * GLFW API functions
1065  *************************************************************************/
1066 
1098 GLFWAPI int glfwInit(void);
1099 
1130 GLFWAPI void glfwTerminate(void);
1131 
1157 GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
1158 
1189 GLFWAPI const char* glfwGetVersionString(void);
1190 
1223 
1251 GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
1252 
1274 GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
1275 
1297 GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
1298 
1330 GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
1331 
1356 GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
1357 
1382 
1414 GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
1415 
1441 GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
1442 
1461 GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
1462 
1486 GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
1487 
1514 GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
1515 
1531 GLFWAPI void glfwDefaultWindowHints(void);
1532 
1553 GLFWAPI void glfwWindowHint(int target, int hint);
1554 
1668 GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
1669 
1696 GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
1697 
1714 GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
1715 
1734 GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
1735 
1759 GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
1760 
1785 GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
1786 
1816 GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
1817 
1846 GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
1847 
1880 GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
1881 
1918 GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
1919 
1950 GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
1951 
1977 GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
1978 
2012 GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
2013 
2038 GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
2039 
2063 GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
2064 
2083 GLFWAPI void glfwShowWindow(GLFWwindow* window);
2084 
2103 GLFWAPI void glfwHideWindow(GLFWwindow* window);
2104 
2123 GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
2124 
2154 GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
2155 
2175 GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
2176 
2194 GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
2195 
2218 
2244 
2278 
2308 
2335 
2357 
2379 
2411 GLFWAPI void glfwPollEvents(void);
2412 
2454 GLFWAPI void glfwWaitEvents(void);
2455 
2475 GLFWAPI void glfwPostEmptyEvent(void);
2476 
2496 GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
2497 
2542 GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
2543 
2580 GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
2581 
2609 GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
2610 
2645 GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
2646 
2684 GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
2685 
2724 GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
2725 
2749 GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
2750 
2772 GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
2773 
2797 GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
2798 
2841 GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun);
2842 
2880 GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun);
2881 
2913 
2944 
2968 
2991 
3017 
3043 GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun cbfun);
3044 
3061 GLFWAPI int glfwJoystickPresent(int joy);
3062 
3087 GLFWAPI const float* glfwGetJoystickAxes(int joy, int* count);
3088 
3116 GLFWAPI const unsigned char* glfwGetJoystickButtons(int joy, int* count);
3117 
3142 GLFWAPI const char* glfwGetJoystickName(int joy);
3143 
3165 GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
3166 
3194 GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
3195 
3218 GLFWAPI double glfwGetTime(void);
3219 
3241 GLFWAPI void glfwSetTime(double time);
3242 
3269 GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
3270 
3289 GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
3290 
3312 GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
3313 
3354 GLFWAPI void glfwSwapInterval(int interval);
3355 
3385 GLFWAPI int glfwExtensionSupported(const char* extension);
3386 
3422 GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
3423 
3424 
3425 /*************************************************************************
3426  * Global definition cleanup
3427  *************************************************************************/
3428 
3429 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
3430 
3431 #ifdef GLFW_WINGDIAPI_DEFINED
3432  #undef WINGDIAPI
3433  #undef GLFW_WINGDIAPI_DEFINED
3434 #endif
3435 
3436 #ifdef GLFW_CALLBACK_DEFINED
3437  #undef CALLBACK
3438  #undef GLFW_CALLBACK_DEFINED
3439 #endif
3440 
3441 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
3442 
3443 
3444 #ifdef __cplusplus
3445 }
3446 #endif
3447 
3448 #endif /* _glfw3_h_ */
3449 
void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
int redBits
Definition: glfw3.h:1011
void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the client area of the specified window.
void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)
Sets the size limits of the specified window.
void(* GLFWwindowiconifyfun)(GLFWwindow *, int)
The function signature for window iconify/restore callbacks.
Definition: glfw3.h:844
int glfwGetInputMode(GLFWwindow *window, int mode)
Returns the value of an input option for the specified window.
int height
Definition: glfw3.h:1008
GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun cbfun)
Sets the refresh callback for the specified window.
GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun cbfun)
Sets the position callback for the specified window.
void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the client area of the specified window.
void(* GLFWcharmodsfun)(GLFWwindow *, unsigned int, int)
The function signature for Unicode character with modifiers callbacks.
Definition: glfw3.h:966
int blueBits
Definition: glfw3.h:1017
unsigned char * pixels
Definition: glfw3.h:1059
void(* GLFWmonitorfun)(GLFWmonitor *, int)
The function signature for monitor configuration callbacks.
Definition: glfw3.h:993
void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
struct GLFWcursor GLFWcursor
Opaque cursor object.
Definition: glfw3.h:748
void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun)
Sets the error callback.
double glfwGetTime(void)
Returns the value of the GLFW timer.
GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun cbfun)
Sets the iconify callback for the specified window.
void glfwSetCursorPos(GLFWwindow *window, double xpos, double ypos)
Sets the position of the cursor, relative to the client area of the window.
int width
Definition: glfw3.h:1005
const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun cbfun)
Sets the size callback for the specified window.
const char * glfwGetJoystickName(int joy)
Returns the name of the specified joystick.
void glfwWaitEvents(void)
Waits until events are queued and processes them.
int height
Definition: glfw3.h:1056
GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun cbfun)
Sets the key callback.
const char * glfwGetClipboardString(GLFWwindow *window)
Returns the contents of the clipboard as a string.
void(* GLFWdropfun)(GLFWwindow *, int, const char **)
The function signature for file drop callbacks.
Definition: glfw3.h:980
GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)
Retrieves the position of the cursor relative to the client area of the window.
void(* GLFWkeyfun)(GLFWwindow *, int, int, int, int)
The function signature for keyboard key callbacks.
Definition: glfw3.h:935
int refreshRate
Definition: glfw3.h:1020
unsigned short * red
Definition: glfw3.h:1035
void(* GLFWmousebuttonfun)(GLFWwindow *, int, int, int)
The function signature for mouse button callbacks.
Definition: glfw3.h:876
GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun cbfun)
Sets the file drop callback.
void(* GLFWcharfun)(GLFWwindow *, unsigned int)
The function signature for Unicode character callbacks.
Definition: glfw3.h:948
void glfwSetCursor(GLFWwindow *window, GLFWcursor *cursor)
Sets the cursor for the window.
const unsigned char * glfwGetJoystickButtons(int joy, int *count)
Returns the state of all buttons of the specified joystick.
GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun cbfun)
Sets the cursor position callback.
unsigned short * green
Definition: glfw3.h:1038
GLFWcharfun glfwSetCharCallback(GLFWwindow *window, GLFWcharfun cbfun)
Sets the Unicode character callback.
void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition: glfw3.h:732
struct GLFWwindow GLFWwindow
Opaque window object.
Definition: glfw3.h:740
void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the client area of the specified window.
int greenBits
Definition: glfw3.h:1014
const float * glfwGetJoystickAxes(int joy, int *count)
Returns the values of all axes of the specified joystick.
GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)
Creates a custom cursor.
void glfwDestroyCursor(GLFWcursor *cursor)
Destroys a cursor.
void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
void glfwSetInputMode(GLFWwindow *window, int mode, int value)
Sets an input option for the specified window.
const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
void glfwSetClipboardString(GLFWwindow *window, const char *string)
Sets the clipboard to the specified string.
void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
void(* GLFWcursorposfun)(GLFWwindow *, double, double)
The function signature for cursor position callbacks.
Definition: glfw3.h:890
void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
int glfwGetMouseButton(GLFWwindow *window, int button)
Returns the last reported state of a mouse button for the specified window.
void(* GLFWwindowsizefun)(GLFWwindow *, int, int)
The function signature for window resize callbacks.
Definition: glfw3.h:791
void glfwSetTime(double time)
Sets the GLFW timer.
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
unsigned int size
Definition: glfw3.h:1044
void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun cbfun)
Sets the framebuffer resize callback for the specified window.
void(* GLFWframebuffersizefun)(GLFWwindow *, int, int)
The function signature for framebuffer resize callbacks.
Definition: glfw3.h:859
int glfwJoystickPresent(int joy)
Returns whether the specified joystick is present.
void glfwWindowHint(int target, int hint)
Sets the specified window hint to the desired value.
void(* GLFWwindowposfun)(GLFWwindow *, int, int)
The function signature for window position callbacks.
Definition: glfw3.h:777
void glfwPollEvents(void)
Processes all pending events.
void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun cbfun)
Sets the cursor enter/exit callback.
int width
Definition: glfw3.h:1053
GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow *window, GLFWmousebuttonfun cbfun)
Sets the mouse button callback.
GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
int glfwGetKey(GLFWwindow *window, int key)
Returns the last reported state of a keyboard key for the specified window.
void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
Gamma ramp.
Definition: glfw3.h:1031
GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun cbfun)
Sets the close callback for the specified window.
GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun cbfun)
Sets the scroll callback.
unsigned short * blue
Definition: glfw3.h:1041
Video mode type.
Definition: glfw3.h:1001
void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the client area of the specified window.
int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
void(* GLFWwindowclosefun)(GLFWwindow *)
The function signature for window close callbacks.
Definition: glfw3.h:803
GLFWcursor * glfwCreateStandardCursor(int shape)
Creates a cursor with a standard shape.
void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow *window, GLFWcharmodsfun cbfun)
Sets the Unicode character with modifiers callback.
void(* GLFWcursorenterfun)(GLFWwindow *, int)
The function signature for cursor enter/leave callbacks.
Definition: glfw3.h:904
int glfwInit(void)
Initializes the GLFW library.
Image data.
Definition: glfw3.h:1049
void(* GLFWscrollfun)(GLFWwindow *, double, double)
The function signature for scroll callbacks.
Definition: glfw3.h:918
void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
struct GLFWvidmode GLFWvidmode
Video mode type.
void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun cbfun)
Sets the focus callback for the specified window.
void glfwTerminate(void)
Terminates the GLFW library.
struct GLFWimage GLFWimage
Image data.
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun)
Sets the monitor configuration callback.
void(* GLFWwindowrefreshfun)(GLFWwindow *)
The function signature for window content refresh callbacks.
Definition: glfw3.h:815
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:724
const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
void(* GLFWerrorfun)(int, const char *)
The function signature for error callbacks.
Definition: glfw3.h:761
void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)
Sets the aspect ratio of the specified window.
int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.
int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.
void(* GLFWwindowfocusfun)(GLFWwindow *, int)
The function signature for window focus/defocus callbacks.
Definition: glfw3.h:829