All Data Structures Files Functions Variables Typedefs Macros Modules Pages
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 
1563 GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun cbfun);
1564 
1579 GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun cbfun);
1580 
1606 GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun cbfun);
1607 
1631 
1650 GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun cbfun);
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 
1963 GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun cbfun);
1964 
1980 GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun cbfun);
1981 
1996 GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun cbfun);
1997 
2015 GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun cbfun);
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.
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.
void(* GLFWerrorfun)(int, const char *)
The function signature for error callbacks.
Definition: glfw3.h:587
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.
void(* GLFWscrollfun)(GLFWwindow *, double, double)
The function signature for scroll callbacks.
Definition: glfw3.h:744
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(* GLFWwindowiconifyfun)(GLFWwindow *, int)
The function signature for window iconify/restore callbacks.
Definition: glfw3.h:670
int refreshRate
Definition: glfw3.h:814
unsigned short * red
Definition: glfw3.h:829
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(* GLFWwindowclosefun)(GLFWwindow *)
The function signature for window close callbacks.
Definition: glfw3.h:629
void(* GLFWwindowposfun)(GLFWwindow *, int, int)
The function signature for window position callbacks.
Definition: glfw3.h:603
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.
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:702
void(* GLFWframebuffersizefun)(GLFWwindow *, int, int)
The function signature for framebuffer resize callbacks.
Definition: glfw3.h:685
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.
void(* GLFWcharfun)(GLFWwindow *, unsigned int)
The function signature for Unicode character callbacks.
Definition: glfw3.h:774
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:641
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(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:558
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(* GLFWwindowsizefun)(GLFWwindow *, int, int)
The function signature for window resize callbacks.
Definition: glfw3.h:617
void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
int glfwInit(void)
Initializes the GLFW library.
void(* GLFWwindowfocusfun)(GLFWwindow *, int)
The function signature for window focus/defocus callbacks.
Definition: glfw3.h:655
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:730
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.
void(* GLFWkeyfun)(GLFWwindow *, int, int, int, int)
The function signature for keyboard key callbacks.
Definition: glfw3.h:761
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.