glfw3.h
Go to the documentation of this file.
1 /*************************************************************************
2  * GLFW 3.0 - 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 
66 /*************************************************************************
67  * Global definitions
68  *************************************************************************/
69 
70 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
71 
72 /* Please report any problems that you find with your compiler, which may
73  * be solved in this section! There are several compilers that I have not
74  * been able to test this file with yet.
75  *
76  * First: If we are we on Windows, we want a single define for it (_WIN32)
77  * (Note: For Cygwin the compiler flag -mwin32 should be used, but to
78  * make sure that things run smoothly for Cygwin users, we add __CYGWIN__
79  * to the list of "valid Win32 identifiers", which removes the need for
80  * -mwin32)
81  */
82 #if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__))
83  #define _WIN32
84 #endif /* _WIN32 */
85 
86 /* In order for extension support to be portable, we need to define an
87  * OpenGL function call method. We use the keyword APIENTRY, which is
88  * defined for Win32. (Note: Windows also needs this for <GL/gl.h>)
89  */
90 #ifndef APIENTRY
91  #ifdef _WIN32
92  #define APIENTRY __stdcall
93  #else
94  #define APIENTRY
95  #endif
96 #endif /* APIENTRY */
97 
98 /* The following three defines are here solely to make some Windows-based
99  * <GL/gl.h> files happy. Theoretically we could include <windows.h>, but
100  * it has the major drawback of severely polluting our namespace.
101  */
102 
103 /* Under Windows, we need WINGDIAPI defined */
104 #if !defined(WINGDIAPI) && defined(_WIN32)
105  #if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__POCC__)
106  /* Microsoft Visual C++, Borland C++ Builder and Pelles C */
107  #define WINGDIAPI __declspec(dllimport)
108  #elif defined(__LCC__)
109  /* LCC-Win32 */
110  #define WINGDIAPI __stdcall
111  #else
112  /* Others (e.g. MinGW, Cygwin) */
113  #define WINGDIAPI extern
114  #endif
115  #define GLFW_WINGDIAPI_DEFINED
116 #endif /* WINGDIAPI */
117 
118 /* Some <GL/glu.h> files also need CALLBACK defined */
119 #if !defined(CALLBACK) && defined(_WIN32)
120  #if defined(_MSC_VER)
121  /* Microsoft Visual C++ */
122  #if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
123  #define CALLBACK __stdcall
124  #else
125  #define CALLBACK
126  #endif
127  #else
128  /* Other Windows compilers */
129  #define CALLBACK __stdcall
130  #endif
131  #define GLFW_CALLBACK_DEFINED
132 #endif /* CALLBACK */
133 
134 /* Most GL/glu.h variants on Windows need wchar_t
135  * OpenGL/gl.h blocks the definition of ptrdiff_t by glext.h on OS X */
136 #if !defined(GLFW_INCLUDE_NONE)
137  #include <stddef.h>
138 #endif
139 
140 /* Include the chosen client API headers.
141  */
142 #if defined(__APPLE_CC__)
143  #if defined(GLFW_INCLUDE_GLCOREARB)
144  #include <OpenGL/gl3.h>
145  #elif !defined(GLFW_INCLUDE_NONE)
146  #define GL_GLEXT_LEGACY
147  #include <OpenGL/gl.h>
148  #endif
149  #if defined(GLFW_INCLUDE_GLU)
150  #include <OpenGL/glu.h>
151  #endif
152 #else
153  #if defined(GLFW_INCLUDE_GLCOREARB)
154  #include <GL/glcorearb.h>
155  #elif defined(GLFW_INCLUDE_ES1)
156  #include <GLES/gl.h>
157  #elif defined(GLFW_INCLUDE_ES2)
158  #include <GLES2/gl2.h>
159  #elif defined(GLFW_INCLUDE_ES3)
160  #include <GLES3/gl3.h>
161  #elif !defined(GLFW_INCLUDE_NONE)
162  #include <GL/gl.h>
163  #endif
164  #if defined(GLFW_INCLUDE_GLU)
165  #include <GL/glu.h>
166  #endif
167 #endif
168 
169 #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
170  /* GLFW_DLL is defined by users of GLFW when compiling programs that will link
171  * to the DLL version of the GLFW library. _GLFW_BUILD_DLL is defined by the
172  * GLFW configuration header when compiling the DLL version of the library.
173  */
174  #error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
175 #endif
176 
177 #if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
178 
179  /* We are building a Win32 DLL */
180  #define GLFWAPI __declspec(dllexport)
181 
182 #elif defined(_WIN32) && defined(GLFW_DLL)
183 
184  /* We are calling a Win32 DLL */
185  #if defined(__LCC__)
186  #define GLFWAPI extern
187  #else
188  #define GLFWAPI __declspec(dllimport)
189  #endif
190 
191 #elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
192 
193  #define GLFWAPI __attribute__((visibility("default")))
194 
195 #else
196 
197  /* We are either building/calling a static lib or we are non-win32 */
198  #define GLFWAPI
199 
200 #endif
201 
202 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
203 
204 
205 /*************************************************************************
206  * GLFW API tokens
207  *************************************************************************/
208 
216 #define GLFW_VERSION_MAJOR 3
217 
223 #define GLFW_VERSION_MINOR 0
224 
230 #define GLFW_VERSION_REVISION 4
231 
238 #define GLFW_RELEASE 0
239 
242 #define GLFW_PRESS 1
243 
246 #define GLFW_REPEAT 2
247 
270 /* The unknown key */
271 #define GLFW_KEY_UNKNOWN -1
272 
273 /* Printable keys */
274 #define GLFW_KEY_SPACE 32
275 #define GLFW_KEY_APOSTROPHE 39 /* ' */
276 #define GLFW_KEY_COMMA 44 /* , */
277 #define GLFW_KEY_MINUS 45 /* - */
278 #define GLFW_KEY_PERIOD 46 /* . */
279 #define GLFW_KEY_SLASH 47 /* / */
280 #define GLFW_KEY_0 48
281 #define GLFW_KEY_1 49
282 #define GLFW_KEY_2 50
283 #define GLFW_KEY_3 51
284 #define GLFW_KEY_4 52
285 #define GLFW_KEY_5 53
286 #define GLFW_KEY_6 54
287 #define GLFW_KEY_7 55
288 #define GLFW_KEY_8 56
289 #define GLFW_KEY_9 57
290 #define GLFW_KEY_SEMICOLON 59 /* ; */
291 #define GLFW_KEY_EQUAL 61 /* = */
292 #define GLFW_KEY_A 65
293 #define GLFW_KEY_B 66
294 #define GLFW_KEY_C 67
295 #define GLFW_KEY_D 68
296 #define GLFW_KEY_E 69
297 #define GLFW_KEY_F 70
298 #define GLFW_KEY_G 71
299 #define GLFW_KEY_H 72
300 #define GLFW_KEY_I 73
301 #define GLFW_KEY_J 74
302 #define GLFW_KEY_K 75
303 #define GLFW_KEY_L 76
304 #define GLFW_KEY_M 77
305 #define GLFW_KEY_N 78
306 #define GLFW_KEY_O 79
307 #define GLFW_KEY_P 80
308 #define GLFW_KEY_Q 81
309 #define GLFW_KEY_R 82
310 #define GLFW_KEY_S 83
311 #define GLFW_KEY_T 84
312 #define GLFW_KEY_U 85
313 #define GLFW_KEY_V 86
314 #define GLFW_KEY_W 87
315 #define GLFW_KEY_X 88
316 #define GLFW_KEY_Y 89
317 #define GLFW_KEY_Z 90
318 #define GLFW_KEY_LEFT_BRACKET 91 /* [ */
319 #define GLFW_KEY_BACKSLASH 92 /* \ */
320 #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
321 #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
322 #define GLFW_KEY_WORLD_1 161 /* non-US #1 */
323 #define GLFW_KEY_WORLD_2 162 /* non-US #2 */
324 
325 /* Function keys */
326 #define GLFW_KEY_ESCAPE 256
327 #define GLFW_KEY_ENTER 257
328 #define GLFW_KEY_TAB 258
329 #define GLFW_KEY_BACKSPACE 259
330 #define GLFW_KEY_INSERT 260
331 #define GLFW_KEY_DELETE 261
332 #define GLFW_KEY_RIGHT 262
333 #define GLFW_KEY_LEFT 263
334 #define GLFW_KEY_DOWN 264
335 #define GLFW_KEY_UP 265
336 #define GLFW_KEY_PAGE_UP 266
337 #define GLFW_KEY_PAGE_DOWN 267
338 #define GLFW_KEY_HOME 268
339 #define GLFW_KEY_END 269
340 #define GLFW_KEY_CAPS_LOCK 280
341 #define GLFW_KEY_SCROLL_LOCK 281
342 #define GLFW_KEY_NUM_LOCK 282
343 #define GLFW_KEY_PRINT_SCREEN 283
344 #define GLFW_KEY_PAUSE 284
345 #define GLFW_KEY_F1 290
346 #define GLFW_KEY_F2 291
347 #define GLFW_KEY_F3 292
348 #define GLFW_KEY_F4 293
349 #define GLFW_KEY_F5 294
350 #define GLFW_KEY_F6 295
351 #define GLFW_KEY_F7 296
352 #define GLFW_KEY_F8 297
353 #define GLFW_KEY_F9 298
354 #define GLFW_KEY_F10 299
355 #define GLFW_KEY_F11 300
356 #define GLFW_KEY_F12 301
357 #define GLFW_KEY_F13 302
358 #define GLFW_KEY_F14 303
359 #define GLFW_KEY_F15 304
360 #define GLFW_KEY_F16 305
361 #define GLFW_KEY_F17 306
362 #define GLFW_KEY_F18 307
363 #define GLFW_KEY_F19 308
364 #define GLFW_KEY_F20 309
365 #define GLFW_KEY_F21 310
366 #define GLFW_KEY_F22 311
367 #define GLFW_KEY_F23 312
368 #define GLFW_KEY_F24 313
369 #define GLFW_KEY_F25 314
370 #define GLFW_KEY_KP_0 320
371 #define GLFW_KEY_KP_1 321
372 #define GLFW_KEY_KP_2 322
373 #define GLFW_KEY_KP_3 323
374 #define GLFW_KEY_KP_4 324
375 #define GLFW_KEY_KP_5 325
376 #define GLFW_KEY_KP_6 326
377 #define GLFW_KEY_KP_7 327
378 #define GLFW_KEY_KP_8 328
379 #define GLFW_KEY_KP_9 329
380 #define GLFW_KEY_KP_DECIMAL 330
381 #define GLFW_KEY_KP_DIVIDE 331
382 #define GLFW_KEY_KP_MULTIPLY 332
383 #define GLFW_KEY_KP_SUBTRACT 333
384 #define GLFW_KEY_KP_ADD 334
385 #define GLFW_KEY_KP_ENTER 335
386 #define GLFW_KEY_KP_EQUAL 336
387 #define GLFW_KEY_LEFT_SHIFT 340
388 #define GLFW_KEY_LEFT_CONTROL 341
389 #define GLFW_KEY_LEFT_ALT 342
390 #define GLFW_KEY_LEFT_SUPER 343
391 #define GLFW_KEY_RIGHT_SHIFT 344
392 #define GLFW_KEY_RIGHT_CONTROL 345
393 #define GLFW_KEY_RIGHT_ALT 346
394 #define GLFW_KEY_RIGHT_SUPER 347
395 #define GLFW_KEY_MENU 348
396 #define GLFW_KEY_LAST GLFW_KEY_MENU
397 
406 #define GLFW_MOD_SHIFT 0x0001
407 
409 #define GLFW_MOD_CONTROL 0x0002
410 
412 #define GLFW_MOD_ALT 0x0004
413 
415 #define GLFW_MOD_SUPER 0x0008
416 
422 #define GLFW_MOUSE_BUTTON_1 0
423 #define GLFW_MOUSE_BUTTON_2 1
424 #define GLFW_MOUSE_BUTTON_3 2
425 #define GLFW_MOUSE_BUTTON_4 3
426 #define GLFW_MOUSE_BUTTON_5 4
427 #define GLFW_MOUSE_BUTTON_6 5
428 #define GLFW_MOUSE_BUTTON_7 6
429 #define GLFW_MOUSE_BUTTON_8 7
430 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
431 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
432 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
433 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
434 
439 #define GLFW_JOYSTICK_1 0
440 #define GLFW_JOYSTICK_2 1
441 #define GLFW_JOYSTICK_3 2
442 #define GLFW_JOYSTICK_4 3
443 #define GLFW_JOYSTICK_5 4
444 #define GLFW_JOYSTICK_6 5
445 #define GLFW_JOYSTICK_7 6
446 #define GLFW_JOYSTICK_8 7
447 #define GLFW_JOYSTICK_9 8
448 #define GLFW_JOYSTICK_10 9
449 #define GLFW_JOYSTICK_11 10
450 #define GLFW_JOYSTICK_12 11
451 #define GLFW_JOYSTICK_13 12
452 #define GLFW_JOYSTICK_14 13
453 #define GLFW_JOYSTICK_15 14
454 #define GLFW_JOYSTICK_16 15
455 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
456 
463 #define GLFW_NOT_INITIALIZED 0x00010001
464 
466 #define GLFW_NO_CURRENT_CONTEXT 0x00010002
467 
470 #define GLFW_INVALID_ENUM 0x00010003
471 
473 #define GLFW_INVALID_VALUE 0x00010004
474 
476 #define GLFW_OUT_OF_MEMORY 0x00010005
477 
480 #define GLFW_API_UNAVAILABLE 0x00010006
481 
483 #define GLFW_VERSION_UNAVAILABLE 0x00010007
484 
487 #define GLFW_PLATFORM_ERROR 0x00010008
488 
490 #define GLFW_FORMAT_UNAVAILABLE 0x00010009
491 
493 #define GLFW_FOCUSED 0x00020001
494 #define GLFW_ICONIFIED 0x00020002
495 #define GLFW_RESIZABLE 0x00020003
496 #define GLFW_VISIBLE 0x00020004
497 #define GLFW_DECORATED 0x00020005
498 
499 #define GLFW_RED_BITS 0x00021001
500 #define GLFW_GREEN_BITS 0x00021002
501 #define GLFW_BLUE_BITS 0x00021003
502 #define GLFW_ALPHA_BITS 0x00021004
503 #define GLFW_DEPTH_BITS 0x00021005
504 #define GLFW_STENCIL_BITS 0x00021006
505 #define GLFW_ACCUM_RED_BITS 0x00021007
506 #define GLFW_ACCUM_GREEN_BITS 0x00021008
507 #define GLFW_ACCUM_BLUE_BITS 0x00021009
508 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A
509 #define GLFW_AUX_BUFFERS 0x0002100B
510 #define GLFW_STEREO 0x0002100C
511 #define GLFW_SAMPLES 0x0002100D
512 #define GLFW_SRGB_CAPABLE 0x0002100E
513 #define GLFW_REFRESH_RATE 0x0002100F
514 
515 #define GLFW_CLIENT_API 0x00022001
516 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
517 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003
518 #define GLFW_CONTEXT_REVISION 0x00022004
519 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005
520 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
521 #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
522 #define GLFW_OPENGL_PROFILE 0x00022008
523 
524 #define GLFW_OPENGL_API 0x00030001
525 #define GLFW_OPENGL_ES_API 0x00030002
526 
527 #define GLFW_NO_ROBUSTNESS 0
528 #define GLFW_NO_RESET_NOTIFICATION 0x00031001
529 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
530 
531 #define GLFW_OPENGL_ANY_PROFILE 0
532 #define GLFW_OPENGL_CORE_PROFILE 0x00032001
533 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
534 
535 #define GLFW_CURSOR 0x00033001
536 #define GLFW_STICKY_KEYS 0x00033002
537 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
538 
539 #define GLFW_CURSOR_NORMAL 0x00034001
540 #define GLFW_CURSOR_HIDDEN 0x00034002
541 #define GLFW_CURSOR_DISABLED 0x00034003
542 
543 #define GLFW_CONNECTED 0x00040001
544 #define GLFW_DISCONNECTED 0x00040002
545 
546 
547 /*************************************************************************
548  * GLFW API types
549  *************************************************************************/
550 
558 typedef void (*GLFWglproc)(void);
559 
566 typedef struct GLFWmonitor GLFWmonitor;
567 
574 typedef struct GLFWwindow GLFWwindow;
575 
587 typedef void (* GLFWerrorfun)(int,const char*);
588 
603 typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int);
604 
617 typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int);
618 
629 typedef void (* GLFWwindowclosefun)(GLFWwindow*);
630 
641 typedef void (* GLFWwindowrefreshfun)(GLFWwindow*);
642 
655 typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int);
656 
670 typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int);
671 
685 typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int);
686 
702 typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int);
703 
716 typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double);
717 
730 typedef void (* GLFWcursorenterfun)(GLFWwindow*,int);
731 
744 typedef void (* GLFWscrollfun)(GLFWwindow*,double,double);
745 
761 typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int);
762 
774 typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int);
775 
787 typedef void (* GLFWmonitorfun)(GLFWmonitor*,int);
788 
795 typedef struct GLFWvidmode
796 {
799  int width;
802  int height;
805  int redBits;
811  int blueBits;
815 } GLFWvidmode;
816 
825 typedef struct GLFWgammaramp
826 {
829  unsigned short* red;
832  unsigned short* green;
835  unsigned short* blue;
838  unsigned int size;
839 } GLFWgammaramp;
840 
841 
842 /*************************************************************************
843  * GLFW API functions
844  *************************************************************************/
845 
874 GLFWAPI int glfwInit(void);
875 
898 GLFWAPI void glfwTerminate(void);
899 
918 GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
919 
948 GLFWAPI const char* glfwGetVersionString(void);
949 
974 
995 GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
996 
1008 GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
1009 
1021 GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
1022 
1040 GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* width, int* height);
1041 
1056 GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
1057 
1075 
1098 GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
1099 
1116 GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
1117 
1128 GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
1129 
1142 GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
1143 
1155 GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
1156 
1168 GLFWAPI void glfwDefaultWindowHints(void);
1169 
1190 GLFWAPI void glfwWindowHint(int target, int hint);
1191 
1258 GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
1259 
1280 GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
1281 
1293 GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
1294 
1308 GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
1309 
1322 GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
1323 
1339 GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
1340 
1367 GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
1368 
1385 GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
1386 
1409 GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
1410 
1427 GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
1428 
1444 GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
1445 
1461 GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
1462 
1477 GLFWAPI void glfwShowWindow(GLFWwindow* window);
1478 
1493 GLFWAPI void glfwHideWindow(GLFWwindow* window);
1494 
1505 GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
1506 
1519 GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
1520 
1534 GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
1535 
1547 GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
1548 
1564 
1580 
1607 
1631 
1651 
1666 
1681 
1711 GLFWAPI void glfwPollEvents(void);
1712 
1744 GLFWAPI void glfwWaitEvents(void);
1745 
1756 GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
1757 
1794 GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
1795 
1820 GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
1821 
1838 GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
1839 
1865 GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
1866 
1889 GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
1890 
1923 GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun);
1924 
1942 GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun);
1943 
1964 
1981 
1997 
2016 
2026 GLFWAPI int glfwJoystickPresent(int joy);
2027 
2045 GLFWAPI const float* glfwGetJoystickAxes(int joy, int* count);
2046 
2064 GLFWAPI const unsigned char* glfwGetJoystickButtons(int joy, int* count);
2065 
2082 GLFWAPI const char* glfwGetJoystickName(int joy);
2083 
2099 GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
2100 
2122 GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
2123 
2140 GLFWAPI double glfwGetTime(void);
2141 
2155 GLFWAPI void glfwSetTime(double time);
2156 
2173 GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
2174 
2189 GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
2190 
2209 GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
2210 
2243 GLFWAPI void glfwSwapInterval(int interval);
2244 
2264 GLFWAPI int glfwExtensionSupported(const char* extension);
2265 
2285 GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
2286 
2287 
2288 /*************************************************************************
2289  * Global definition cleanup
2290  *************************************************************************/
2291 
2292 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
2293 
2294 #ifdef GLFW_WINGDIAPI_DEFINED
2295  #undef WINGDIAPI
2296  #undef GLFW_WINGDIAPI_DEFINED
2297 #endif
2298 
2299 #ifdef GLFW_CALLBACK_DEFINED
2300  #undef CALLBACK
2301  #undef GLFW_CALLBACK_DEFINED
2302 #endif
2303 
2304 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
2305 
2306 
2307 #ifdef __cplusplus
2308 }
2309 #endif
2310 
2311 #endif /* _glfw3_h_ */
2312 
void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
int redBits
Definition: glfw3.h:805
void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the client area of the specified window.
void(* GLFWwindowiconifyfun)(GLFWwindow *, int)
The function signature for window iconify/restore callbacks.
Definition: glfw3.h:670
int glfwGetInputMode(GLFWwindow *window, int mode)
Returns the value of an input option for the specified window.
int height
Definition: glfw3.h:802
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:811
void(* GLFWmonitorfun)(GLFWmonitor *, int)
The function signature for monitor configuration callbacks.
Definition: glfw3.h:787
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)
Retrieves the current gamma ramp for the specified monitor.
void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
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:799
const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
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 pending and processes them.
GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun cbfun)
Sets the key callback.
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 last reported cursor position, 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:761
int refreshRate
Definition: glfw3.h:814
unsigned short * red
Definition: glfw3.h:829
void(* GLFWmousebuttonfun)(GLFWwindow *, int, int, int)
The function signature for mouse button callbacks.
Definition: glfw3.h:702
void(* GLFWcharfun)(GLFWwindow *, unsigned int)
The function signature for Unicode character callbacks.
Definition: glfw3.h:774
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:832
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:566
struct GLFWwindow GLFWwindow
Opaque window object.
Definition: glfw3.h:574
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:808
const float * glfwGetJoystickAxes(int joy, int *count)
Returns the values of all axes of the specified joystick.
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:716
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:617
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
double glfwGetTime(void)
Returns the value of the GLFW timer.
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:838
void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
void glfwSetTime(double time)
Sets the GLFW timer.
void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
void glfwSetClipboardString(GLFWwindow *window, const char *string)
Sets the clipboard to the specified string.
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:685
void(* GLFWerrorfun)(int, const char *)
The function signature for error callbacks.
Definition: glfw3.h:587
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:603
void glfwPollEvents(void)
Processes all pending events.
const char * glfwGetClipboardString(GLFWwindow *window)
Retrieves the contents of the clipboard as a string.
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.
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:825
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:835
Video mode type.
Definition: glfw3.h:795
GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun)
Sets the error callback.
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:629
void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
void(* GLFWcursorenterfun)(GLFWwindow *, int)
The function signature for cursor enter/leave callbacks.
Definition: glfw3.h:730
int glfwInit(void)
Initializes the GLFW library.
void(* GLFWscrollfun)(GLFWwindow *, double, double)
The function signature for scroll callbacks.
Definition: glfw3.h:744
void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor&#39;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.
void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *width, int *height)
Returns the physical size of the monitor.
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun)
Sets the monitor configuration callback.
void(* GLFWwindowrefreshfun)(GLFWwindow *)
The function signature for window content refresh callbacks.
Definition: glfw3.h:641
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:558
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.
void(* GLFWwindowfocusfun)(GLFWwindow *, int)
The function signature for window focus/defocus callbacks.
Definition: glfw3.h:655