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) 
 6362#if defined(VK_VERSION_1_0) 
 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 
void glfwMakeContextCurrent(GLFWwindow *window)
Makes the context of the specified window current for the calling thread.
GLFWglproc glfwGetProcAddress(const char *procname)
Returns the address of the specified function for the current context.
void(* GLFWglproc)(void)
Client API function pointer type.
Definition glfw3.h:1365
void glfwSwapInterval(int interval)
Sets the swap interval for the current context.
int glfwExtensionSupported(const char *extension)
Returns whether the specified extension is available.
GLFWwindow * glfwGetCurrentContext(void)
Returns the window whose context is current on the calling thread.
const char * glfwGetVersionString(void)
Returns a string describing the compile-time configuration.
void glfwInitHint(int hint, int value)
Sets the specified init hint to the desired value.
int glfwInit(void)
Initializes 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
int glfwGetPlatform(void)
Returns the currently selected platform.
void(* GLFWdeallocatefun)(void *block, void *user)
The function pointer type for memory deallocation callbacks.
Definition glfw3.h:1566
void glfwInitVulkanLoader(PFN_vkGetInstanceProcAddr loader)
Sets the desired Vulkan vkGetInstanceProcAddr function.
void(* GLFWerrorfun)(int error_code, const char *description)
The function pointer type for error callbacks.
Definition glfw3.h:1590
int glfwPlatformSupported(int platform)
Returns whether the library includes support for the specified platform.
int glfwGetError(const char **description)
Returns and clears the last error for the calling thread.
void glfwInitAllocator(const GLFWallocator *allocator)
Sets the init allocator to the desired value.
void glfwGetVersion(int *major, int *minor, int *rev)
Retrieves the version of the GLFW library.
void glfwTerminate(void)
Terminates the GLFW library.
GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)
Sets the error callback.
void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)
Returns the position of the monitor's viewport on the virtual screen.
void * glfwGetMonitorUserPointer(GLFWmonitor *monitor)
Returns the user pointer of the specified monitor.
void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)
Sets the current gamma ramp for the specified monitor.
void glfwSetGamma(GLFWmonitor *monitor, float gamma)
Generates a gamma ramp and sets it for the specified monitor.
void glfwSetMonitorUserPointer(GLFWmonitor *monitor, void *pointer)
Sets the user pointer of the specified monitor.
GLFWmonitor ** glfwGetMonitors(int *count)
Returns the currently connected monitors.
void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)
Retrieves the work area of the monitor.
const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)
Returns the current gamma ramp for the specified monitor.
const char * glfwGetMonitorName(GLFWmonitor *monitor)
Returns the name of the specified monitor.
void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)
Returns the physical size of the monitor.
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition glfw3.h:1391
void(* GLFWmonitorfun)(GLFWmonitor *monitor, int event)
The function pointer type for monitor configuration callbacks.
Definition glfw3.h:1990
GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)
Sets the monitor configuration callback.
const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)
Returns the current mode of the specified monitor.
GLFWmonitor * glfwGetPrimaryMonitor(void)
Returns the primary monitor.
const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)
Returns the available video modes for the specified monitor.
void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)
Retrieves the content scale for the specified monitor.
VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow *window, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface)
Creates a Vulkan surface for the specified window.
int glfwVulkanSupported(void)
Returns whether the Vulkan loader and an ICD have been found.
void(* GLFWvkproc)(void)
Vulkan API function pointer type.
Definition glfw3.h:1379
const char ** glfwGetRequiredInstanceExtensions(uint32_t *count)
Returns the Vulkan instance extensions required by GLFW.
GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char *procname)
Returns the address of the specified Vulkan instance function.
int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily)
Returns whether the specified queue family can present images.
GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun callback)
Sets the position callback for the specified window.
void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the framebuffer of the specified window.
void glfwSwapBuffers(GLFWwindow *window)
Swaps the front and back buffers of the specified window.
void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)
Retrieves the size of the frame of the window.
void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)
Sets the position of the content area of the specified window.
void glfwIconifyWindow(GLFWwindow *window)
Iconifies the specified window.
GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun callback)
Sets the refresh callback for the specified window.
int glfwWindowShouldClose(GLFWwindow *window)
Checks the close flag of the specified window.
void glfwRequestWindowAttention(GLFWwindow *window)
Requests user attention to the specified window.
void(* GLFWwindowmaximizefun)(GLFWwindow *window, int maximized)
The function pointer type for window maximize callbacks.
Definition glfw3.h:1738
GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)
Creates a window and its associated context.
void(* GLFWwindowiconifyfun)(GLFWwindow *window, int iconified)
The function pointer type for window iconify callbacks.
Definition glfw3.h:1717
void glfwSetWindowSize(GLFWwindow *window, int width, int height)
Sets the size of the content area of the specified window.
void glfwPollEvents(void)
Processes all pending events.
struct GLFWwindow GLFWwindow
Opaque window object.
Definition glfw3.h:1403
void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)
Sets the user pointer of the specified window.
void glfwMaximizeWindow(GLFWwindow *window)
Maximizes the specified window.
void(* GLFWwindowrefreshfun)(GLFWwindow *window)
The function pointer type for window content refresh callbacks.
Definition glfw3.h:1675
void glfwHideWindow(GLFWwindow *window)
Hides the specified window.
void glfwSetWindowShouldClose(GLFWwindow *window, int value)
Sets the close flag of the specified window.
GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)
Returns the monitor that the window uses for full screen mode.
void glfwRestoreWindow(GLFWwindow *window)
Restores the specified window.
void glfwWaitEvents(void)
Waits until events are queued and processes them.
void glfwSetWindowTitle(GLFWwindow *window, const char *title)
Sets the title of the specified window.
void glfwWaitEventsTimeout(double timeout)
Waits with timeout until events are queued and processes them.
void glfwShowWindow(GLFWwindow *window)
Makes the specified window visible.
void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)
Sets the aspect ratio of the specified window.
void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)
Retrieves the position of the content area of the specified window.
void(* GLFWwindowcontentscalefun)(GLFWwindow *window, float xscale, float yscale)
The function pointer type for window content scale callbacks.
Definition glfw3.h:1780
void glfwWindowHint(int hint, int value)
Sets the specified window hint to the desired value.
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.
void glfwFocusWindow(GLFWwindow *window)
Brings the specified window to front and sets input focus.
void glfwWindowHintString(int hint, const char *value)
Sets the specified window hint to the desired value.
void glfwDefaultWindowHints(void)
Resets all window hints to their default values.
GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun callback)
Sets the framebuffer resize callback for the specified window.
void glfwPostEmptyEvent(void)
Posts an empty event to the event queue.
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
GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun callback)
Sets the focus callback for the specified window.
void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)
Sets the size limits of the specified window.
void glfwSetWindowOpacity(GLFWwindow *window, float opacity)
Sets the opacity of the whole window.
const char * glfwGetWindowTitle(GLFWwindow *window)
Returns the title of the specified window.
GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun callback)
Sets the iconify callback for the specified window.
GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow *window, GLFWwindowmaximizefun callback)
Sets the maximize callback for the specified window.
int glfwGetWindowAttrib(GLFWwindow *window, int attrib)
Returns an attribute of the specified window.
void glfwDestroyWindow(GLFWwindow *window)
Destroys the specified window and its context.
void glfwSetWindowAttrib(GLFWwindow *window, int attrib, int value)
Sets an attribute of the specified window.
float glfwGetWindowOpacity(GLFWwindow *window)
Returns the opacity of the whole window.
GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun callback)
Sets the size callback for the specified window.
GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun callback)
Sets the close callback for the specified window.
void glfwSetWindowIcon(GLFWwindow *window, int count, const GLFWimage *images)
Sets the icon for the specified window.
void(* GLFWframebuffersizefun)(GLFWwindow *window, int width, int height)
The function pointer type for framebuffer size callbacks.
Definition glfw3.h:1759
void * glfwGetWindowUserPointer(GLFWwindow *window)
Returns the user pointer of the specified window.
void(* GLFWwindowsizefun)(GLFWwindow *window, int width, int height)
The function pointer type for window size callbacks.
Definition glfw3.h:1635
void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)
Retrieves the size of the content area of the specified window.
GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow *window, GLFWwindowcontentscalefun callback)
Sets the window content scale callback for the specified window.
void glfwGetWindowContentScale(GLFWwindow *window, float *xscale, float *yscale)
Retrieves the content scale for 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