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 345 #define GLFW_REPEAT 2 355 #define GLFW_HAT_CENTERED 0 356 #define GLFW_HAT_UP 1 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 402 #define GLFW_KEY_0 48 403 #define GLFW_KEY_1 49 404 #define GLFW_KEY_2 50 405 #define GLFW_KEY_3 51 406 #define GLFW_KEY_4 52 407 #define GLFW_KEY_5 53 408 #define GLFW_KEY_6 54 409 #define GLFW_KEY_7 55 410 #define GLFW_KEY_8 56 411 #define GLFW_KEY_9 57 412 #define GLFW_KEY_SEMICOLON 59 413 #define GLFW_KEY_EQUAL 61 414 #define GLFW_KEY_A 65 415 #define GLFW_KEY_B 66 416 #define GLFW_KEY_C 67 417 #define GLFW_KEY_D 68 418 #define GLFW_KEY_E 69 419 #define GLFW_KEY_F 70 420 #define GLFW_KEY_G 71 421 #define GLFW_KEY_H 72 422 #define GLFW_KEY_I 73 423 #define GLFW_KEY_J 74 424 #define GLFW_KEY_K 75 425 #define GLFW_KEY_L 76 426 #define GLFW_KEY_M 77 427 #define GLFW_KEY_N 78 428 #define GLFW_KEY_O 79 429 #define GLFW_KEY_P 80 430 #define GLFW_KEY_Q 81 431 #define GLFW_KEY_R 82 432 #define GLFW_KEY_S 83 433 #define GLFW_KEY_T 84 434 #define GLFW_KEY_U 85 435 #define GLFW_KEY_V 86 436 #define GLFW_KEY_W 87 437 #define GLFW_KEY_X 88 438 #define GLFW_KEY_Y 89 439 #define GLFW_KEY_Z 90 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 1468 typedef void* (* GLFWallocatefun)(
size_t size,
void* user);
1524 typedef void* (* GLFWreallocatefun)(
void* block,
size_t size,
void* user);
2064 unsigned short* red;
2067 unsigned short* green;
2070 unsigned short* blue;
2099 unsigned char* pixels;
2118 unsigned char buttons[15];
2319 #if defined(VK_VERSION_1_0) 2363 GLFWAPI
void glfwInitVulkanLoader(PFN_vkGetInstanceProcAddr loader);
6362 #if defined(VK_VERSION_1_0) 6403 GLFWAPI
GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance,
const char* procname);
6440 GLFWAPI
int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
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
Gamepad input state.
Definition: glfw3.h:1744
GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)
Sets the aspect ratio of the specified window.
Definition: window.c:679
int redBits
Definition: glfw3.h:1667
int height
Definition: glfw3.h:1664
GLFWAPI void glfwFocusWindow(GLFWwindow *window)
Brings the specified window to front and sets input focus.
Definition: window.c:855
void(* GLFWwindowsizefun)(GLFWwindow *window, int width, int height)
The function pointer type for window size callbacks.
Definition: glfw3.h:1266
GLFWAPI void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the content area of the specified window.
Definition: window.c:605
int blueBits
Definition: glfw3.h:1673
GLFWAPI void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
Definition: monitor.c:459
GLFWAPI int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.
Definition: window.c:865
GLFWAPI void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
Definition: window.c:530
GLFWAPI GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
Definition: monitor.c:304
GLFWAPI void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)
Retrieves the work area of the monitor.
Definition: monitor.c:341
GLFWAPI GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
Definition: context.c:748
GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun callback)
Sets the framebuffer resize callback for the specified window.
Definition: window.c:1117
GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)
Sets the size limits of the specified window.
Definition: window.c:634
GLFWAPI void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
Definition: window.c:842
GLFWAPI GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
Definition: monitor.c:316
int width
Definition: glfw3.h:1661
GLFWAPI void glfwSetWindowAttrib(GLFWwindow *window, int attrib, int value)
Sets an attribute of the specified window.
Definition: window.c:928
GLFWAPI int glfwVulkanSupported(void)
Returns whether the Vulkan loader and an ICD have been found.
Definition: vulkan.c:222
GLFWAPI GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
Definition: window.c:974
struct GLFWallocator GLFWallocator
Custom heap memory allocator.
GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun callback)
Sets the refresh callback for the specified window.
Definition: window.c:1073
struct GLFWimage GLFWimage
Image data.
GLFWAPI float glfwGetWindowOpacity(GLFWwindow *window)
Returns the opacity of the whole window.
Definition: window.c:757
GLFWAPI const char * glfwGetWindowTitle(GLFWwindow *window)
Returns the title of the specified window.
Definition: window.c:520
GLFWAPI int glfwGetPlatform(void)
Returns the currently selected platform.
Definition: platform.c:127
GLFWAPI void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
Definition: window.c:1167
GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun callback)
Sets the close callback for the specified window.
Definition: window.c:1062
void(* GLFWwindowfocusfun)(GLFWwindow *window, int focused)
The function pointer type for window focus callbacks.
Definition: glfw3.h:1327
int refreshRate
Definition: glfw3.h:1676
Definition: vulkan.h:2070
void(* GLFWerrorfun)(int error_code, const char *description)
The function pointer type for error callbacks.
Definition: glfw3.h:1221
GLFWAPI int glfwGetError(const char **description)
Returns and clears the last error for the calling thread.
Definition: init.c:499
GLFWallocatefun allocate
Definition: glfw3.h:2142
void(* GLFWwindowposfun)(GLFWwindow *window, int xpos, int ypos)
The function pointer type for window position callbacks.
Definition: glfw3.h:1244
GLFWAPI void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)
Retrieves the content scale for the specified monitor.
Definition: monitor.c:380
void(* GLFWvkproc)(void)
Vulkan API function pointer type.
Definition: glfw3.h:1161
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition: glfw3.h:1173
struct GLFWwindow GLFWwindow
Opaque window object.
Definition: glfw3.h:1185
int greenBits
Definition: glfw3.h:1670
GLFWAPI void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
Definition: window.c:1031
GLFWAPI int glfwInit(void)
Initializes the GLFW library.
Definition: init.c:386
GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)
Sets the error callback.
Definition: init.c:523
GLFWAPI void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
Definition: window.c:1022
GLFWAPI GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow *window, GLFWwindowcontentscalefun callback)
Sets the window content scale callback for the specified window.
Definition: window.c:1128
GLFWAPI GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
Definition: window.c:180
GLFWAPI void glfwInitAllocator(const GLFWallocator *allocator)
Sets the init allocator to the desired value.
Definition: init.c:471
GLFWAPI const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
Definition: monitor.c:446
GLFWAPI void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
Definition: context.c:665
GLFWAPI void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
Definition: window.c:785
void(* GLFWwindowclosefun)(GLFWwindow *window)
The function pointer type for window close callbacks.
Definition: glfw3.h:1286
GLFWAPI void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
Definition: init.c:489
GLFWAPI void glfwGetWindowContentScale(GLFWwindow *window, float *xscale, float *yscale)
Retrieves the content scale for the specified window.
Definition: window.c:742
GLFWAPI void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
Definition: window.c:256
GLFWAPI void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
Definition: context.c:648
GLFWAPI void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
Definition: context.c:616
struct GLFWgammaramp GLFWgammaramp
Gamma ramp.
GLFWAPI void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
Definition: window.c:722
GLFWAPI void glfwMaximizeWindow(GLFWwindow *window)
Maximizes the specified window.
Definition: window.c:803
GLFWAPI int glfwPlatformSupported(int platform)
Returns whether the library includes support for the specified platform.
Definition: platform.c:133
GLFWAPI GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow *window, GLFWwindowmaximizefun callback)
Sets the maximize callback for the specified window.
Definition: window.c:1106
void(* GLFWwindowiconifyfun)(GLFWwindow *window, int iconified)
The function pointer type for window iconify callbacks.
Definition: glfw3.h:1348
GLFWAPI const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
Definition: monitor.c:429
void * user
Definition: glfw3.h:2154
void(* GLFWmonitorfun)(GLFWmonitor *monitor, int event)
The function pointer type for monitor configuration callbacks.
Definition: glfw3.h:1621
GLFWAPI const char ** glfwGetRequiredInstanceExtensions(uint32_t *count)
Returns the Vulkan instance extensions required by GLFW.
Definition: vulkan.c:228
GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun callback)
Sets the size callback for the specified window.
Definition: window.c:1051
GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun callback)
Sets the position callback for the specified window.
Definition: window.c:1040
GLFWAPI void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the content area of the specified window.
Definition: window.c:619
GLFWAPI void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the content area of the specified window.
Definition: window.c:592
GLFWAPI void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
Definition: window.c:511
GLFWAPI void glfwWaitEvents(void)
Waits until events are queued and processes them.
Definition: window.c:1145
GLFWAPI GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
Definition: context.c:642
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.
Definition: window.c:983
GLFWAPI void glfwWaitEventsTimeout(double timeout)
Waits with timeout until events are queued and processes them.
Definition: window.c:1151
GLFWAPI void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
Definition: monitor.c:326
Custom heap memory allocator.
Definition: glfw3.h:2137
GLFWAPI void glfwSetWindowOpacity(GLFWwindow *window, float opacity)
Sets the opacity of the whole window.
Definition: window.c:766
void(* GLFWwindowcontentscalefun)(GLFWwindow *window, float xscale, float yscale)
The function pointer type for window content scale callbacks.
Definition: glfw3.h:1411
Gamma ramp.
Definition: glfw3.h:1691
Video mode type.
Definition: glfw3.h:1657
GLFWAPI void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the content area of the specified window.
Definition: window.c:578
GLFWAPI void glfwRequestWindowAttention(GLFWwindow *window)
Requests user attention to the specified window.
Definition: window.c:832
void *(* GLFWreallocatefun)(void *block, size_t size, void *user)
The function pointer type for memory reallocation callbacks.
Definition: glfw3.h:1524
void(* GLFWwindowrefreshfun)(GLFWwindow *window)
The function pointer type for window content refresh callbacks.
Definition: glfw3.h:1306
void(* GLFWwindowmaximizefun)(GLFWwindow *window, int maximized)
The function pointer type for window maximize callbacks.
Definition: glfw3.h:1369
GLFWAPI void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
Definition: window.c:468
GLFWAPI void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
Definition: window.c:708
GLFWAPI void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
Definition: window.c:816
GLFWAPI const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
Definition: monitor.c:506
GLFWAPI void glfwTerminate(void)
Terminates the GLFW library.
Definition: init.c:432
void(* GLFWframebuffersizefun)(GLFWwindow *window, int width, int height)
The function pointer type for framebuffer size callbacks.
Definition: glfw3.h:1390
void(* GLFWdeallocatefun)(void *block, void *user)
The function pointer type for memory deallocation callbacks.
Definition: glfw3.h:1566
GLFWAPI void glfwSetMonitorUserPointer(GLFWmonitor *monitor, void *pointer)
Sets the user pointer of the specified monitor.
Definition: monitor.c:404
GLFWdeallocatefun deallocate
Definition: glfw3.h:2150
GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
Definition: monitor.c:362
GLFWAPI void glfwPollEvents(void)
Processes all pending events.
Definition: window.c:1139
GLFWAPI int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
Definition: context.c:682
Image data.
Definition: glfw3.h:1720
GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun callback)
Sets the focus callback for the specified window.
Definition: window.c:1084
GLFWAPI const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
Definition: platform.c:160
struct GLFWvidmode GLFWvidmode
Video mode type.
GLFWAPI void * glfwGetMonitorUserPointer(GLFWmonitor *monitor)
Returns the user pointer of the specified monitor.
Definition: monitor.c:413
GLFWAPI void glfwWindowHintString(int hint, const char *value)
Sets the specified window hint to the desired value.
Definition: window.c:439
GLFWAPI void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
Definition: window.c:794
GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun callback)
Sets the iconify callback for the specified window.
Definition: window.c:1095
GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)
Sets the monitor configuration callback.
Definition: monitor.c:422
GLFWAPI void glfwWindowHint(int hint, int value)
Sets the specified window hint to the desired value.
Definition: window.c:295
GLFWAPI void glfwSetWindowIcon(GLFWwindow *window, int count, const GLFWimage *images)
Sets the icon for the specified window.
Definition: window.c:545
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:1147
void *(* GLFWallocatefun)(size_t size, void *user)
The function pointer type for memory allocation callbacks.
Definition: glfw3.h:1468
GLFWAPI void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
Definition: monitor.c:520
GLFWAPI const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
Definition: monitor.c:395
GLFWAPI int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.
Definition: window.c:502
GLFWreallocatefun reallocate
Definition: glfw3.h:2146
GLFWAPI void glfwInitHint(int hint, int value)
Sets the specified init hint to the desired value.
Definition: init.c:440