GLFW

- Documentation
- Download
- Media
- Community

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

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 * Compiler- and platform-specific preprocessor work
72 *************************************************************************/
73
74 /* If we are we on Windows, we want a single define for it.
75 */
76 #if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
77 #define _WIN32
78 #endif /* _WIN32 */
79
80 /* It is customary to use APIENTRY for OpenGL function pointer declarations on
81 * all platforms. Additionally, the Windows OpenGL header needs APIENTRY.
82 */
83 #ifndef APIENTRY
84 #ifdef _WIN32
85 #define APIENTRY __stdcall
86 #else
87 #define APIENTRY
88 #endif
89 #endif /* APIENTRY */
90
91 /* Some Windows OpenGL headers need this.
92 */
93 #if !defined(WINGDIAPI) && defined(_WIN32)
94 #define WINGDIAPI __declspec(dllimport)
95 #define GLFW_WINGDIAPI_DEFINED
96 #endif /* WINGDIAPI */
97
98 /* Some Windows GLU headers need this.
99 */
100 #if !defined(CALLBACK) && defined(_WIN32)
101 #define CALLBACK __stdcall
102 #define GLFW_CALLBACK_DEFINED
103 #endif /* CALLBACK */
104
105 /* Most Windows GLU headers need wchar_t.
106 * The OS X OpenGL header blocks the definition of ptrdiff_t by glext.h.
107 */
108 #if !defined(GLFW_INCLUDE_NONE)
109 #include <stddef.h>
110 #endif
111
112 /* Include the chosen client API headers.
113 */
114 #if defined(__APPLE_CC__)
115 #if defined(GLFW_INCLUDE_GLCOREARB)
116 #include <OpenGL/gl3.h>
117 #if defined(GLFW_INCLUDE_GLEXT)
118 #include <OpenGL/gl3ext.h>
119 #endif
120 #elif !defined(GLFW_INCLUDE_NONE)
121 #if !defined(GLFW_INCLUDE_GLEXT)
122 #define GL_GLEXT_LEGACY
123 #endif
124 #include <OpenGL/gl.h>
125 #endif
126 #if defined(GLFW_INCLUDE_GLU)
127 #include <OpenGL/glu.h>
128 #endif
129 #else
130 #if defined(GLFW_INCLUDE_GLCOREARB)
131 #include <GL/glcorearb.h>
132 #elif defined(GLFW_INCLUDE_ES1)
133 #include <GLES/gl.h>
134 #if defined(GLFW_INCLUDE_GLEXT)
135 #include <GLES/glext.h>
136 #endif
137 #elif defined(GLFW_INCLUDE_ES2)
138 #include <GLES2/gl2.h>
139 #if defined(GLFW_INCLUDE_GLEXT)
140 #include <GLES2/gl2ext.h>
141 #endif
142 #elif defined(GLFW_INCLUDE_ES3)
143 #include <GLES3/gl3.h>
144 #if defined(GLFW_INCLUDE_GLEXT)
145 #include <GLES3/gl2ext.h>
146 #endif
147 #elif defined(GLFW_INCLUDE_ES31)
148 #include <GLES3/gl31.h>
149 #if defined(GLFW_INCLUDE_GLEXT)
150 #include <GLES3/gl2ext.h>
151 #endif
152 #elif !defined(GLFW_INCLUDE_NONE)
153 #include <GL/gl.h>
154 #if defined(GLFW_INCLUDE_GLEXT)
155 #include <GL/glext.h>
156 #endif
157 #endif
158 #if defined(GLFW_INCLUDE_GLU)
159 #include <GL/glu.h>
160 #endif
161 #endif
162
163 #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
164 /* GLFW_DLL must be defined by applications that are linking against the DLL
165 * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
166 * configuration header when compiling the DLL version of the library.
167 */
168 #error "You may not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
169 #endif
170
171 /* GLFWAPI is used to declare public API functions for export
172 * from the DLL / shared library / dynamic library.
173 */
174 #if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
175 /* We are building GLFW as a Win32 DLL */
176 #define GLFWAPI __declspec(dllexport)
177 #elif defined(_WIN32) && defined(GLFW_DLL)
178 /* We are calling GLFW as a Win32 DLL */
179 #define GLFWAPI __declspec(dllimport)
180 #elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
181 /* We are building GLFW as a shared / dynamic library */
182 #define GLFWAPI __attribute__((visibility("default")))
183 #else
184 /* We are building or calling GLFW as a static library */
185 #define GLFWAPI
186 #endif
187
188
189 /*************************************************************************
190 * GLFW API tokens
191 *************************************************************************/
192
200 #define GLFW_VERSION_MAJOR 3
201
207 #define GLFW_VERSION_MINOR 1
208
214 #define GLFW_VERSION_REVISION 1
215
225 #define GLFW_RELEASE 0
226
232 #define GLFW_PRESS 1
233
239 #define GLFW_REPEAT 2
240
265 /* The unknown key */
266 #define GLFW_KEY_UNKNOWN -1
267
268 /* Printable keys */
269 #define GLFW_KEY_SPACE 32
270 #define GLFW_KEY_APOSTROPHE 39 /* ' */
271 #define GLFW_KEY_COMMA 44 /* , */
272 #define GLFW_KEY_MINUS 45 /* - */
273 #define GLFW_KEY_PERIOD 46 /* . */
274 #define GLFW_KEY_SLASH 47 /* / */
275 #define GLFW_KEY_0 48
276 #define GLFW_KEY_1 49
277 #define GLFW_KEY_2 50
278 #define GLFW_KEY_3 51
279 #define GLFW_KEY_4 52
280 #define GLFW_KEY_5 53
281 #define GLFW_KEY_6 54
282 #define GLFW_KEY_7 55
283 #define GLFW_KEY_8 56
284 #define GLFW_KEY_9 57
285 #define GLFW_KEY_SEMICOLON 59 /* ; */
286 #define GLFW_KEY_EQUAL 61 /* = */
287 #define GLFW_KEY_A 65
288 #define GLFW_KEY_B 66
289 #define GLFW_KEY_C 67
290 #define GLFW_KEY_D 68
291 #define GLFW_KEY_E 69
292 #define GLFW_KEY_F 70
293 #define GLFW_KEY_G 71
294 #define GLFW_KEY_H 72
295 #define GLFW_KEY_I 73
296 #define GLFW_KEY_J 74
297 #define GLFW_KEY_K 75
298 #define GLFW_KEY_L 76
299 #define GLFW_KEY_M 77
300 #define GLFW_KEY_N 78
301 #define GLFW_KEY_O 79
302 #define GLFW_KEY_P 80
303 #define GLFW_KEY_Q 81
304 #define GLFW_KEY_R 82
305 #define GLFW_KEY_S 83
306 #define GLFW_KEY_T 84
307 #define GLFW_KEY_U 85
308 #define GLFW_KEY_V 86
309 #define GLFW_KEY_W 87
310 #define GLFW_KEY_X 88
311 #define GLFW_KEY_Y 89
312 #define GLFW_KEY_Z 90
313 #define GLFW_KEY_LEFT_BRACKET 91 /* [ */
314 #define GLFW_KEY_BACKSLASH 92 /* \ */
315 #define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
316 #define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
317 #define GLFW_KEY_WORLD_1 161 /* non-US #1 */
318 #define GLFW_KEY_WORLD_2 162 /* non-US #2 */
319
320 /* Function keys */
321 #define GLFW_KEY_ESCAPE 256
322 #define GLFW_KEY_ENTER 257
323 #define GLFW_KEY_TAB 258
324 #define GLFW_KEY_BACKSPACE 259
325 #define GLFW_KEY_INSERT 260
326 #define GLFW_KEY_DELETE 261
327 #define GLFW_KEY_RIGHT 262
328 #define GLFW_KEY_LEFT 263
329 #define GLFW_KEY_DOWN 264
330 #define GLFW_KEY_UP 265
331 #define GLFW_KEY_PAGE_UP 266
332 #define GLFW_KEY_PAGE_DOWN 267
333 #define GLFW_KEY_HOME 268
334 #define GLFW_KEY_END 269
335 #define GLFW_KEY_CAPS_LOCK 280
336 #define GLFW_KEY_SCROLL_LOCK 281
337 #define GLFW_KEY_NUM_LOCK 282
338 #define GLFW_KEY_PRINT_SCREEN 283
339 #define GLFW_KEY_PAUSE 284
340 #define GLFW_KEY_F1 290
341 #define GLFW_KEY_F2 291
342 #define GLFW_KEY_F3 292
343 #define GLFW_KEY_F4 293
344 #define GLFW_KEY_F5 294
345 #define GLFW_KEY_F6 295
346 #define GLFW_KEY_F7 296
347 #define GLFW_KEY_F8 297
348 #define GLFW_KEY_F9 298
349 #define GLFW_KEY_F10 299
350 #define GLFW_KEY_F11 300
351 #define GLFW_KEY_F12 301
352 #define GLFW_KEY_F13 302
353 #define GLFW_KEY_F14 303
354 #define GLFW_KEY_F15 304
355 #define GLFW_KEY_F16 305
356 #define GLFW_KEY_F17 306
357 #define GLFW_KEY_F18 307
358 #define GLFW_KEY_F19 308
359 #define GLFW_KEY_F20 309
360 #define GLFW_KEY_F21 310
361 #define GLFW_KEY_F22 311
362 #define GLFW_KEY_F23 312
363 #define GLFW_KEY_F24 313
364 #define GLFW_KEY_F25 314
365 #define GLFW_KEY_KP_0 320
366 #define GLFW_KEY_KP_1 321
367 #define GLFW_KEY_KP_2 322
368 #define GLFW_KEY_KP_3 323
369 #define GLFW_KEY_KP_4 324
370 #define GLFW_KEY_KP_5 325
371 #define GLFW_KEY_KP_6 326
372 #define GLFW_KEY_KP_7 327
373 #define GLFW_KEY_KP_8 328
374 #define GLFW_KEY_KP_9 329
375 #define GLFW_KEY_KP_DECIMAL 330
376 #define GLFW_KEY_KP_DIVIDE 331
377 #define GLFW_KEY_KP_MULTIPLY 332
378 #define GLFW_KEY_KP_SUBTRACT 333
379 #define GLFW_KEY_KP_ADD 334
380 #define GLFW_KEY_KP_ENTER 335
381 #define GLFW_KEY_KP_EQUAL 336
382 #define GLFW_KEY_LEFT_SHIFT 340
383 #define GLFW_KEY_LEFT_CONTROL 341
384 #define GLFW_KEY_LEFT_ALT 342
385 #define GLFW_KEY_LEFT_SUPER 343
386 #define GLFW_KEY_RIGHT_SHIFT 344
387 #define GLFW_KEY_RIGHT_CONTROL 345
388 #define GLFW_KEY_RIGHT_ALT 346
389 #define GLFW_KEY_RIGHT_SUPER 347
390 #define GLFW_KEY_MENU 348
391 #define GLFW_KEY_LAST GLFW_KEY_MENU
392
404 #define GLFW_MOD_SHIFT 0x0001
405
407 #define GLFW_MOD_CONTROL 0x0002
408
410 #define GLFW_MOD_ALT 0x0004
411
413 #define GLFW_MOD_SUPER 0x0008
414
423 #define GLFW_MOUSE_BUTTON_1 0
424 #define GLFW_MOUSE_BUTTON_2 1
425 #define GLFW_MOUSE_BUTTON_3 2
426 #define GLFW_MOUSE_BUTTON_4 3
427 #define GLFW_MOUSE_BUTTON_5 4
428 #define GLFW_MOUSE_BUTTON_6 5
429 #define GLFW_MOUSE_BUTTON_7 6
430 #define GLFW_MOUSE_BUTTON_8 7
431 #define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
432 #define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
433 #define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
434 #define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
435
443 #define GLFW_JOYSTICK_1 0
444 #define GLFW_JOYSTICK_2 1
445 #define GLFW_JOYSTICK_3 2
446 #define GLFW_JOYSTICK_4 3
447 #define GLFW_JOYSTICK_5 4
448 #define GLFW_JOYSTICK_6 5
449 #define GLFW_JOYSTICK_7 6
450 #define GLFW_JOYSTICK_8 7
451 #define GLFW_JOYSTICK_9 8
452 #define GLFW_JOYSTICK_10 9
453 #define GLFW_JOYSTICK_11 10
454 #define GLFW_JOYSTICK_12 11
455 #define GLFW_JOYSTICK_13 12
456 #define GLFW_JOYSTICK_14 13
457 #define GLFW_JOYSTICK_15 14
458 #define GLFW_JOYSTICK_16 15
459 #define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
460
477 #define GLFW_NOT_INITIALIZED 0x00010001
478
488 #define GLFW_NO_CURRENT_CONTEXT 0x00010002
489
498 #define GLFW_INVALID_ENUM 0x00010003
499
510 #define GLFW_INVALID_VALUE 0x00010004
511
519 #define GLFW_OUT_OF_MEMORY 0x00010005
520
539 #define GLFW_API_UNAVAILABLE 0x00010006
540
557 #define GLFW_VERSION_UNAVAILABLE 0x00010007
558
569 #define GLFW_PLATFORM_ERROR 0x00010008
570
589 #define GLFW_FORMAT_UNAVAILABLE 0x00010009
590
592 #define GLFW_FOCUSED 0x00020001
593 #define GLFW_ICONIFIED 0x00020002
594 #define GLFW_RESIZABLE 0x00020003
595 #define GLFW_VISIBLE 0x00020004
596 #define GLFW_DECORATED 0x00020005
597 #define GLFW_AUTO_ICONIFY 0x00020006
598 #define GLFW_FLOATING 0x00020007
599
600 #define GLFW_RED_BITS 0x00021001
601 #define GLFW_GREEN_BITS 0x00021002
602 #define GLFW_BLUE_BITS 0x00021003
603 #define GLFW_ALPHA_BITS 0x00021004
604 #define GLFW_DEPTH_BITS 0x00021005
605 #define GLFW_STENCIL_BITS 0x00021006
606 #define GLFW_ACCUM_RED_BITS 0x00021007
607 #define GLFW_ACCUM_GREEN_BITS 0x00021008
608 #define GLFW_ACCUM_BLUE_BITS 0x00021009
609 #define GLFW_ACCUM_ALPHA_BITS 0x0002100A
610 #define GLFW_AUX_BUFFERS 0x0002100B
611 #define GLFW_STEREO 0x0002100C
612 #define GLFW_SAMPLES 0x0002100D
613 #define GLFW_SRGB_CAPABLE 0x0002100E
614 #define GLFW_REFRESH_RATE 0x0002100F
615 #define GLFW_DOUBLEBUFFER 0x00021010
616
617 #define GLFW_CLIENT_API 0x00022001
618 #define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
619 #define GLFW_CONTEXT_VERSION_MINOR 0x00022003
620 #define GLFW_CONTEXT_REVISION 0x00022004
621 #define GLFW_CONTEXT_ROBUSTNESS 0x00022005
622 #define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
623 #define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
624 #define GLFW_OPENGL_PROFILE 0x00022008
625 #define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
626
627 #define GLFW_OPENGL_API 0x00030001
628 #define GLFW_OPENGL_ES_API 0x00030002
629
630 #define GLFW_NO_ROBUSTNESS 0
631 #define GLFW_NO_RESET_NOTIFICATION 0x00031001
632 #define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
633
634 #define GLFW_OPENGL_ANY_PROFILE 0
635 #define GLFW_OPENGL_CORE_PROFILE 0x00032001
636 #define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
637
638 #define GLFW_CURSOR 0x00033001
639 #define GLFW_STICKY_KEYS 0x00033002
640 #define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
641
642 #define GLFW_CURSOR_NORMAL 0x00034001
643 #define GLFW_CURSOR_HIDDEN 0x00034002
644 #define GLFW_CURSOR_DISABLED 0x00034003
645
646 #define GLFW_ANY_RELEASE_BEHAVIOR 0
647 #define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
648 #define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
649
661 #define GLFW_ARROW_CURSOR 0x00036001
662
666 #define GLFW_IBEAM_CURSOR 0x00036002
667
671 #define GLFW_CROSSHAIR_CURSOR 0x00036003
672
676 #define GLFW_HAND_CURSOR 0x00036004
677
681 #define GLFW_HRESIZE_CURSOR 0x00036005
682
686 #define GLFW_VRESIZE_CURSOR 0x00036006
687
689 #define GLFW_CONNECTED 0x00040001
690 #define GLFW_DISCONNECTED 0x00040002
691
692 #define GLFW_DONT_CARE -1
693
694
695 /*************************************************************************
696 * GLFW API types
697 *************************************************************************/
698
706 typedef void (*GLFWglproc)(void);
707
714 typedef struct GLFWmonitor GLFWmonitor;
715
722 typedef struct GLFWwindow GLFWwindow;
723
730 typedef struct GLFWcursor GLFWcursor;
731
743 typedef void (* GLFWerrorfun)(int,const char*);
744
759 typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int);
760
773 typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int);
774
785 typedef void (* GLFWwindowclosefun)(GLFWwindow*);
786
797 typedef void (* GLFWwindowrefreshfun)(GLFWwindow*);
798
811 typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int);
812
826 typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int);
827
841 typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int);
842
858 typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int);
859
872 typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double);
873
886 typedef void (* GLFWcursorenterfun)(GLFWwindow*,int);
887
900 typedef void (* GLFWscrollfun)(GLFWwindow*,double,double);
901
917 typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int);
918
930 typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int);
931
948 typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int);
949
962 typedef void (* GLFWdropfun)(GLFWwindow*,int,const char**);
963
975 typedef void (* GLFWmonitorfun)(GLFWmonitor*,int);
976
983 typedef struct GLFWvidmode
984 {
987 int width;
990 int height;
993 int redBits;
996 int greenBits;
999 int blueBits;
1002 int refreshRate;
1003 } GLFWvidmode;
1004
1013 typedef struct GLFWgammaramp
1014 {
1017 unsigned short* red;
1020 unsigned short* green;
1023 unsigned short* blue;
1026 unsigned int size;
1027 } GLFWgammaramp;
1028
1031 typedef struct GLFWimage
1032 {
1035 int width;
1038 int height;
1041 unsigned char* pixels;
1042 } GLFWimage;
1043
1044
1045 /*************************************************************************
1046 * GLFW API functions
1047 *************************************************************************/
1048
1086 GLFWAPI int glfwInit(void);
1087
1118 GLFWAPI void glfwTerminate(void);
1119
1145 GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
1146
1177 GLFWAPI const char* glfwGetVersionString(void);
1178
1210 GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun);
1211
1238 GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
1239
1258 GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
1259
1281 GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
1282
1314 GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
1315
1340 GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
1341
1365 GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun);
1366
1398 GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
1399
1425 GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
1426
1445 GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
1446
1470 GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
1471
1498 GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
1499
1515 GLFWAPI void glfwDefaultWindowHints(void);
1516
1537 GLFWAPI void glfwWindowHint(int target, int hint);
1538
1645 GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
1646
1673 GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
1674
1691 GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
1692
1711 GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
1712
1733 GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
1734
1759 GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
1760
1790 GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
1791
1820 GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
1821
1852 GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
1853
1879 GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
1880
1914 GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
1915
1940 GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
1941
1965 GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
1966
1985 GLFWAPI void glfwShowWindow(GLFWwindow* window);
1986
2005 GLFWAPI void glfwHideWindow(GLFWwindow* window);
2006
2025 GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
2026
2048 GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
2049
2069 GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
2070
2088 GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
2089
2111 GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun cbfun);
2112
2137 GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun cbfun);
2138
2171 GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun cbfun);
2172
2201 GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun cbfun);
2202
2228 GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun cbfun);
2229
2250 GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun cbfun);
2251
2272 GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun cbfun);
2273
2305 GLFWAPI void glfwPollEvents(void);
2306
2348 GLFWAPI void glfwWaitEvents(void);
2349
2369 GLFWAPI void glfwPostEmptyEvent(void);
2370
2390 GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
2391
2436 GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
2437
2474 GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
2475
2503 GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
2504
2539 GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
2540
2578 GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
2579
2618 GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
2619
2643 GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
2644
2666 GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
2667
2691 GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
2692
2735 GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun);
2736
2774 GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun);
2775
2806 GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun cbfun);
2807
2837 GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun cbfun);
2838
2861 GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun cbfun);
2862
2884 GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun cbfun);
2885
2910 GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun cbfun);
2911
2937 GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun cbfun);
2938
2955 GLFWAPI int glfwJoystickPresent(int joy);
2956
2981 GLFWAPI const float* glfwGetJoystickAxes(int joy, int* count);
2982
3010 GLFWAPI const unsigned char* glfwGetJoystickButtons(int joy, int* count);
3011
3036 GLFWAPI const char* glfwGetJoystickName(int joy);
3037
3059 GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
3060
3086 GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
3087
3110 GLFWAPI double glfwGetTime(void);
3111
3133 GLFWAPI void glfwSetTime(double time);
3134
3161 GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
3162
3181 GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
3182
3204 GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
3205
3246 GLFWAPI void glfwSwapInterval(int interval);
3247
3276 GLFWAPI int glfwExtensionSupported(const char* extension);
3277
3313 GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
3314
3315
3316 /*************************************************************************
3317 * Global definition cleanup
3318 *************************************************************************/
3319
3320 /* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
3321
3322 #ifdef GLFW_WINGDIAPI_DEFINED
3323 #undef WINGDIAPI
3324 #undef GLFW_WINGDIAPI_DEFINED
3325 #endif
3326
3327 #ifdef GLFW_CALLBACK_DEFINED
3328 #undef CALLBACK
3329 #undef GLFW_CALLBACK_DEFINED
3330 #endif
3331
3332 /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
3333
3334
3335 #ifdef __cplusplus
3336 }
3337 #endif
3338
3339 #endif /* _glfw3_h_ */
3340
glfwGetVersion
void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
GLFWvidmode::redBits
int redBits
Definition: glfw3.h:993
glfwGetWindowSize
void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the client area of the specified window.
glfwGetInputMode
int glfwGetInputMode(GLFWwindow *window, int mode)
Returns the value of an input option for the specified window.
GLFWvidmode::height
int height
Definition: glfw3.h:990
glfwSetWindowRefreshCallback
GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun cbfun)
Sets the refresh callback for the specified window.
glfwSetWindowPosCallback
GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun cbfun)
Sets the position callback for the specified window.
glfwGetWindowPos
void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the client area of the specified window.
GLFWvidmode::blueBits
int blueBits
Definition: glfw3.h:999
GLFWmonitorfun
void(* GLFWmonitorfun)(GLFWmonitor *, int)
The function signature for monitor configuration callbacks.
Definition: glfw3.h:975
GLFWimage::pixels
unsigned char * pixels
Definition: glfw3.h:1041
glfwGetWindowUserPointer
void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
glfwGetVideoModes
const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
glfwGetGammaRamp
const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
GLFWcursor
struct GLFWcursor GLFWcursor
Opaque cursor object.
Definition: glfw3.h:730
glfwIconifyWindow
void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
glfwSetErrorCallback
GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun)
Sets the error callback.
glfwGetTime
double glfwGetTime(void)
Returns the value of the GLFW timer.
glfwSetWindowIconifyCallback
GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun cbfun)
Sets the iconify callback for the specified window.
glfwSetCursorPos
void glfwSetCursorPos(GLFWwindow *window, double xpos, double ypos)
Sets the position of the cursor, relative to the client area of the window.
GLFWvidmode::width
int width
Definition: glfw3.h:987
glfwGetVersionString
const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
glfwSetWindowSizeCallback
GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun cbfun)
Sets the size callback for the specified window.
glfwGetJoystickName
const char * glfwGetJoystickName(int joy)
Returns the name of the specified joystick.
glfwWaitEvents
void glfwWaitEvents(void)
Waits until events are queued and processes them.
GLFWimage::height
int height
Definition: glfw3.h:1038
glfwSetKeyCallback
GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun cbfun)
Sets the key callback.
glfwGetClipboardString
const char * glfwGetClipboardString(GLFWwindow *window)
Returns the contents of the clipboard as a string.
GLFWscrollfun
void(* GLFWscrollfun)(GLFWwindow *, double, double)
The function signature for scroll callbacks.
Definition: glfw3.h:900
glfwGetProcAddress
GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
glfwGetCursorPos
void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)
Retrieves the position of the cursor relative to the client area of the window.
GLFWwindowiconifyfun
void(* GLFWwindowiconifyfun)(GLFWwindow *, int)
The function signature for window iconify/restore callbacks.
Definition: glfw3.h:826
GLFWvidmode::refreshRate
int refreshRate
Definition: glfw3.h:1002
GLFWgammaramp::red
unsigned short * red
Definition: glfw3.h:1017
glfwSetDropCallback
GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun cbfun)
Sets the file drop callback.
glfwSetCursor
void glfwSetCursor(GLFWwindow *window, GLFWcursor *cursor)
Sets the cursor for the window.
glfwGetJoystickButtons
const unsigned char * glfwGetJoystickButtons(int joy, int *count)
Returns the state of all buttons of the specified joystick.
glfwGetMonitors
GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
glfwDestroyWindow
void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
glfwSetCursorPosCallback
GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun cbfun)
Sets the cursor position callback.
GLFWgammaramp::green
unsigned short * green
Definition: glfw3.h:1020
glfwSetCharCallback
GLFWcharfun glfwSetCharCallback(GLFWwindow *window, GLFWcharfun cbfun)
Sets the Unicode character callback.
glfwSetWindowTitle
void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
GLFWmonitor
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition: glfw3.h:714
GLFWwindow
struct GLFWwindow GLFWwindow
Opaque window object.
Definition: glfw3.h:722
glfwGetMonitorPhysicalSize
void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
glfwShowWindow
void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
glfwSetWindowSize
void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the client area of the specified window.
GLFWvidmode::greenBits
int greenBits
Definition: glfw3.h:996
GLFWcharmodsfun
void(* GLFWcharmodsfun)(GLFWwindow *, unsigned int, int)
The function signature for Unicode character with modifiers callbacks.
Definition: glfw3.h:948
glfwGetJoystickAxes
const float * glfwGetJoystickAxes(int joy, int *count)
Returns the values of all axes of the specified joystick.
glfwCreateCursor
GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)
Creates a custom cursor.
glfwDestroyCursor
void glfwDestroyCursor(GLFWcursor *cursor)
Destroys a cursor.
glfwSwapBuffers
void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
glfwSetGamma
void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
glfwSetInputMode
void glfwSetInputMode(GLFWwindow *window, int mode, int value)
Sets an input option for the specified window.
glfwGetVideoMode
const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
GLFWcursorposfun
void(* GLFWcursorposfun)(GLFWwindow *, double, double)
The function signature for cursor position callbacks.
Definition: glfw3.h:872
glfwSetClipboardString
void glfwSetClipboardString(GLFWwindow *window, const char *string)
Sets the clipboard to the specified string.
glfwGetWindowFrameSize
void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
glfwRestoreWindow
void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
glfwGetMouseButton
int glfwGetMouseButton(GLFWwindow *window, int button)
Returns the last reported state of a mouse button for the specified window.
GLFWwindowclosefun
void(* GLFWwindowclosefun)(GLFWwindow *)
The function signature for window close callbacks.
Definition: glfw3.h:785
GLFWwindowposfun
void(* GLFWwindowposfun)(GLFWwindow *, int, int)
The function signature for window position callbacks.
Definition: glfw3.h:759
glfwSetTime
void glfwSetTime(double time)
Sets the GLFW timer.
GLFWgammaramp
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
glfwCreateWindow
GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
GLFWgammaramp::size
unsigned int size
Definition: glfw3.h:1026
glfwSetWindowUserPointer
void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
glfwSetWindowShouldClose
void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
glfwPostEmptyEvent
void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
glfwSetFramebufferSizeCallback
GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun cbfun)
Sets the framebuffer resize callback for the specified window.
glfwJoystickPresent
int glfwJoystickPresent(int joy)
Returns whether the specified joystick is present.
glfwWindowHint
void glfwWindowHint(int target, int hint)
Sets the specified window hint to the desired value.
GLFWmousebuttonfun
void(* GLFWmousebuttonfun)(GLFWwindow *, int, int, int)
The function signature for mouse button callbacks.
Definition: glfw3.h:858
GLFWframebuffersizefun
void(* GLFWframebuffersizefun)(GLFWwindow *, int, int)
The function signature for framebuffer resize callbacks.
Definition: glfw3.h:841
glfwPollEvents
void glfwPollEvents(void)
Processes all pending events.
glfwHideWindow
void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
glfwGetCurrentContext
GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
glfwSetGammaRamp
void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
GLFWcharfun
void(* GLFWcharfun)(GLFWwindow *, unsigned int)
The function signature for Unicode character callbacks.
Definition: glfw3.h:930
glfwSetCursorEnterCallback
GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun cbfun)
Sets the cursor enter/exit callback.
GLFWwindowrefreshfun
void(* GLFWwindowrefreshfun)(GLFWwindow *)
The function signature for window content refresh callbacks.
Definition: glfw3.h:797
GLFWimage::width
int width
Definition: glfw3.h:1035
glfwGetWindowMonitor
GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
glfwSetMouseButtonCallback
GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow *window, GLFWmousebuttonfun cbfun)
Sets the mouse button callback.
glfwGetPrimaryMonitor
GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
glfwGetKey
int glfwGetKey(GLFWwindow *window, int key)
Returns the last reported state of a keyboard key for the specified window.
glfwMakeContextCurrent
void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
GLFWgammaramp
Gamma ramp.
Definition: glfw3.h:1013
glfwSetWindowCloseCallback
GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun cbfun)
Sets the close callback for the specified window.
glfwSetScrollCallback
GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun cbfun)
Sets the scroll callback.
GLFWgammaramp::blue
unsigned short * blue
Definition: glfw3.h:1023
GLFWvidmode
Video mode type.
Definition: glfw3.h:983
GLFWglproc
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:706
glfwSetWindowPos
void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the client area of the specified window.
glfwExtensionSupported
int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
glfwGetFramebufferSize
void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
GLFWdropfun
void(* GLFWdropfun)(GLFWwindow *, int, const char **)
The function signature for file drop callbacks.
Definition: glfw3.h:962
GLFWwindowsizefun
void(* GLFWwindowsizefun)(GLFWwindow *, int, int)
The function signature for window resize callbacks.
Definition: glfw3.h:773
glfwCreateStandardCursor
GLFWcursor * glfwCreateStandardCursor(int shape)
Creates a cursor with a standard shape.
glfwSwapInterval
void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
glfwSetCharModsCallback
GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow *window, GLFWcharmodsfun cbfun)
Sets the Unicode character with modifiers callback.
glfwInit
int glfwInit(void)
Initializes the GLFW library.
GLFWwindowfocusfun
void(* GLFWwindowfocusfun)(GLFWwindow *, int)
The function signature for window focus/defocus callbacks.
Definition: glfw3.h:811
GLFWimage
Image data.
Definition: glfw3.h:1031
glfwGetMonitorPos
void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
GLFWcursorenterfun
void(* GLFWcursorenterfun)(GLFWwindow *, int)
The function signature for cursor enter/leave callbacks.
Definition: glfw3.h:886
GLFWvidmode
struct GLFWvidmode GLFWvidmode
Video mode type.
glfwDefaultWindowHints
void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
glfwSetWindowFocusCallback
GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun cbfun)
Sets the focus callback for the specified window.
glfwTerminate
void glfwTerminate(void)
Terminates the GLFW library.
GLFWimage
struct GLFWimage GLFWimage
Image data.
GLFWerrorfun
void(* GLFWerrorfun)(int, const char *)
The function signature for error callbacks.
Definition: glfw3.h:743
GLFWkeyfun
void(* GLFWkeyfun)(GLFWwindow *, int, int, int, int)
The function signature for keyboard key callbacks.
Definition: glfw3.h:917
glfwSetMonitorCallback
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun)
Sets the monitor configuration callback.
glfwGetMonitorName
const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
glfwWindowShouldClose
int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.
glfwGetWindowAttrib
int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.