Steppable 0.0.1
A CAS project written from scratch in C++
Loading...
Searching...
No Matches
glfw3.h
1/*************************************************************************
2 * GLFW 3.2 - www.glfw.org
3 * A library for OpenGL, window and input
4 *------------------------------------------------------------------------
5 * Copyright (c) 2002-2006 Marcus Geelnard
6 * Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
7 *
8 * This software is provided 'as-is', without any express or implied
9 * warranty. In no event will the authors be held liable for any damages
10 * arising from the use of this software.
11 *
12 * Permission is granted to anyone to use this software for any purpose,
13 * including commercial applications, and to alter it and redistribute it
14 * freely, subject to the following restrictions:
15 *
16 * 1. The origin of this software must not be misrepresented; you must not
17 * claim that you wrote the original software. If you use this software
18 * in a product, an acknowledgment in the product documentation would
19 * be appreciated but is not required.
20 *
21 * 2. Altered source versions must be plainly marked as such, and must not
22 * be misrepresented as being the original software.
23 *
24 * 3. This notice may not be removed or altered from any source
25 * distribution.
26 *
27 *************************************************************************/
28
29#ifndef _glfw3_h_
30#define _glfw3_h_
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36
37/*************************************************************************
38 * Doxygen documentation
39 *************************************************************************/
40
81
82
83/*************************************************************************
84 * Compiler- and platform-specific preprocessor work
85 *************************************************************************/
86
87/* If we are we on Windows, we want a single define for it.
88 */
89#if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
90 #define _WIN32
91#endif /* _WIN32 */
92
93/* It is customary to use APIENTRY for OpenGL function pointer declarations on
94 * all platforms. Additionally, the Windows OpenGL header needs APIENTRY.
95 */
96#ifndef APIENTRY
97 #ifdef _WIN32
98 #define APIENTRY __stdcall
99 #else
100 #define APIENTRY
101 #endif
102#endif /* APIENTRY */
103
104/* Some Windows OpenGL headers need this.
105 */
106#if !defined(WINGDIAPI) && defined(_WIN32)
107 #define WINGDIAPI __declspec(dllimport)
108 #define GLFW_WINGDIAPI_DEFINED
109#endif /* WINGDIAPI */
110
111/* Some Windows GLU headers need this.
112 */
113#if !defined(CALLBACK) && defined(_WIN32)
114 #define CALLBACK __stdcall
115 #define GLFW_CALLBACK_DEFINED
116#endif /* CALLBACK */
117
118/* Most Windows GLU headers need wchar_t.
119 * The OS X OpenGL header blocks the definition of ptrdiff_t by glext.h.
120 * Include it unconditionally to avoid surprising side-effects.
121 */
122#include <stddef.h>
123#include <stdint.h>
124
125/* Include the chosen client API headers.
126 */
127#if defined(__APPLE__)
128 #if defined(GLFW_INCLUDE_GLCOREARB)
129 #include <OpenGL/gl3.h>
130 #if defined(GLFW_INCLUDE_GLEXT)
131 #include <OpenGL/gl3ext.h>
132 #endif
133 #elif !defined(GLFW_INCLUDE_NONE)
134 #if !defined(GLFW_INCLUDE_GLEXT)
135 #define GL_GLEXT_LEGACY
136 #endif
137 #include <OpenGL/gl.h>
138 #endif
139 #if defined(GLFW_INCLUDE_GLU)
140 #include <OpenGL/glu.h>
141 #endif
142#else
143 #if defined(GLFW_INCLUDE_GLCOREARB)
144 #include <GL/glcorearb.h>
145 #elif defined(GLFW_INCLUDE_ES1)
146 #include <GLES/gl.h>
147 #if defined(GLFW_INCLUDE_GLEXT)
148 #include <GLES/glext.h>
149 #endif
150 #elif defined(GLFW_INCLUDE_ES2)
151 #include <GLES2/gl2.h>
152 #if defined(GLFW_INCLUDE_GLEXT)
153 #include <GLES2/gl2ext.h>
154 #endif
155 #elif defined(GLFW_INCLUDE_ES3)
156 #include <GLES3/gl3.h>
157 #if defined(GLFW_INCLUDE_GLEXT)
158 #include <GLES2/gl2ext.h>
159 #endif
160 #elif defined(GLFW_INCLUDE_ES31)
161 #include <GLES3/gl31.h>
162 #if defined(GLFW_INCLUDE_GLEXT)
163 #include <GLES2/gl2ext.h>
164 #endif
165 #elif defined(GLFW_INCLUDE_VULKAN)
166 #include <vulkan/vulkan.h>
167 #elif !defined(GLFW_INCLUDE_NONE)
168 #include <GL/gl.h>
169 #if defined(GLFW_INCLUDE_GLEXT)
170 #include <GL/glext.h>
171 #endif
172 #endif
173 #if defined(GLFW_INCLUDE_GLU)
174 #include <GL/glu.h>
175 #endif
176#endif
177
178#if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
179 /* GLFW_DLL must be defined by applications that are linking against the DLL
180 * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
181 * configuration header when compiling the DLL version of the library.
182 */
183 #error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
184#endif
185
186/* GLFWAPI is used to declare public API functions for export
187 * from the DLL / shared library / dynamic library.
188 */
189#if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
190 /* We are building GLFW as a Win32 DLL */
191 #define GLFWAPI __declspec(dllexport)
192#elif defined(_WIN32) && defined(GLFW_DLL)
193 /* We are calling GLFW as a Win32 DLL */
194 #define GLFWAPI __declspec(dllimport)
195#elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
196 /* We are building GLFW as a shared / dynamic library */
197 #define GLFWAPI __attribute__((visibility("default")))
198#else
199 /* We are building or calling GLFW as a static library */
200 #define GLFWAPI
201#endif
202
203
204/*************************************************************************
205 * GLFW API tokens
206 *************************************************************************/
207
215#define GLFW_VERSION_MAJOR 3
222#define GLFW_VERSION_MINOR 2
229#define GLFW_VERSION_REVISION 0
231
240#define GLFW_TRUE 1
247#define GLFW_FALSE 0
249
258#define GLFW_RELEASE 0
265#define GLFW_PRESS 1
272#define GLFW_REPEAT 2
274
297
298/* The unknown key */
299#define GLFW_KEY_UNKNOWN -1
300
301/* Printable keys */
302#define GLFW_KEY_SPACE 32
303#define GLFW_KEY_APOSTROPHE 39 /* ' */
304#define GLFW_KEY_COMMA 44 /* , */
305#define GLFW_KEY_MINUS 45 /* - */
306#define GLFW_KEY_PERIOD 46 /* . */
307#define GLFW_KEY_SLASH 47 /* / */
308#define GLFW_KEY_0 48
309#define GLFW_KEY_1 49
310#define GLFW_KEY_2 50
311#define GLFW_KEY_3 51
312#define GLFW_KEY_4 52
313#define GLFW_KEY_5 53
314#define GLFW_KEY_6 54
315#define GLFW_KEY_7 55
316#define GLFW_KEY_8 56
317#define GLFW_KEY_9 57
318#define GLFW_KEY_SEMICOLON 59 /* ; */
319#define GLFW_KEY_EQUAL 61 /* = */
320#define GLFW_KEY_A 65
321#define GLFW_KEY_B 66
322#define GLFW_KEY_C 67
323#define GLFW_KEY_D 68
324#define GLFW_KEY_E 69
325#define GLFW_KEY_F 70
326#define GLFW_KEY_G 71
327#define GLFW_KEY_H 72
328#define GLFW_KEY_I 73
329#define GLFW_KEY_J 74
330#define GLFW_KEY_K 75
331#define GLFW_KEY_L 76
332#define GLFW_KEY_M 77
333#define GLFW_KEY_N 78
334#define GLFW_KEY_O 79
335#define GLFW_KEY_P 80
336#define GLFW_KEY_Q 81
337#define GLFW_KEY_R 82
338#define GLFW_KEY_S 83
339#define GLFW_KEY_T 84
340#define GLFW_KEY_U 85
341#define GLFW_KEY_V 86
342#define GLFW_KEY_W 87
343#define GLFW_KEY_X 88
344#define GLFW_KEY_Y 89
345#define GLFW_KEY_Z 90
346#define GLFW_KEY_LEFT_BRACKET 91 /* [ */
347#define GLFW_KEY_BACKSLASH 92 /* \ */
348#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
349#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
350#define GLFW_KEY_WORLD_1 161 /* non-US #1 */
351#define GLFW_KEY_WORLD_2 162 /* non-US #2 */
352
353/* Function keys */
354#define GLFW_KEY_ESCAPE 256
355#define GLFW_KEY_ENTER 257
356#define GLFW_KEY_TAB 258
357#define GLFW_KEY_BACKSPACE 259
358#define GLFW_KEY_INSERT 260
359#define GLFW_KEY_DELETE 261
360#define GLFW_KEY_RIGHT 262
361#define GLFW_KEY_LEFT 263
362#define GLFW_KEY_DOWN 264
363#define GLFW_KEY_UP 265
364#define GLFW_KEY_PAGE_UP 266
365#define GLFW_KEY_PAGE_DOWN 267
366#define GLFW_KEY_HOME 268
367#define GLFW_KEY_END 269
368#define GLFW_KEY_CAPS_LOCK 280
369#define GLFW_KEY_SCROLL_LOCK 281
370#define GLFW_KEY_NUM_LOCK 282
371#define GLFW_KEY_PRINT_SCREEN 283
372#define GLFW_KEY_PAUSE 284
373#define GLFW_KEY_F1 290
374#define GLFW_KEY_F2 291
375#define GLFW_KEY_F3 292
376#define GLFW_KEY_F4 293
377#define GLFW_KEY_F5 294
378#define GLFW_KEY_F6 295
379#define GLFW_KEY_F7 296
380#define GLFW_KEY_F8 297
381#define GLFW_KEY_F9 298
382#define GLFW_KEY_F10 299
383#define GLFW_KEY_F11 300
384#define GLFW_KEY_F12 301
385#define GLFW_KEY_F13 302
386#define GLFW_KEY_F14 303
387#define GLFW_KEY_F15 304
388#define GLFW_KEY_F16 305
389#define GLFW_KEY_F17 306
390#define GLFW_KEY_F18 307
391#define GLFW_KEY_F19 308
392#define GLFW_KEY_F20 309
393#define GLFW_KEY_F21 310
394#define GLFW_KEY_F22 311
395#define GLFW_KEY_F23 312
396#define GLFW_KEY_F24 313
397#define GLFW_KEY_F25 314
398#define GLFW_KEY_KP_0 320
399#define GLFW_KEY_KP_1 321
400#define GLFW_KEY_KP_2 322
401#define GLFW_KEY_KP_3 323
402#define GLFW_KEY_KP_4 324
403#define GLFW_KEY_KP_5 325
404#define GLFW_KEY_KP_6 326
405#define GLFW_KEY_KP_7 327
406#define GLFW_KEY_KP_8 328
407#define GLFW_KEY_KP_9 329
408#define GLFW_KEY_KP_DECIMAL 330
409#define GLFW_KEY_KP_DIVIDE 331
410#define GLFW_KEY_KP_MULTIPLY 332
411#define GLFW_KEY_KP_SUBTRACT 333
412#define GLFW_KEY_KP_ADD 334
413#define GLFW_KEY_KP_ENTER 335
414#define GLFW_KEY_KP_EQUAL 336
415#define GLFW_KEY_LEFT_SHIFT 340
416#define GLFW_KEY_LEFT_CONTROL 341
417#define GLFW_KEY_LEFT_ALT 342
418#define GLFW_KEY_LEFT_SUPER 343
419#define GLFW_KEY_RIGHT_SHIFT 344
420#define GLFW_KEY_RIGHT_CONTROL 345
421#define GLFW_KEY_RIGHT_ALT 346
422#define GLFW_KEY_RIGHT_SUPER 347
423#define GLFW_KEY_MENU 348
424
425#define GLFW_KEY_LAST GLFW_KEY_MENU
426
428
435
438#define GLFW_MOD_SHIFT 0x0001
441#define GLFW_MOD_CONTROL 0x0002
444#define GLFW_MOD_ALT 0x0004
447#define GLFW_MOD_SUPER 0x0008
448
450
457#define GLFW_MOUSE_BUTTON_1 0
458#define GLFW_MOUSE_BUTTON_2 1
459#define GLFW_MOUSE_BUTTON_3 2
460#define GLFW_MOUSE_BUTTON_4 3
461#define GLFW_MOUSE_BUTTON_5 4
462#define GLFW_MOUSE_BUTTON_6 5
463#define GLFW_MOUSE_BUTTON_7 6
464#define GLFW_MOUSE_BUTTON_8 7
465#define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
466#define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
467#define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
468#define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
470
477#define GLFW_JOYSTICK_1 0
478#define GLFW_JOYSTICK_2 1
479#define GLFW_JOYSTICK_3 2
480#define GLFW_JOYSTICK_4 3
481#define GLFW_JOYSTICK_5 4
482#define GLFW_JOYSTICK_6 5
483#define GLFW_JOYSTICK_7 6
484#define GLFW_JOYSTICK_8 7
485#define GLFW_JOYSTICK_9 8
486#define GLFW_JOYSTICK_10 9
487#define GLFW_JOYSTICK_11 10
488#define GLFW_JOYSTICK_12 11
489#define GLFW_JOYSTICK_13 12
490#define GLFW_JOYSTICK_14 13
491#define GLFW_JOYSTICK_15 14
492#define GLFW_JOYSTICK_16 15
493#define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
495
510#define GLFW_NOT_INITIALIZED 0x00010001
520#define GLFW_NO_CURRENT_CONTEXT 0x00010002
529#define GLFW_INVALID_ENUM 0x00010003
540#define GLFW_INVALID_VALUE 0x00010004
548#define GLFW_OUT_OF_MEMORY 0x00010005
564#define GLFW_API_UNAVAILABLE 0x00010006
581#define GLFW_VERSION_UNAVAILABLE 0x00010007
592#define GLFW_PLATFORM_ERROR 0x00010008
611#define GLFW_FORMAT_UNAVAILABLE 0x00010009
619#define GLFW_NO_WINDOW_CONTEXT 0x0001000A
621
622#define GLFW_FOCUSED 0x00020001
623#define GLFW_ICONIFIED 0x00020002
624#define GLFW_RESIZABLE 0x00020003
625#define GLFW_VISIBLE 0x00020004
626#define GLFW_DECORATED 0x00020005
627#define GLFW_AUTO_ICONIFY 0x00020006
628#define GLFW_FLOATING 0x00020007
629#define GLFW_MAXIMIZED 0x00020008
630
631#define GLFW_RED_BITS 0x00021001
632#define GLFW_GREEN_BITS 0x00021002
633#define GLFW_BLUE_BITS 0x00021003
634#define GLFW_ALPHA_BITS 0x00021004
635#define GLFW_DEPTH_BITS 0x00021005
636#define GLFW_STENCIL_BITS 0x00021006
637#define GLFW_ACCUM_RED_BITS 0x00021007
638#define GLFW_ACCUM_GREEN_BITS 0x00021008
639#define GLFW_ACCUM_BLUE_BITS 0x00021009
640#define GLFW_ACCUM_ALPHA_BITS 0x0002100A
641#define GLFW_AUX_BUFFERS 0x0002100B
642#define GLFW_STEREO 0x0002100C
643#define GLFW_SAMPLES 0x0002100D
644#define GLFW_SRGB_CAPABLE 0x0002100E
645#define GLFW_REFRESH_RATE 0x0002100F
646#define GLFW_DOUBLEBUFFER 0x00021010
647
648#define GLFW_CLIENT_API 0x00022001
649#define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
650#define GLFW_CONTEXT_VERSION_MINOR 0x00022003
651#define GLFW_CONTEXT_REVISION 0x00022004
652#define GLFW_CONTEXT_ROBUSTNESS 0x00022005
653#define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
654#define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
655#define GLFW_OPENGL_PROFILE 0x00022008
656#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
657#define GLFW_CONTEXT_NO_ERROR 0x0002200A
658
659#define GLFW_NO_API 0
660#define GLFW_OPENGL_API 0x00030001
661#define GLFW_OPENGL_ES_API 0x00030002
662
663#define GLFW_NO_ROBUSTNESS 0
664#define GLFW_NO_RESET_NOTIFICATION 0x00031001
665#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
666
667#define GLFW_OPENGL_ANY_PROFILE 0
668#define GLFW_OPENGL_CORE_PROFILE 0x00032001
669#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
670
671#define GLFW_CURSOR 0x00033001
672#define GLFW_STICKY_KEYS 0x00033002
673#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
674
675#define GLFW_CURSOR_NORMAL 0x00034001
676#define GLFW_CURSOR_HIDDEN 0x00034002
677#define GLFW_CURSOR_DISABLED 0x00034003
678
679#define GLFW_ANY_RELEASE_BEHAVIOR 0
680#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
681#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
682
689
694#define GLFW_ARROW_CURSOR 0x00036001
699#define GLFW_IBEAM_CURSOR 0x00036002
704#define GLFW_CROSSHAIR_CURSOR 0x00036003
709#define GLFW_HAND_CURSOR 0x00036004
714#define GLFW_HRESIZE_CURSOR 0x00036005
719#define GLFW_VRESIZE_CURSOR 0x00036006
721
722#define GLFW_CONNECTED 0x00040001
723#define GLFW_DISCONNECTED 0x00040002
724
725#define GLFW_DONT_CARE -1
726
727
728/*************************************************************************
729 * GLFW API types
730 *************************************************************************/
731
744typedef void (*GLFWglproc)(void);
745
758typedef void (*GLFWvkproc)(void);
759
771
782typedef struct GLFWwindow GLFWwindow;
783
794typedef struct GLFWcursor GLFWcursor;
795
810typedef void (* GLFWerrorfun)(int,const char*);
811
829typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int);
830
847typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int);
848
864
880
896typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int);
897
914typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int);
915
932typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int);
933
953typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int);
954
972typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double);
973
989typedef void (* GLFWcursorenterfun)(GLFWwindow*,int);
990
1006typedef void (* GLFWscrollfun)(GLFWwindow*,double,double);
1007
1027typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int);
1028
1044typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int);
1045
1065typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int);
1066
1082typedef void (* GLFWdropfun)(GLFWwindow*,int,const char**);
1083
1098typedef void (* GLFWmonitorfun)(GLFWmonitor*,int);
1099
1115typedef void (* GLFWjoystickfun)(int,int);
1116
1150
1162typedef struct GLFWgammaramp
1163{
1166 unsigned short* red;
1169 unsigned short* green;
1172 unsigned short* blue;
1175 unsigned int size;
1177
1185typedef struct GLFWimage
1186{
1195 unsigned char* pixels;
1196} GLFWimage;
1197
1198
1199/*************************************************************************
1200 * GLFW API functions
1201 *************************************************************************/
1202
1235GLFWAPI int glfwInit(void);
1236
1267GLFWAPI void glfwTerminate(void);
1268
1294GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
1295
1325GLFWAPI const char* glfwGetVersionString(void);
1326
1360
1388GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
1389
1413
1437GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
1438
1471GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
1472
1497GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
1498
1521
1553GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
1554
1582
1603GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
1604
1630
1659GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
1660
1677GLFWAPI void glfwDefaultWindowHints(void);
1678
1705GLFWAPI void glfwWindowHint(int hint, int value);
1706
1823GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
1824
1852GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
1853
1873
1894GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
1895
1919GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
1920
1958GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
1959
1986GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
1987
2017GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
2018
2047GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
2048
2084GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
2085
2124GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
2125
2162GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
2163
2191GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
2192
2228GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
2229
2255GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
2256
2282GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
2283
2304GLFWAPI void glfwMaximizeWindow(GLFWwindow* window);
2305
2326GLFWAPI void glfwShowWindow(GLFWwindow* window);
2327
2348GLFWAPI void glfwHideWindow(GLFWwindow* window);
2349
2376GLFWAPI void glfwFocusWindow(GLFWwindow* window);
2377
2399
2446GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
2447
2479GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
2480
2502GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
2503
2524
2548
2573
2606
2635
2663
2686
2709
2743GLFWAPI void glfwPollEvents(void);
2744
2788GLFWAPI void glfwWaitEvents(void);
2789
2834GLFWAPI void glfwWaitEventsTimeout(double timeout);
2835
2857GLFWAPI void glfwPostEmptyEvent(void);
2858
2880GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
2881
2928GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
2929
2985GLFWAPI const char* glfwGetKeyName(int key, int scancode);
2986
3025GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
3026
3054GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
3055
3092GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
3093
3133GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
3134
3173GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
3174
3198GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
3199
3222GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
3223
3249GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
3250
3293
3331
3364
3394
3419
3443
3470
3498
3517GLFWAPI int glfwJoystickPresent(int joy);
3518
3549GLFWAPI const float* glfwGetJoystickAxes(int joy, int* count);
3550
3582GLFWAPI const unsigned char* glfwGetJoystickButtons(int joy, int* count);
3583
3614GLFWAPI const char* glfwGetJoystickName(int joy);
3615
3638
3662GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
3663
3692GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
3693
3718GLFWAPI double glfwGetTime(void);
3719
3744GLFWAPI void glfwSetTime(double time);
3745
3766GLFWAPI uint64_t glfwGetTimerValue(void);
3767
3786GLFWAPI uint64_t glfwGetTimerFrequency(void);
3787
3821
3842
3875GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
3876
3922GLFWAPI void glfwSwapInterval(int interval);
3923
3960GLFWAPI int glfwExtensionSupported(const char* extension);
3961
4002GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
4003
4028GLFWAPI int glfwVulkanSupported(void);
4029
4072GLFWAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
4073
4074#if defined(VK_VERSION_1_0)
4075
4115GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
4116
4148GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
4149
4198GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
4199
4200#endif /*VK_VERSION_1_0*/
4201
4202
4203/*************************************************************************
4204 * Global definition cleanup
4205 *************************************************************************/
4206
4207/* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
4208
4209#ifdef GLFW_WINGDIAPI_DEFINED
4210 #undef WINGDIAPI
4211 #undef GLFW_WINGDIAPI_DEFINED
4212#endif
4213
4214#ifdef GLFW_CALLBACK_DEFINED
4215 #undef CALLBACK
4216 #undef GLFW_CALLBACK_DEFINED
4217#endif
4218
4219/* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
4220
4221
4222#ifdef __cplusplus
4223}
4224#endif
4225
4226#endif /* _glfw3_h_ */
4227
GLFWAPI GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
GLFWAPI void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
void(* GLFWglproc)(void)
Client API function pointer type.
Definition glfw3.h:744
GLFWAPI int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
GLFWAPI GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
GLFWAPI void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
GLFWAPI void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun)
Sets the error callback.
void(* GLFWerrorfun)(int, const char *)
The function signature for error callbacks.
Definition glfw3.h:810
GLFWAPI int glfwInit(void)
Initializes the GLFW library.
GLFWAPI const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
GLFWAPI void glfwTerminate(void)
Terminates the GLFW library.
GLFWAPI double glfwGetTime(void)
Returns the value of the GLFW timer.
GLFWAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun cbfun)
Sets the joystick configuration callback.
void(* GLFWscrollfun)(GLFWwindow *, double, double)
The function signature for scroll callbacks.
Definition glfw3.h:1006
GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow *window, GLFWcharfun cbfun)
Sets the Unicode character callback.
void(* GLFWcursorposfun)(GLFWwindow *, double, double)
The function signature for cursor position callbacks.
Definition glfw3.h:972
GLFWAPI int glfwGetInputMode(GLFWwindow *window, int mode)
Returns the value of an input option for the specified window.
GLFWAPI const char * glfwGetJoystickName(int joy)
Returns the name of the specified joystick.
GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow *window, GLFWmousebuttonfun cbfun)
Sets the mouse button callback.
GLFWAPI const unsigned char * glfwGetJoystickButtons(int joy, int *count)
Returns the state of all buttons of the specified joystick.
GLFWAPI GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)
Creates a custom cursor.
GLFWAPI void glfwDestroyCursor(GLFWcursor *cursor)
Destroys a cursor.
GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun cbfun)
Sets the scroll callback.
void(* GLFWcharfun)(GLFWwindow *, unsigned int)
The function signature for Unicode character callbacks.
Definition glfw3.h:1044
GLFWAPI const char * glfwGetClipboardString(GLFWwindow *window)
Returns the contents of the clipboard as a string.
GLFWAPI int glfwGetMouseButton(GLFWwindow *window, int button)
Returns the last reported state of a mouse button for the specified window.
void(* GLFWcharmodsfun)(GLFWwindow *, unsigned int, int)
The function signature for Unicode character with modifiers callbacks.
Definition glfw3.h:1065
GLFWAPI void glfwSetClipboardString(GLFWwindow *window, const char *string)
Sets the clipboard to the specified string.
GLFWAPI int glfwGetKey(GLFWwindow *window, int key)
Returns the last reported state of a keyboard key for the specified window.
GLFWAPI int glfwJoystickPresent(int joy)
Returns whether the specified joystick is present.
GLFWAPI void glfwSetTime(double time)
Sets the GLFW timer.
void(* GLFWcursorenterfun)(GLFWwindow *, int)
The function signature for cursor enter/leave callbacks.
Definition glfw3.h:989
GLFWAPI const char * glfwGetKeyName(int key, int scancode)
Returns the localized name of the specified printable key.
GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun cbfun)
Sets the cursor position callback.
void(* GLFWkeyfun)(GLFWwindow *, int, int, int, int)
The function signature for keyboard key callbacks.
Definition glfw3.h:1027
GLFWAPI uint64_t glfwGetTimerValue(void)
Returns the current value of the raw timer.
GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun cbfun)
Sets the cursor enter/exit callback.
GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun cbfun)
Sets the key callback.
GLFWAPI uint64_t glfwGetTimerFrequency(void)
Returns the frequency, in Hz, of the raw timer.
GLFWAPI const float * glfwGetJoystickAxes(int joy, int *count)
Returns the values of all axes of the specified joystick.
GLFWAPI void glfwSetCursorPos(GLFWwindow *window, double xpos, double ypos)
Sets the position of the cursor, relative to the client area of the window.
GLFWAPI GLFWcursor * glfwCreateStandardCursor(int shape)
Creates a cursor with a standard shape.
void(* GLFWdropfun)(GLFWwindow *, int, const char **)
The function signature for file drop callbacks.
Definition glfw3.h:1082
void(* GLFWmousebuttonfun)(GLFWwindow *, int, int, int)
The function signature for mouse button callbacks.
Definition glfw3.h:953
GLFWAPI void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)
Retrieves the position of the cursor relative to the client area of the window.
GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun cbfun)
Sets the file drop callback.
GLFWAPI void glfwSetInputMode(GLFWwindow *window, int mode, int value)
Sets an input option for the specified window.
GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow *window, GLFWcharmodsfun cbfun)
Sets the Unicode character with modifiers callback.
GLFWAPI void glfwSetCursor(GLFWwindow *window, GLFWcursor *cursor)
Sets the cursor for the window.
void(* GLFWjoystickfun)(int, int)
The function signature for joystick configuration callbacks.
Definition glfw3.h:1115
GLFWAPI const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
GLFWAPI GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
GLFWAPI void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
GLFWAPI void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
GLFWAPI const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
GLFWAPI const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
GLFWAPI GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition glfw3.h:770
GLFWAPI void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
void(* GLFWmonitorfun)(GLFWmonitor *, int)
The function signature for monitor configuration callbacks.
Definition glfw3.h:1098
GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun)
Sets the monitor configuration callback.
GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
GLFWAPI const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
void(* GLFWvkproc)(void)
Vulkan API function pointer type.
Definition glfw3.h:758
GLFWAPI int glfwVulkanSupported(void)
Returns whether the Vulkan loader has been found.
GLFWAPI const char ** glfwGetRequiredInstanceExtensions(uint32_t *count)
Returns the Vulkan instance extensions required by GLFW.
GLFWAPI void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the client area of the specified window.
GLFWAPI void glfwWaitEventsTimeout(double timeout)
Waits with timeout until events are queued and processes them.
GLFWAPI void glfwFocusWindow(GLFWwindow *window)
Brings the specified window to front and sets input focus.
GLFWAPI void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the client area of the specified window.
GLFWAPI void glfwSetWindowMonitor(GLFWwindow *window, GLFWmonitor *monitor, int xpos, int ypos, int width, int height, int refreshRate)
Sets the mode, monitor, video mode and placement of a window.
GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun cbfun)
Sets the size callback for the specified window.
GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun cbfun)
Sets the iconify callback for the specified window.
GLFWAPI void glfwSetWindowIcon(GLFWwindow *window, int count, const GLFWimage *images)
Sets the icon for the specified window.
GLFWAPI int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.
GLFWAPI void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
GLFWAPI void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
GLFWAPI void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
struct GLFWwindow GLFWwindow
Opaque window object.
Definition glfw3.h:782
GLFWAPI void glfwMaximizeWindow(GLFWwindow *window)
Maximizes the specified window.
void(* GLFWframebuffersizefun)(GLFWwindow *, int, int)
The function signature for framebuffer resize callbacks.
Definition glfw3.h:932
GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun cbfun)
Sets the close callback for the specified window.
void(* GLFWwindowclosefun)(GLFWwindow *)
The function signature for window close callbacks.
Definition glfw3.h:863
GLFWAPI void glfwWindowHint(int hint, int value)
Sets the specified window hint to the desired value.
void(* GLFWwindowfocusfun)(GLFWwindow *, int)
The function signature for window focus/defocus callbacks.
Definition glfw3.h:896
GLFWAPI void glfwWaitEvents(void)
Waits until events are queued and processes them.
void(* GLFWwindowrefreshfun)(GLFWwindow *)
The function signature for window content refresh callbacks.
Definition glfw3.h:879
GLFWAPI void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
GLFWAPI void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the client area of the specified window.
GLFWAPI void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
GLFWAPI void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
GLFWAPI void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
GLFWAPI void glfwPollEvents(void)
Processes all pending events.
GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)
Sets the size limits of the specified window.
GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun cbfun)
Sets the refresh callback for the specified window.
GLFWAPI void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
GLFWAPI int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.
void(* GLFWwindowiconifyfun)(GLFWwindow *, int)
The function signature for window iconify/restore callbacks.
Definition glfw3.h:914
void(* GLFWwindowsizefun)(GLFWwindow *, int, int)
The function signature for window resize callbacks.
Definition glfw3.h:847
GLFWAPI GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
GLFWAPI void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun cbfun)
Sets the focus callback for the specified window.
GLFWAPI void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
GLFWAPI void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)
Sets the aspect ratio of the specified window.
GLFWAPI GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
GLFWAPI void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun cbfun)
Sets the framebuffer resize callback for the specified window.
GLFWAPI void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the client area of the specified window.
GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun cbfun)
Sets the position callback for the specified window.
GLFWAPI void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
GLFWAPI void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
void(* GLFWwindowposfun)(GLFWwindow *, int, int)
The function signature for window position callbacks.
Definition glfw3.h:829
Gamma ramp.
Definition glfw3.h:1163
unsigned short * red
Definition glfw3.h:1166
unsigned short * blue
Definition glfw3.h:1172
unsigned int size
Definition glfw3.h:1175
unsigned short * green
Definition glfw3.h:1169
Image data.
Definition glfw3.h:1186
int height
Definition glfw3.h:1192
unsigned char * pixels
Definition glfw3.h:1195
int width
Definition glfw3.h:1189
Video mode type.
Definition glfw3.h:1130
int greenBits
Definition glfw3.h:1142
int redBits
Definition glfw3.h:1139
int width
Definition glfw3.h:1133
int refreshRate
Definition glfw3.h:1148
int height
Definition glfw3.h:1136
int blueBits
Definition glfw3.h:1145
Untitled