All Data Structures Files Functions Variables Typedefs Macros Groups Pages
glfw3.h
Go to the documentation of this file.
1 /*************************************************************************
2  * GLFW 3.1 - 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  * Global definitions
72  *************************************************************************/
73 
74 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
75 
76 /* Please report any problems that you find with your compiler, which may
77  * be solved in this section! There are several compilers that I have not
78  * been able to test this file with yet.
79  *
80  * First: If we are we on Windows, we want a single define for it (_WIN32)
81  * (Note: For Cygwin the compiler flag -mwin32 should be used, but to
82  * make sure that things run smoothly for Cygwin users, we add __CYGWIN__
83  * to the list of "valid Win32 identifiers", which removes the need for
84  * -mwin32)
85  */
86 #if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__))
87  #define _WIN32
88 #endif /* _WIN32 */
89 
90 /* In order for extension support to be portable, we need to define an
91  * OpenGL function call method. We use the keyword APIENTRY, which is
92  * defined for Win32. (Note: Windows also needs this for <GL/gl.h>)
93  */
94 #ifndef APIENTRY
95  #ifdef _WIN32
96  #define APIENTRY __stdcall
97  #else
98  #define APIENTRY
99  #endif
100 #endif /* APIENTRY */
101 
102 /* The following three defines are here solely to make some Windows-based
103  * <GL/gl.h> files happy. Theoretically we could include <windows.h>, but
104  * it has the major drawback of severely polluting our namespace.
105  */
106 
107 /* Under Windows, we need WINGDIAPI defined */
108 #if !defined(WINGDIAPI) && defined(_WIN32)
109  #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__POCC__)
110  /* Microsoft Visual C++, Borland C++ Builder and Pelles C */
111  #define WINGDIAPI __declspec(dllimport)
112  #elif defined(__LCC__)
113  /* LCC-Win32 */
114  #define WINGDIAPI __stdcall
115  #else
116  /* Others (e.g. MinGW, Cygwin) */
117  #define WINGDIAPI extern
118  #endif
119  #define GLFW_WINGDIAPI_DEFINED
120 #endif /* WINGDIAPI */
121 
122 /* Some <GL/glu.h> files also need CALLBACK defined */
123 #if !defined(CALLBACK) && defined(_WIN32)
124  #if defined(_MSC_VER)
125  /* Microsoft Visual C++ */
126  #if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
127  #define CALLBACK __stdcall
128  #else
129  #define CALLBACK
130  #endif
131  #else
132  /* Other Windows compilers */
133  #define CALLBACK __stdcall
134  #endif
135  #define GLFW_CALLBACK_DEFINED
136 #endif /* CALLBACK */
137 
138 /* Most GL/glu.h variants on Windows need wchar_t
139  * OpenGL/gl.h blocks the definition of ptrdiff_t by glext.h on OS X */
140 #if !defined(GLFW_INCLUDE_NONE)
141  #include <stddef.h>
142 #endif
143 
144 /* Include the chosen client API headers.
145  */
146 #if defined(__APPLE_CC__)
147  #if defined(GLFW_INCLUDE_GLCOREARB)
148  #include <OpenGL/gl3.h>
149  #if defined(GLFW_INCLUDE_GLEXT)
150  #include <OpenGL/gl3ext.h>
151  #endif
152  #elif !defined(GLFW_INCLUDE_NONE)
153  #if !defined(GLFW_INCLUDE_GLEXT)
154  #define GL_GLEXT_LEGACY
155  #endif
156  #include <OpenGL/gl.h>
157  #endif
158  #if defined(GLFW_INCLUDE_GLU)
159  #include <OpenGL/glu.h>
160  #endif
161 #else
162  #if defined(GLFW_INCLUDE_GLCOREARB)
163  #include <GL/glcorearb.h>
164  #elif defined(GLFW_INCLUDE_ES1)
165  #include <GLES/gl.h>
166  #if defined(GLFW_INCLUDE_GLEXT)
167  #include <GLES/glext.h>
168  #endif
169  #elif defined(GLFW_INCLUDE_ES2)
170  #include <GLES2/gl2.h>
171  #if defined(GLFW_INCLUDE_GLEXT)
172  #include <GLES2/gl2ext.h>
173  #endif
174  #elif defined(GLFW_INCLUDE_ES3)
175  #include <GLES3/gl3.h>
176  #if defined(GLFW_INCLUDE_GLEXT)
177  #include <GLES3/gl2ext.h>
178  #endif
179  #elif defined(GLFW_INCLUDE_ES31)
180  #include <GLES3/gl31.h>
181  #if defined(GLFW_INCLUDE_GLEXT)
182  #include <GLES3/gl2ext.h>
183  #endif
184  #elif !defined(GLFW_INCLUDE_NONE)
185  #include <GL/gl.h>
186  #if defined(GLFW_INCLUDE_GLEXT)
187  #include <GL/glext.h>
188  #endif
189  #endif
190  #if defined(GLFW_INCLUDE_GLU)
191  #include <GL/glu.h>
192  #endif
193 #endif
194 
195 #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
196  /* GLFW_DLL must be defined by applications that are linking against the DLL
197  * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
198  * configuration header when compiling the DLL version of the library.
199  */
200  #error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
201 #endif
202 
203 /* GLFWAPI is used to declare public API functions for export
204  * from the DLL / shared library / dynamic library.
205  */
206 #if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
207  /* We are building GLFW as a Win32 DLL */
208  #define GLFWAPI __declspec(dllexport)
209 #elif defined(_WIN32) && defined(GLFW_DLL)
210  /* We are calling GLFW as a Win32 DLL */
211  #if defined(__LCC__)
212  #define GLFWAPI extern
213  #else
214  #define GLFWAPI __declspec(dllimport)
215  #endif
216 #elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
217  /* We are building GLFW as a shared / dynamic library */
218  #define GLFWAPI __attribute__((visibility("default")))
219 #else
220  /* We are building or calling GLFW as a static library */
221  #define GLFWAPI
222 #endif
223 
224 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
225 
226 
227 /*************************************************************************
228  * GLFW API tokens
229  *************************************************************************/
230 
238 #define GLFW_VERSION_MAJOR 3
239 
245 #define GLFW_VERSION_MINOR 1
246 
252 #define GLFW_VERSION_REVISION 0
253 
263 #define GLFW_RELEASE 0
264 
270 #define GLFW_PRESS 1
271 
277 #define GLFW_REPEAT 2
278 
303 /* The unknown key */
304 #define GLFW_KEY_UNKNOWN -1
305 
306 /* Printable keys */
307 #define GLFW_KEY_SPACE 32
308 #define GLFW_KEY_APOSTROPHE 39 /* ' */
309 #define GLFW_KEY_COMMA 44 /* , */
310 #define GLFW_KEY_MINUS 45 /* - */
311 #define GLFW_KEY_PERIOD 46 /* . */
312 #define GLFW_KEY_SLASH 47 /* / */
313 #define GLFW_KEY_0 48
314 #define GLFW_KEY_1 49
315 #define GLFW_KEY_2 50
316 #define GLFW_KEY_3 51
317 #define GLFW_KEY_4 52
318 #define GLFW_KEY_5 53
319 #define GLFW_KEY_6 54
320 #define GLFW_KEY_7 55
321 #define GLFW_KEY_8 56
322 #define GLFW_KEY_9 57
323 #define GLFW_KEY_SEMICOLON 59 /* ; */
324 #define GLFW_KEY_EQUAL 61 /* = */
325 #define GLFW_KEY_A 65
326 #define GLFW_KEY_B 66
327 #define GLFW_KEY_C 67
328 #define GLFW_KEY_D 68
329 #define GLFW_KEY_E 69
330 #define GLFW_KEY_F 70
331 #define GLFW_KEY_G 71
332 #define GLFW_KEY_H 72
333 #define GLFW_KEY_I 73
334 #define GLFW_KEY_J 74
335 #define GLFW_KEY_K 75
336 #define GLFW_KEY_L 76
337 #define GLFW_KEY_M 77
338 #define GLFW_KEY_N 78
339 #define GLFW_KEY_O 79
340 #define GLFW_KEY_P 80
341 #define GLFW_KEY_Q 81
342 #define GLFW_KEY_R 82
343 #define GLFW_KEY_S 83
344 #define GLFW_KEY_T 84
345 #define GLFW_KEY_U 85
346 #define GLFW_KEY_V 86
347 #define GLFW_KEY_W 87
348 #define GLFW_KEY_X 88
349 #define GLFW_KEY_Y 89
350 #define GLFW_KEY_Z 90
351 #define GLFW_KEY_LEFT_BRACKET 91 /* [ */
352 #define GLFW_KEY_BACKSLASH 92 /* \ */
353 #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
354 #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
355 #define GLFW_KEY_WORLD_1 161 /* non-US #1 */
356 #define GLFW_KEY_WORLD_2 162 /* non-US #2 */
357 
358 /* Function keys */
359 #define GLFW_KEY_ESCAPE 256
360 #define GLFW_KEY_ENTER 257
361 #define GLFW_KEY_TAB 258
362 #define GLFW_KEY_BACKSPACE 259
363 #define GLFW_KEY_INSERT 260
364 #define GLFW_KEY_DELETE 261
365 #define GLFW_KEY_RIGHT 262
366 #define GLFW_KEY_LEFT 263
367 #define GLFW_KEY_DOWN 264
368 #define GLFW_KEY_UP 265
369 #define GLFW_KEY_PAGE_UP 266
370 #define GLFW_KEY_PAGE_DOWN 267
371 #define GLFW_KEY_HOME 268
372 #define GLFW_KEY_END 269
373 #define GLFW_KEY_CAPS_LOCK 280
374 #define GLFW_KEY_SCROLL_LOCK 281
375 #define GLFW_KEY_NUM_LOCK 282
376 #define GLFW_KEY_PRINT_SCREEN 283
377 #define GLFW_KEY_PAUSE 284
378 #define GLFW_KEY_F1 290
379 #define GLFW_KEY_F2 291
380 #define GLFW_KEY_F3 292
381 #define GLFW_KEY_F4 293
382 #define GLFW_KEY_F5 294
383 #define GLFW_KEY_F6 295
384 #define GLFW_KEY_F7 296
385 #define GLFW_KEY_F8 297
386 #define GLFW_KEY_F9 298
387 #define GLFW_KEY_F10 299
388 #define GLFW_KEY_F11 300
389 #define GLFW_KEY_F12 301
390 #define GLFW_KEY_F13 302
391 #define GLFW_KEY_F14 303
392 #define GLFW_KEY_F15 304
393 #define GLFW_KEY_F16 305
394 #define GLFW_KEY_F17 306
395 #define GLFW_KEY_F18 307
396 #define GLFW_KEY_F19 308
397 #define GLFW_KEY_F20 309
398 #define GLFW_KEY_F21 310
399 #define GLFW_KEY_F22 311
400 #define GLFW_KEY_F23 312
401 #define GLFW_KEY_F24 313
402 #define GLFW_KEY_F25 314
403 #define GLFW_KEY_KP_0 320
404 #define GLFW_KEY_KP_1 321
405 #define GLFW_KEY_KP_2 322
406 #define GLFW_KEY_KP_3 323
407 #define GLFW_KEY_KP_4 324
408 #define GLFW_KEY_KP_5 325
409 #define GLFW_KEY_KP_6 326
410 #define GLFW_KEY_KP_7 327
411 #define GLFW_KEY_KP_8 328
412 #define GLFW_KEY_KP_9 329
413 #define GLFW_KEY_KP_DECIMAL 330
414 #define GLFW_KEY_KP_DIVIDE 331
415 #define GLFW_KEY_KP_MULTIPLY 332
416 #define GLFW_KEY_KP_SUBTRACT 333
417 #define GLFW_KEY_KP_ADD 334
418 #define GLFW_KEY_KP_ENTER 335
419 #define GLFW_KEY_KP_EQUAL 336
420 #define GLFW_KEY_LEFT_SHIFT 340
421 #define GLFW_KEY_LEFT_CONTROL 341
422 #define GLFW_KEY_LEFT_ALT 342
423 #define GLFW_KEY_LEFT_SUPER 343
424 #define GLFW_KEY_RIGHT_SHIFT 344
425 #define GLFW_KEY_RIGHT_CONTROL 345
426 #define GLFW_KEY_RIGHT_ALT 346
427 #define GLFW_KEY_RIGHT_SUPER 347
428 #define GLFW_KEY_MENU 348
429 #define GLFW_KEY_LAST GLFW_KEY_MENU
430 
442 #define GLFW_MOD_SHIFT 0x0001
443 
445 #define GLFW_MOD_CONTROL 0x0002
446 
448 #define GLFW_MOD_ALT 0x0004
449 
451 #define GLFW_MOD_SUPER 0x0008
452 
461 #define GLFW_MOUSE_BUTTON_1 0
462 #define GLFW_MOUSE_BUTTON_2 1
463 #define GLFW_MOUSE_BUTTON_3 2
464 #define GLFW_MOUSE_BUTTON_4 3
465 #define GLFW_MOUSE_BUTTON_5 4
466 #define GLFW_MOUSE_BUTTON_6 5
467 #define GLFW_MOUSE_BUTTON_7 6
468 #define GLFW_MOUSE_BUTTON_8 7
469 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
470 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
471 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
472 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
473 
481 #define GLFW_JOYSTICK_1 0
482 #define GLFW_JOYSTICK_2 1
483 #define GLFW_JOYSTICK_3 2
484 #define GLFW_JOYSTICK_4 3
485 #define GLFW_JOYSTICK_5 4
486 #define GLFW_JOYSTICK_6 5
487 #define GLFW_JOYSTICK_7 6
488 #define GLFW_JOYSTICK_8 7
489 #define GLFW_JOYSTICK_9 8
490 #define GLFW_JOYSTICK_10 9
491 #define GLFW_JOYSTICK_11 10
492 #define GLFW_JOYSTICK_12 11
493 #define GLFW_JOYSTICK_13 12
494 #define GLFW_JOYSTICK_14 13
495 #define GLFW_JOYSTICK_15 14
496 #define GLFW_JOYSTICK_16 15
497 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
498 
515 #define GLFW_NOT_INITIALIZED 0x00010001
516 
526 #define GLFW_NO_CURRENT_CONTEXT 0x00010002
527 
536 #define GLFW_INVALID_ENUM 0x00010003
537 
548 #define GLFW_INVALID_VALUE 0x00010004
549 
557 #define GLFW_OUT_OF_MEMORY 0x00010005
558 
575 #define GLFW_API_UNAVAILABLE 0x00010006
576 
593 #define GLFW_VERSION_UNAVAILABLE 0x00010007
594 
604 #define GLFW_PLATFORM_ERROR 0x00010008
605 
624 #define GLFW_FORMAT_UNAVAILABLE 0x00010009
625 
627 #define GLFW_FOCUSED 0x00020001
628 #define GLFW_ICONIFIED 0x00020002
629 #define GLFW_RESIZABLE 0x00020003
630 #define GLFW_VISIBLE 0x00020004
631 #define GLFW_DECORATED 0x00020005
632 #define GLFW_AUTO_ICONIFY 0x00020006
633 #define GLFW_FLOATING 0x00020007
634 
635 #define GLFW_RED_BITS 0x00021001
636 #define GLFW_GREEN_BITS 0x00021002
637 #define GLFW_BLUE_BITS 0x00021003
638 #define GLFW_ALPHA_BITS 0x00021004
639 #define GLFW_DEPTH_BITS 0x00021005
640 #define GLFW_STENCIL_BITS 0x00021006
641 #define GLFW_ACCUM_RED_BITS 0x00021007
642 #define GLFW_ACCUM_GREEN_BITS 0x00021008
643 #define GLFW_ACCUM_BLUE_BITS 0x00021009
644 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A
645 #define GLFW_AUX_BUFFERS 0x0002100B
646 #define GLFW_STEREO 0x0002100C
647 #define GLFW_SAMPLES 0x0002100D
648 #define GLFW_SRGB_CAPABLE 0x0002100E
649 #define GLFW_REFRESH_RATE 0x0002100F
650 #define GLFW_DOUBLEBUFFER 0x00021010
651 
652 #define GLFW_CLIENT_API 0x00022001
653 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
654 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003
655 #define GLFW_CONTEXT_REVISION 0x00022004
656 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005
657 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
658 #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
659 #define GLFW_OPENGL_PROFILE 0x00022008
660 #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
661 
662 #define GLFW_OPENGL_API 0x00030001
663 #define GLFW_OPENGL_ES_API 0x00030002
664 
665 #define GLFW_NO_ROBUSTNESS 0
666 #define GLFW_NO_RESET_NOTIFICATION 0x00031001
667 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
668 
669 #define GLFW_OPENGL_ANY_PROFILE 0
670 #define GLFW_OPENGL_CORE_PROFILE 0x00032001
671 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
672 
673 #define GLFW_CURSOR 0x00033001
674 #define GLFW_STICKY_KEYS 0x00033002
675 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
676 
677 #define GLFW_CURSOR_NORMAL 0x00034001
678 #define GLFW_CURSOR_HIDDEN 0x00034002
679 #define GLFW_CURSOR_DISABLED 0x00034003
680 
681 #define GLFW_ANY_RELEASE_BEHAVIOR 0
682 #define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
683 #define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
684 
696 #define GLFW_ARROW_CURSOR 0x00036001
697 
701 #define GLFW_IBEAM_CURSOR 0x00036002
702 
706 #define GLFW_CROSSHAIR_CURSOR 0x00036003
707 
711 #define GLFW_HAND_CURSOR 0x00036004
712 
716 #define GLFW_HRESIZE_CURSOR 0x00036005
717 
721 #define GLFW_VRESIZE_CURSOR 0x00036006
722 
724 #define GLFW_CONNECTED 0x00040001
725 #define GLFW_DISCONNECTED 0x00040002
726 
727 #define GLFW_DONT_CARE -1
728 
729 
730 /*************************************************************************
731  * GLFW API types
732  *************************************************************************/
733 
741 typedef void (*GLFWglproc)(void);
742 
749 typedef struct GLFWmonitor GLFWmonitor;
750 
757 typedef struct GLFWwindow GLFWwindow;
758 
765 typedef struct GLFWcursor GLFWcursor;
766 
778 typedef void (* GLFWerrorfun)(int,const char*);
779 
794 typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int);
795 
808 typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int);
809 
820 typedef void (* GLFWwindowclosefun)(GLFWwindow*);
821 
832 typedef void (* GLFWwindowrefreshfun)(GLFWwindow*);
833 
846 typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int);
847 
861 typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int);
862 
876 typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int);
877 
893 typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int);
894 
907 typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double);
908 
921 typedef void (* GLFWcursorenterfun)(GLFWwindow*,int);
922 
935 typedef void (* GLFWscrollfun)(GLFWwindow*,double,double);
936 
952 typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int);
953 
965 typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int);
966 
983 typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int);
984 
997 typedef void (* GLFWdropfun)(GLFWwindow*,int,const char**);
998 
1010 typedef void (* GLFWmonitorfun)(GLFWmonitor*,int);
1011 
1018 typedef struct GLFWvidmode
1019 {
1022  int width;
1025  int height;
1028  int redBits;
1038 } GLFWvidmode;
1039 
1048 typedef struct GLFWgammaramp
1049 {
1052  unsigned short* red;
1055  unsigned short* green;
1058  unsigned short* blue;
1061  unsigned int size;
1062 } GLFWgammaramp;
1063 
1066 typedef struct GLFWimage
1067 {
1070  int width;
1073  int height;
1076  unsigned char* pixels;
1077 } GLFWimage;
1078 
1079 
1080 /*************************************************************************
1081  * GLFW API functions
1082  *************************************************************************/
1083 
1121 GLFWAPI int glfwInit(void);
1122 
1153 GLFWAPI void glfwTerminate(void);
1154 
1180 GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
1181 
1212 GLFWAPI const char* glfwGetVersionString(void);
1213 
1246 
1273 GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
1274 
1293 GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
1294 
1316 GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
1317 
1349 GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
1350 
1375 GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
1376 
1401 
1433 GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
1434 
1460 GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
1461 
1479 GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
1480 
1504 GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
1505 
1529 GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
1530 
1546 GLFWAPI void glfwDefaultWindowHints(void);
1547 
1568 GLFWAPI void glfwWindowHint(int target, int hint);
1569 
1669 GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
1670 
1697 GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
1698 
1715 GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
1716 
1735 GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
1736 
1757 GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
1758 
1783 GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
1784 
1814 GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
1815 
1844 GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
1845 
1876 GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
1877 
1903 GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
1904 
1938 GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
1939 
1964 GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
1965 
1989 GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
1990 
2009 GLFWAPI void glfwShowWindow(GLFWwindow* window);
2010 
2029 GLFWAPI void glfwHideWindow(GLFWwindow* window);
2030 
2049 GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
2050 
2072 GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
2073 
2093 GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
2094 
2112 GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
2113 
2135 GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun cbfun);
2136 
2161 GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun cbfun);
2162 
2195 GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun cbfun);
2196 
2226 
2252 GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun cbfun);
2253 
2275 
2297 
2329 GLFWAPI void glfwPollEvents(void);
2330 
2372 GLFWAPI void glfwWaitEvents(void);
2373 
2393 GLFWAPI void glfwPostEmptyEvent(void);
2394 
2414 GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
2415 
2460 GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
2461 
2498 GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
2499 
2527 GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
2528 
2563 GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
2564 
2602 GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
2603 
2642 GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
2643 
2667 GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
2668 
2690 GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
2691 
2715 GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
2716 
2759 GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun);
2760 
2798 GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun);
2799 
2830 GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun cbfun);
2831 
2861 GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun cbfun);
2862 
2885 GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun cbfun);
2886 
2908 GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun cbfun);
2909 
2934 GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun cbfun);
2935 
2961 GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun cbfun);
2962 
2979 GLFWAPI int glfwJoystickPresent(int joy);
2980 
3005 GLFWAPI const float* glfwGetJoystickAxes(int joy, int* count);
3006 
3034 GLFWAPI const unsigned char* glfwGetJoystickButtons(int joy, int* count);
3035 
3060 GLFWAPI const char* glfwGetJoystickName(int joy);
3061 
3083 GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
3084 
3110 GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
3111 
3134 GLFWAPI double glfwGetTime(void);
3135 
3152 GLFWAPI void glfwSetTime(double time);
3153 
3180 GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
3181 
3200 GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
3201 
3223 GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
3224 
3265 GLFWAPI void glfwSwapInterval(int interval);
3266 
3295 GLFWAPI int glfwExtensionSupported(const char* extension);
3296 
3328 GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
3329 
3330 
3331 /*************************************************************************
3332  * Global definition cleanup
3333  *************************************************************************/
3334 
3335 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
3336 
3337 #ifdef GLFW_WINGDIAPI_DEFINED
3338  #undef WINGDIAPI
3339  #undef GLFW_WINGDIAPI_DEFINED
3340 #endif
3341 
3342 #ifdef GLFW_CALLBACK_DEFINED
3343  #undef CALLBACK
3344  #undef GLFW_CALLBACK_DEFINED
3345 #endif
3346 
3347 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
3348 
3349 
3350 #ifdef __cplusplus
3351 }
3352 #endif
3353 
3354 #endif /* _glfw3_h_ */
3355 
void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
int redBits
Definition: glfw3.h:1028
void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the client area of the specified window.
int glfwGetInputMode(GLFWwindow *window, int mode)
Returns the value of an input option for the specified window.
int height
Definition: glfw3.h:1025
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.
int blueBits
Definition: glfw3.h:1034
void(* GLFWmonitorfun)(GLFWmonitor *, int)
The function signature for monitor configuration callbacks.
Definition: glfw3.h:1010
unsigned char * pixels
Definition: glfw3.h:1076
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:765
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:1022
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:1073
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(* GLFWscrollfun)(GLFWwindow *, double, double)
The function signature for scroll callbacks.
Definition: glfw3.h:935
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(* GLFWwindowiconifyfun)(GLFWwindow *, int)
The function signature for window iconify/restore callbacks.
Definition: glfw3.h:861
int refreshRate
Definition: glfw3.h:1037
unsigned short * red
Definition: glfw3.h:1052
GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun cbfun)
Sets the file drop callback.
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:1055
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:749
struct GLFWwindow GLFWwindow
Opaque window object.
Definition: glfw3.h:757
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:1031
void(* GLFWcharmodsfun)(GLFWwindow *, unsigned int, int)
The function signature for Unicode character with modifiers callbacks.
Definition: glfw3.h:983
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(* GLFWcursorposfun)(GLFWwindow *, double, double)
The function signature for cursor position callbacks.
Definition: glfw3.h:907
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 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(* GLFWwindowclosefun)(GLFWwindow *)
The function signature for window close callbacks.
Definition: glfw3.h:820
void(* GLFWwindowposfun)(GLFWwindow *, int, int)
The function signature for window position callbacks.
Definition: glfw3.h:794
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:1061
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.
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(* GLFWmousebuttonfun)(GLFWwindow *, int, int, int)
The function signature for mouse button callbacks.
Definition: glfw3.h:893
void(* GLFWframebuffersizefun)(GLFWwindow *, int, int)
The function signature for framebuffer resize callbacks.
Definition: glfw3.h:876
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.
void(* GLFWcharfun)(GLFWwindow *, unsigned int)
The function signature for Unicode character callbacks.
Definition: glfw3.h:965
GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun cbfun)
Sets the cursor enter/exit callback.
void(* GLFWwindowrefreshfun)(GLFWwindow *)
The function signature for window content refresh callbacks.
Definition: glfw3.h:832
int width
Definition: glfw3.h:1070
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:1048
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:1058
Video mode type.
Definition: glfw3.h:1018
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:741
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(* GLFWdropfun)(GLFWwindow *, int, const char **)
The function signature for file drop callbacks.
Definition: glfw3.h:997
void(* GLFWwindowsizefun)(GLFWwindow *, int, int)
The function signature for window resize callbacks.
Definition: glfw3.h:808
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.
int glfwInit(void)
Initializes the GLFW library.
void(* GLFWwindowfocusfun)(GLFWwindow *, int)
The function signature for window focus/defocus callbacks.
Definition: glfw3.h:846
Image data.
Definition: glfw3.h:1066
void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
void(* GLFWcursorenterfun)(GLFWwindow *, int)
The function signature for cursor enter/leave callbacks.
Definition: glfw3.h:921
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.
void(* GLFWerrorfun)(int, const char *)
The function signature for error callbacks.
Definition: glfw3.h:778
void(* GLFWkeyfun)(GLFWwindow *, int, int, int, int)
The function signature for keyboard key callbacks.
Definition: glfw3.h:952
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun)
Sets the monitor configuration callback.
const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
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.