95#if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
110#if defined(GLFW_INCLUDE_VULKAN)
111 #include <vulkan/vulkan.h>
121#if !defined(APIENTRY)
123 #define APIENTRY __stdcall
127 #define GLFW_APIENTRY_DEFINED
132#if !defined(WINGDIAPI) && defined(_WIN32)
133 #define WINGDIAPI __declspec(dllimport)
134 #define GLFW_WINGDIAPI_DEFINED
139#if !defined(CALLBACK) && defined(_WIN32)
140 #define CALLBACK __stdcall
141 #define GLFW_CALLBACK_DEFINED
146#if defined(GLFW_INCLUDE_ES1)
149 #if defined(GLFW_INCLUDE_GLEXT)
150 #include <GLES/glext.h>
153#elif defined(GLFW_INCLUDE_ES2)
155 #include <GLES2/gl2.h>
156 #if defined(GLFW_INCLUDE_GLEXT)
157 #include <GLES2/gl2ext.h>
160#elif defined(GLFW_INCLUDE_ES3)
162 #include <GLES3/gl3.h>
163 #if defined(GLFW_INCLUDE_GLEXT)
164 #include <GLES2/gl2ext.h>
167#elif defined(GLFW_INCLUDE_ES31)
169 #include <GLES3/gl31.h>
170 #if defined(GLFW_INCLUDE_GLEXT)
171 #include <GLES2/gl2ext.h>
174#elif defined(GLFW_INCLUDE_ES32)
176 #include <GLES3/gl32.h>
177 #if defined(GLFW_INCLUDE_GLEXT)
178 #include <GLES2/gl2ext.h>
181#elif defined(GLFW_INCLUDE_GLCOREARB)
183 #if defined(__APPLE__)
185 #include <OpenGL/gl3.h>
186 #if defined(GLFW_INCLUDE_GLEXT)
187 #include <OpenGL/gl3ext.h>
192 #include <GL/glcorearb.h>
193 #if defined(GLFW_INCLUDE_GLEXT)
194 #include <GL/glext.h>
199#elif defined(GLFW_INCLUDE_GLU)
201 #if defined(__APPLE__)
203 #if defined(GLFW_INCLUDE_GLU)
204 #include <OpenGL/glu.h>
209 #if defined(GLFW_INCLUDE_GLU)
215#elif !defined(GLFW_INCLUDE_NONE) && \
216 !defined(__gl_h_) && \
217 !defined(__gles1_gl_h_) && \
218 !defined(__gles2_gl2_h_) && \
219 !defined(__gles2_gl3_h_) && \
220 !defined(__gles2_gl31_h_) && \
221 !defined(__gles2_gl32_h_) && \
222 !defined(__gl_glcorearb_h_) && \
223 !defined(__gl2_h_) && \
224 !defined(__gl3_h_) && \
225 !defined(__gl31_h_) && \
226 !defined(__gl32_h_) && \
227 !defined(__glcorearb_h_) && \
228 !defined(__GL_H__) && \
229 !defined(__gltypes_h_) && \
232 #if defined(__APPLE__)
234 #if !defined(GLFW_INCLUDE_GLEXT)
235 #define GL_GLEXT_LEGACY
237 #include <OpenGL/gl.h>
242 #if defined(GLFW_INCLUDE_GLEXT)
243 #include <GL/glext.h>
250#if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
255 #error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
261#if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
263 #define GLFWAPI __declspec(dllexport)
264#elif defined(_WIN32) && defined(GLFW_DLL)
266 #define GLFWAPI __declspec(dllimport)
267#elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
269 #define GLFWAPI __attribute__((visibility("default")))
287#define GLFW_VERSION_MAJOR 3
294#define GLFW_VERSION_MINOR 4
301#define GLFW_VERSION_REVISION 0
331#define GLFW_RELEASE 0
355#define GLFW_HAT_CENTERED 0
357#define GLFW_HAT_RIGHT 2
358#define GLFW_HAT_DOWN 4
359#define GLFW_HAT_LEFT 8
360#define GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP)
361#define GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)
362#define GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP)
363#define GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN)
367#define GLFW_KEY_UNKNOWN -1
396#define GLFW_KEY_SPACE 32
397#define GLFW_KEY_APOSTROPHE 39
398#define GLFW_KEY_COMMA 44
399#define GLFW_KEY_MINUS 45
400#define GLFW_KEY_PERIOD 46
401#define GLFW_KEY_SLASH 47
412#define GLFW_KEY_SEMICOLON 59
413#define GLFW_KEY_EQUAL 61
440#define GLFW_KEY_LEFT_BRACKET 91
441#define GLFW_KEY_BACKSLASH 92
442#define GLFW_KEY_RIGHT_BRACKET 93
443#define GLFW_KEY_GRAVE_ACCENT 96
444#define GLFW_KEY_WORLD_1 161
445#define GLFW_KEY_WORLD_2 162
448#define GLFW_KEY_ESCAPE 256
449#define GLFW_KEY_ENTER 257
450#define GLFW_KEY_TAB 258
451#define GLFW_KEY_BACKSPACE 259
452#define GLFW_KEY_INSERT 260
453#define GLFW_KEY_DELETE 261
454#define GLFW_KEY_RIGHT 262
455#define GLFW_KEY_LEFT 263
456#define GLFW_KEY_DOWN 264
457#define GLFW_KEY_UP 265
458#define GLFW_KEY_PAGE_UP 266
459#define GLFW_KEY_PAGE_DOWN 267
460#define GLFW_KEY_HOME 268
461#define GLFW_KEY_END 269
462#define GLFW_KEY_CAPS_LOCK 280
463#define GLFW_KEY_SCROLL_LOCK 281
464#define GLFW_KEY_NUM_LOCK 282
465#define GLFW_KEY_PRINT_SCREEN 283
466#define GLFW_KEY_PAUSE 284
467#define GLFW_KEY_F1 290
468#define GLFW_KEY_F2 291
469#define GLFW_KEY_F3 292
470#define GLFW_KEY_F4 293
471#define GLFW_KEY_F5 294
472#define GLFW_KEY_F6 295
473#define GLFW_KEY_F7 296
474#define GLFW_KEY_F8 297
475#define GLFW_KEY_F9 298
476#define GLFW_KEY_F10 299
477#define GLFW_KEY_F11 300
478#define GLFW_KEY_F12 301
479#define GLFW_KEY_F13 302
480#define GLFW_KEY_F14 303
481#define GLFW_KEY_F15 304
482#define GLFW_KEY_F16 305
483#define GLFW_KEY_F17 306
484#define GLFW_KEY_F18 307
485#define GLFW_KEY_F19 308
486#define GLFW_KEY_F20 309
487#define GLFW_KEY_F21 310
488#define GLFW_KEY_F22 311
489#define GLFW_KEY_F23 312
490#define GLFW_KEY_F24 313
491#define GLFW_KEY_F25 314
492#define GLFW_KEY_KP_0 320
493#define GLFW_KEY_KP_1 321
494#define GLFW_KEY_KP_2 322
495#define GLFW_KEY_KP_3 323
496#define GLFW_KEY_KP_4 324
497#define GLFW_KEY_KP_5 325
498#define GLFW_KEY_KP_6 326
499#define GLFW_KEY_KP_7 327
500#define GLFW_KEY_KP_8 328
501#define GLFW_KEY_KP_9 329
502#define GLFW_KEY_KP_DECIMAL 330
503#define GLFW_KEY_KP_DIVIDE 331
504#define GLFW_KEY_KP_MULTIPLY 332
505#define GLFW_KEY_KP_SUBTRACT 333
506#define GLFW_KEY_KP_ADD 334
507#define GLFW_KEY_KP_ENTER 335
508#define GLFW_KEY_KP_EQUAL 336
509#define GLFW_KEY_LEFT_SHIFT 340
510#define GLFW_KEY_LEFT_CONTROL 341
511#define GLFW_KEY_LEFT_ALT 342
512#define GLFW_KEY_LEFT_SUPER 343
513#define GLFW_KEY_RIGHT_SHIFT 344
514#define GLFW_KEY_RIGHT_CONTROL 345
515#define GLFW_KEY_RIGHT_ALT 346
516#define GLFW_KEY_RIGHT_SUPER 347
517#define GLFW_KEY_MENU 348
519#define GLFW_KEY_LAST GLFW_KEY_MENU
535#define GLFW_MOD_SHIFT 0x0001
540#define GLFW_MOD_CONTROL 0x0002
545#define GLFW_MOD_ALT 0x0004
550#define GLFW_MOD_SUPER 0x0008
556#define GLFW_MOD_CAPS_LOCK 0x0010
562#define GLFW_MOD_NUM_LOCK 0x0020
573#define GLFW_MOUSE_BUTTON_1 0
574#define GLFW_MOUSE_BUTTON_2 1
575#define GLFW_MOUSE_BUTTON_3 2
576#define GLFW_MOUSE_BUTTON_4 3
577#define GLFW_MOUSE_BUTTON_5 4
578#define GLFW_MOUSE_BUTTON_6 5
579#define GLFW_MOUSE_BUTTON_7 6
580#define GLFW_MOUSE_BUTTON_8 7
581#define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
582#define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
583#define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
584#define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
594#define GLFW_JOYSTICK_1 0
595#define GLFW_JOYSTICK_2 1
596#define GLFW_JOYSTICK_3 2
597#define GLFW_JOYSTICK_4 3
598#define GLFW_JOYSTICK_5 4
599#define GLFW_JOYSTICK_6 5
600#define GLFW_JOYSTICK_7 6
601#define GLFW_JOYSTICK_8 7
602#define GLFW_JOYSTICK_9 8
603#define GLFW_JOYSTICK_10 9
604#define GLFW_JOYSTICK_11 10
605#define GLFW_JOYSTICK_12 11
606#define GLFW_JOYSTICK_13 12
607#define GLFW_JOYSTICK_14 13
608#define GLFW_JOYSTICK_15 14
609#define GLFW_JOYSTICK_16 15
610#define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
620#define GLFW_GAMEPAD_BUTTON_A 0
621#define GLFW_GAMEPAD_BUTTON_B 1
622#define GLFW_GAMEPAD_BUTTON_X 2
623#define GLFW_GAMEPAD_BUTTON_Y 3
624#define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4
625#define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5
626#define GLFW_GAMEPAD_BUTTON_BACK 6
627#define GLFW_GAMEPAD_BUTTON_START 7
628#define GLFW_GAMEPAD_BUTTON_GUIDE 8
629#define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9
630#define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10
631#define GLFW_GAMEPAD_BUTTON_DPAD_UP 11
632#define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12
633#define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13
634#define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14
635#define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT
637#define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A
638#define GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B
639#define GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X
640#define GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y
650#define GLFW_GAMEPAD_AXIS_LEFT_X 0
651#define GLFW_GAMEPAD_AXIS_LEFT_Y 1
652#define GLFW_GAMEPAD_AXIS_RIGHT_X 2
653#define GLFW_GAMEPAD_AXIS_RIGHT_Y 3
654#define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4
655#define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5
656#define GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
672#define GLFW_NO_ERROR 0
681#define GLFW_NOT_INITIALIZED 0x00010001
691#define GLFW_NO_CURRENT_CONTEXT 0x00010002
699#define GLFW_INVALID_ENUM 0x00010003
710#define GLFW_INVALID_VALUE 0x00010004
718#define GLFW_OUT_OF_MEMORY 0x00010005
734#define GLFW_API_UNAVAILABLE 0x00010006
751#define GLFW_VERSION_UNAVAILABLE 0x00010007
762#define GLFW_PLATFORM_ERROR 0x00010008
781#define GLFW_FORMAT_UNAVAILABLE 0x00010009
789#define GLFW_NO_WINDOW_CONTEXT 0x0001000A
800#define GLFW_CURSOR_UNAVAILABLE 0x0001000B
814#define GLFW_FEATURE_UNAVAILABLE 0x0001000C
827#define GLFW_FEATURE_UNIMPLEMENTED 0x0001000D
849#define GLFW_PLATFORM_UNAVAILABLE 0x0001000E
859#define GLFW_FOCUSED 0x00020001
864#define GLFW_ICONIFIED 0x00020002
870#define GLFW_RESIZABLE 0x00020003
876#define GLFW_VISIBLE 0x00020004
882#define GLFW_DECORATED 0x00020005
888#define GLFW_AUTO_ICONIFY 0x00020006
894#define GLFW_FLOATING 0x00020007
900#define GLFW_MAXIMIZED 0x00020008
905#define GLFW_CENTER_CURSOR 0x00020009
912#define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A
917#define GLFW_HOVERED 0x0002000B
923#define GLFW_FOCUS_ON_SHOW 0x0002000C
930#define GLFW_MOUSE_PASSTHROUGH 0x0002000D
936#define GLFW_POSITION_X 0x0002000E
942#define GLFW_POSITION_Y 0x0002000F
948#define GLFW_RED_BITS 0x00021001
953#define GLFW_GREEN_BITS 0x00021002
958#define GLFW_BLUE_BITS 0x00021003
963#define GLFW_ALPHA_BITS 0x00021004
968#define GLFW_DEPTH_BITS 0x00021005
973#define GLFW_STENCIL_BITS 0x00021006
978#define GLFW_ACCUM_RED_BITS 0x00021007
983#define GLFW_ACCUM_GREEN_BITS 0x00021008
988#define GLFW_ACCUM_BLUE_BITS 0x00021009
993#define GLFW_ACCUM_ALPHA_BITS 0x0002100A
998#define GLFW_AUX_BUFFERS 0x0002100B
1003#define GLFW_STEREO 0x0002100C
1008#define GLFW_SAMPLES 0x0002100D
1013#define GLFW_SRGB_CAPABLE 0x0002100E
1018#define GLFW_REFRESH_RATE 0x0002100F
1024#define GLFW_DOUBLEBUFFER 0x00021010
1031#define GLFW_CLIENT_API 0x00022001
1037#define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
1043#define GLFW_CONTEXT_VERSION_MINOR 0x00022003
1049#define GLFW_CONTEXT_REVISION 0x00022004
1055#define GLFW_CONTEXT_ROBUSTNESS 0x00022005
1061#define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
1067#define GLFW_CONTEXT_DEBUG 0x00022007
1072#define GLFW_OPENGL_DEBUG_CONTEXT GLFW_CONTEXT_DEBUG
1078#define GLFW_OPENGL_PROFILE 0x00022008
1084#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
1090#define GLFW_CONTEXT_NO_ERROR 0x0002200A
1096#define GLFW_CONTEXT_CREATION_API 0x0002200B
1100#define GLFW_SCALE_TO_MONITOR 0x0002200C
1104#define GLFW_SCALE_FRAMEBUFFER 0x0002200D
1111#define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001
1115#define GLFW_COCOA_FRAME_NAME 0x00023002
1119#define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003
1123#define GLFW_X11_CLASS_NAME 0x00024001
1127#define GLFW_X11_INSTANCE_NAME 0x00024002
1128#define GLFW_WIN32_KEYBOARD_MENU 0x00025001
1131#define GLFW_WIN32_SHOWDEFAULT 0x00025002
1137#define GLFW_WAYLAND_APP_ID 0x00026001
1140#define GLFW_NO_API 0
1141#define GLFW_OPENGL_API 0x00030001
1142#define GLFW_OPENGL_ES_API 0x00030002
1144#define GLFW_NO_ROBUSTNESS 0
1145#define GLFW_NO_RESET_NOTIFICATION 0x00031001
1146#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
1148#define GLFW_OPENGL_ANY_PROFILE 0
1149#define GLFW_OPENGL_CORE_PROFILE 0x00032001
1150#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
1152#define GLFW_CURSOR 0x00033001
1153#define GLFW_STICKY_KEYS 0x00033002
1154#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
1155#define GLFW_LOCK_KEY_MODS 0x00033004
1156#define GLFW_RAW_MOUSE_MOTION 0x00033005
1158#define GLFW_CURSOR_NORMAL 0x00034001
1159#define GLFW_CURSOR_HIDDEN 0x00034002
1160#define GLFW_CURSOR_DISABLED 0x00034003
1161#define GLFW_CURSOR_CAPTURED 0x00034004
1163#define GLFW_ANY_RELEASE_BEHAVIOR 0
1164#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
1165#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
1167#define GLFW_NATIVE_CONTEXT_API 0x00036001
1168#define GLFW_EGL_CONTEXT_API 0x00036002
1169#define GLFW_OSMESA_CONTEXT_API 0x00036003
1171#define GLFW_ANGLE_PLATFORM_TYPE_NONE 0x00037001
1172#define GLFW_ANGLE_PLATFORM_TYPE_OPENGL 0x00037002
1173#define GLFW_ANGLE_PLATFORM_TYPE_OPENGLES 0x00037003
1174#define GLFW_ANGLE_PLATFORM_TYPE_D3D9 0x00037004
1175#define GLFW_ANGLE_PLATFORM_TYPE_D3D11 0x00037005
1176#define GLFW_ANGLE_PLATFORM_TYPE_VULKAN 0x00037007
1177#define GLFW_ANGLE_PLATFORM_TYPE_METAL 0x00037008
1179#define GLFW_WAYLAND_PREFER_LIBDECOR 0x00038001
1180#define GLFW_WAYLAND_DISABLE_LIBDECOR 0x00038002
1182#define GLFW_ANY_POSITION 0x80000000
1197#define GLFW_ARROW_CURSOR 0x00036001
1202#define GLFW_IBEAM_CURSOR 0x00036002
1207#define GLFW_CROSSHAIR_CURSOR 0x00036003
1212#define GLFW_POINTING_HAND_CURSOR 0x00036004
1218#define GLFW_RESIZE_EW_CURSOR 0x00036005
1224#define GLFW_RESIZE_NS_CURSOR 0x00036006
1239#define GLFW_RESIZE_NWSE_CURSOR 0x00036007
1254#define GLFW_RESIZE_NESW_CURSOR 0x00036008
1260#define GLFW_RESIZE_ALL_CURSOR 0x00036009
1272#define GLFW_NOT_ALLOWED_CURSOR 0x0003600A
1277#define GLFW_HRESIZE_CURSOR GLFW_RESIZE_EW_CURSOR
1282#define GLFW_VRESIZE_CURSOR GLFW_RESIZE_NS_CURSOR
1287#define GLFW_HAND_CURSOR GLFW_POINTING_HAND_CURSOR
1290#define GLFW_CONNECTED 0x00040001
1291#define GLFW_DISCONNECTED 0x00040002
1299#define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001
1304#define GLFW_ANGLE_PLATFORM_TYPE 0x00050002
1309#define GLFW_PLATFORM 0x00050003
1314#define GLFW_COCOA_CHDIR_RESOURCES 0x00051001
1319#define GLFW_COCOA_MENUBAR 0x00051002
1324#define GLFW_X11_XCB_VULKAN_SURFACE 0x00052001
1329#define GLFW_WAYLAND_LIBDECOR 0x00053001
1338#define GLFW_ANY_PLATFORM 0x00060000
1339#define GLFW_PLATFORM_WIN32 0x00060001
1340#define GLFW_PLATFORM_COCOA 0x00060002
1341#define GLFW_PLATFORM_WAYLAND 0x00060003
1342#define GLFW_PLATFORM_X11 0x00060004
1343#define GLFW_PLATFORM_NULL 0x00060005
1346#define GLFW_DONT_CARE -1
1468typedef void* (* GLFWallocatefun)(
size_t size,
void* user);
1524typedef void* (* GLFWreallocatefun)(
void* block,
size_t size,
void* user);
2319#if defined(VK_VERSION_1_0)
2363GLFWAPI
void glfwInitVulkanLoader(PFN_vkGetInstanceProcAddr loader);
6362#if defined(VK_VERSION_1_0)
6403GLFWAPI
GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance,
const char* procname);
6440GLFWAPI
int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
6510GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance,
GLFWwindow* window,
const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
6521#ifdef GLFW_WINGDIAPI_DEFINED
6523 #undef GLFW_WINGDIAPI_DEFINED
6526#ifdef GLFW_CALLBACK_DEFINED
6528 #undef GLFW_CALLBACK_DEFINED
6535 #define GLAPIENTRY APIENTRY
6536 #define GLFW_GLAPIENTRY_DEFINED
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:1365
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 glfwInitAllocator(const GLFWallocator *allocator)
Sets the init allocator to the desired value.
struct GLFWallocator GLFWallocator
Custom heap memory allocator.
GLFWAPI void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
void *(* GLFWreallocatefun)(void *block, size_t size, void *user)
The function pointer type for memory reallocation callbacks.
Definition glfw3.h:1524
void *(* GLFWallocatefun)(size_t size, void *user)
The function pointer type for memory allocation callbacks.
Definition glfw3.h:1468
void(* GLFWdeallocatefun)(void *block, void *user)
The function pointer type for memory deallocation callbacks.
Definition glfw3.h:1566
GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)
Sets the error callback.
GLFWAPI int glfwPlatformSupported(int platform)
Returns whether the library includes support for the specified platform.
void(* GLFWerrorfun)(int error_code, const char *description)
The function pointer type for error callbacks.
Definition glfw3.h:1590
GLFWAPI int glfwInit(void)
Initializes the GLFW library.
GLFWAPI int glfwGetPlatform(void)
Returns the currently selected platform.
GLFWAPI void glfwInitHint(int hint, int value)
Sets the specified init hint to the desired value.
GLFWAPI const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
GLFWAPI int glfwGetError(const char **description)
Returns and clears the last error for the calling thread.
GLFWAPI void glfwTerminate(void)
Terminates the GLFW library.
GLFWAPI void * glfwGetMonitorUserPointer(GLFWmonitor *monitor)
Returns the user pointer of the specified monitor.
GLFWAPI const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
GLFWAPI void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)
Retrieves the content scale for 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 void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)
Retrieves the work area of the monitor.
GLFWAPI const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
GLFWAPI void glfwSetMonitorUserPointer(GLFWmonitor *monitor, void *pointer)
Sets the user pointer 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:1391
struct GLFWvidmode GLFWvidmode
Video mode type.
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)
Sets the monitor configuration callback.
void(* GLFWmonitorfun)(GLFWmonitor *monitor, int event)
The function pointer type for monitor configuration callbacks.
Definition glfw3.h:1990
GLFWAPI void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
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:1379
GLFWAPI int glfwVulkanSupported(void)
Returns whether the Vulkan loader and an ICD have 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 content 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 content 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 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.
void(* GLFWwindowmaximizefun)(GLFWwindow *window, int maximized)
The function pointer type for window maximize callbacks.
Definition glfw3.h:1738
void(* GLFWwindowiconifyfun)(GLFWwindow *window, int iconified)
The function pointer type for window iconify callbacks.
Definition glfw3.h:1717
GLFWAPI void glfwWindowHintString(int hint, const char *value)
Sets the specified window hint to the desired value.
struct GLFWwindow GLFWwindow
Opaque window object.
Definition glfw3.h:1403
GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun callback)
Sets the iconify callback for the specified window.
GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun callback)
Sets the framebuffer resize callback for the specified window.
void(* GLFWwindowrefreshfun)(GLFWwindow *window)
The function pointer type for window content refresh callbacks.
Definition glfw3.h:1675
GLFWAPI void glfwMaximizeWindow(GLFWwindow *window)
Maximizes the specified window.
GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun callback)
Sets the position callback for the specified window.
GLFWAPI void glfwSetWindowOpacity(GLFWwindow *window, float opacity)
Sets the opacity of the whole window.
GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun callback)
Sets the refresh callback for the specified window.
GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun callback)
Sets the close callback for the specified window.
GLFWAPI void glfwWindowHint(int hint, int value)
Sets the specified window hint to the desired value.
GLFWAPI void glfwWaitEvents(void)
Waits until events are queued and processes them.
GLFWAPI void glfwGetWindowContentScale(GLFWwindow *window, float *xscale, float *yscale)
Retrieves the content scale for the specified window.
void(* GLFWwindowcontentscalefun)(GLFWwindow *window, float xscale, float yscale)
The function pointer type for window content scale callbacks.
Definition glfw3.h:1780
GLFWAPI void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
struct GLFWimage GLFWimage
Image data.
GLFWAPI void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the content 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 const char * glfwGetWindowTitle(GLFWwindow *window)
Returns the title of 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.
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 GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun callback)
Sets the size callback for the specified window.
void(* GLFWwindowfocusfun)(GLFWwindow *window, int focused)
The function pointer type for window focus callbacks.
Definition glfw3.h:1696
void(* GLFWwindowposfun)(GLFWwindow *window, int xpos, int ypos)
The function pointer type for window position callbacks.
Definition glfw3.h:1613
void(* GLFWwindowclosefun)(GLFWwindow *window)
The function pointer type for window close callbacks.
Definition glfw3.h:1655
GLFWAPI GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow *window, GLFWwindowcontentscalefun callback)
Sets the window content scale callback for the specified window.
GLFWAPI void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun callback)
Sets the focus callback for the specified window.
GLFWAPI void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
GLFWAPI void glfwRequestWindowAttention(GLFWwindow *window)
Requests user attention to the specified window.
GLFWAPI float glfwGetWindowOpacity(GLFWwindow *window)
Returns the opacity of the whole window.
GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)
Sets the aspect ratio of the specified window.
GLFWAPI void glfwSetWindowAttrib(GLFWwindow *window, int attrib, int value)
Sets an attribute 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.
void(* GLFWframebuffersizefun)(GLFWwindow *window, int width, int height)
The function pointer type for framebuffer size callbacks.
Definition glfw3.h:1759
GLFWAPI void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the content area of the specified window.
GLFWAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow *window, GLFWwindowmaximizefun callback)
Sets the maximize callback for the specified window.
void(* GLFWwindowsizefun)(GLFWwindow *window, int width, int height)
The function pointer type for window size callbacks.
Definition glfw3.h:1635
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.
Custom heap memory allocator.
Definition glfw3.h:2138
GLFWallocatefun allocate
Definition glfw3.h:2142
GLFWdeallocatefun deallocate
Definition glfw3.h:2150
GLFWreallocatefun reallocate
Definition glfw3.h:2146
void * user
Definition glfw3.h:2154
Gamepad input state.
Definition glfw3.h:2114
unsigned char buttons[15]
Definition glfw3.h:2118
float axes[6]
Definition glfw3.h:2122
Gamma ramp.
Definition glfw3.h:2061
unsigned short * red
Definition glfw3.h:2064
unsigned short * blue
Definition glfw3.h:2070
unsigned int size
Definition glfw3.h:2073
unsigned short * green
Definition glfw3.h:2067
Image data.
Definition glfw3.h:2090
int height
Definition glfw3.h:2096
unsigned char * pixels
Definition glfw3.h:2099
int width
Definition glfw3.h:2093
Video mode type.
Definition glfw3.h:2027
int greenBits
Definition glfw3.h:2039
int redBits
Definition glfw3.h:2036
int width
Definition glfw3.h:2030
int refreshRate
Definition glfw3.h:2045
int height
Definition glfw3.h:2033
int blueBits
Definition glfw3.h:2042