30 #if defined(_GLFW_USE_CONFIG_H) 31 #include "glfw_config.h" 34 #if defined(GLFW_INCLUDE_GLCOREARB) || \ 35 defined(GLFW_INCLUDE_ES1) || \ 36 defined(GLFW_INCLUDE_ES2) || \ 37 defined(GLFW_INCLUDE_ES3) || \ 38 defined(GLFW_INCLUDE_ES31) || \ 39 defined(GLFW_INCLUDE_ES32) || \ 40 defined(GLFW_INCLUDE_NONE) || \ 41 defined(GLFW_INCLUDE_GLEXT) || \ 42 defined(GLFW_INCLUDE_GLU) || \ 43 defined(GLFW_INCLUDE_VULKAN) || \ 45 #error "You must not define any header option macros when compiling GLFW" 48 #define GLFW_INCLUDE_NONE 49 #include "../include/GLFW/glfw3.h" 51 #define _GLFW_INSERT_FIRST 0 52 #define _GLFW_INSERT_LAST 1 54 #define _GLFW_POLL_PRESENCE 0 55 #define _GLFW_POLL_AXES 1 56 #define _GLFW_POLL_BUTTONS 2 57 #define _GLFW_POLL_ALL (_GLFW_POLL_AXES | _GLFW_POLL_BUTTONS) 59 #define _GLFW_MESSAGE_SIZE 1024 62 typedef void (*GLFWproc)(void);
81 #define GL_VERSION 0x1f02 83 #define GL_COLOR_BUFFER_BIT 0x00004000 84 #define GL_UNSIGNED_BYTE 0x1401 85 #define GL_EXTENSIONS 0x1f03 86 #define GL_NUM_EXTENSIONS 0x821d 87 #define GL_CONTEXT_FLAGS 0x821e 88 #define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 89 #define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 90 #define GL_CONTEXT_PROFILE_MASK 0x9126 91 #define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 92 #define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 93 #define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 94 #define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 95 #define GL_NO_RESET_NOTIFICATION_ARB 0x8261 96 #define GL_CONTEXT_RELEASE_BEHAVIOR 0x82fb 97 #define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82fc 98 #define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR 0x00000008 101 typedef unsigned int GLuint;
102 typedef unsigned int GLenum;
103 typedef unsigned int GLbitfield;
104 typedef unsigned char GLubyte;
106 typedef void (APIENTRY * PFNGLCLEARPROC)(GLbitfield);
107 typedef const GLubyte* (APIENTRY * PFNGLGETSTRINGPROC)(GLenum);
108 typedef void (APIENTRY * PFNGLGETINTEGERVPROC)(GLenum,GLint*);
109 typedef const GLubyte* (APIENTRY * PFNGLGETSTRINGIPROC)(GLenum,GLuint);
111 #define EGL_SUCCESS 0x3000 112 #define EGL_NOT_INITIALIZED 0x3001 113 #define EGL_BAD_ACCESS 0x3002 114 #define EGL_BAD_ALLOC 0x3003 115 #define EGL_BAD_ATTRIBUTE 0x3004 116 #define EGL_BAD_CONFIG 0x3005 117 #define EGL_BAD_CONTEXT 0x3006 118 #define EGL_BAD_CURRENT_SURFACE 0x3007 119 #define EGL_BAD_DISPLAY 0x3008 120 #define EGL_BAD_MATCH 0x3009 121 #define EGL_BAD_NATIVE_PIXMAP 0x300a 122 #define EGL_BAD_NATIVE_WINDOW 0x300b 123 #define EGL_BAD_PARAMETER 0x300c 124 #define EGL_BAD_SURFACE 0x300d 125 #define EGL_CONTEXT_LOST 0x300e 126 #define EGL_COLOR_BUFFER_TYPE 0x303f 127 #define EGL_RGB_BUFFER 0x308e 128 #define EGL_SURFACE_TYPE 0x3033 129 #define EGL_WINDOW_BIT 0x0004 130 #define EGL_RENDERABLE_TYPE 0x3040 131 #define EGL_OPENGL_ES_BIT 0x0001 132 #define EGL_OPENGL_ES2_BIT 0x0004 133 #define EGL_OPENGL_BIT 0x0008 134 #define EGL_ALPHA_SIZE 0x3021 135 #define EGL_BLUE_SIZE 0x3022 136 #define EGL_GREEN_SIZE 0x3023 137 #define EGL_RED_SIZE 0x3024 138 #define EGL_DEPTH_SIZE 0x3025 139 #define EGL_STENCIL_SIZE 0x3026 140 #define EGL_SAMPLES 0x3031 141 #define EGL_OPENGL_ES_API 0x30a0 142 #define EGL_OPENGL_API 0x30a2 143 #define EGL_NONE 0x3038 144 #define EGL_RENDER_BUFFER 0x3086 145 #define EGL_SINGLE_BUFFER 0x3085 146 #define EGL_EXTENSIONS 0x3055 147 #define EGL_CONTEXT_CLIENT_VERSION 0x3098 148 #define EGL_NATIVE_VISUAL_ID 0x302e 149 #define EGL_NO_SURFACE ((EGLSurface) 0) 150 #define EGL_NO_DISPLAY ((EGLDisplay) 0) 151 #define EGL_NO_CONTEXT ((EGLContext) 0) 152 #define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType) 0) 154 #define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR 0x00000002 155 #define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR 0x00000001 156 #define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR 0x00000002 157 #define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR 0x00000001 158 #define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31bd 159 #define EGL_NO_RESET_NOTIFICATION_KHR 0x31be 160 #define EGL_LOSE_CONTEXT_ON_RESET_KHR 0x31bf 161 #define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR 0x00000004 162 #define EGL_CONTEXT_MAJOR_VERSION_KHR 0x3098 163 #define EGL_CONTEXT_MINOR_VERSION_KHR 0x30fb 164 #define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR 0x30fd 165 #define EGL_CONTEXT_FLAGS_KHR 0x30fc 166 #define EGL_CONTEXT_OPENGL_NO_ERROR_KHR 0x31b3 167 #define EGL_GL_COLORSPACE_KHR 0x309d 168 #define EGL_GL_COLORSPACE_SRGB_KHR 0x3089 169 #define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x2097 170 #define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR 0 171 #define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x2098 172 #define EGL_PLATFORM_X11_EXT 0x31d5 173 #define EGL_PLATFORM_WAYLAND_EXT 0x31d8 174 #define EGL_PRESENT_OPAQUE_EXT 0x31df 175 #define EGL_PLATFORM_ANGLE_ANGLE 0x3202 176 #define EGL_PLATFORM_ANGLE_TYPE_ANGLE 0x3203 177 #define EGL_PLATFORM_ANGLE_TYPE_OPENGL_ANGLE 0x320d 178 #define EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE 0x320e 179 #define EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE 0x3207 180 #define EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE 0x3208 181 #define EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE 0x3450 182 #define EGL_PLATFORM_ANGLE_TYPE_METAL_ANGLE 0x3489 183 #define EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE 0x348f 186 typedef unsigned int EGLBoolean;
187 typedef unsigned int EGLenum;
188 typedef void* EGLConfig;
189 typedef void* EGLContext;
190 typedef void* EGLDisplay;
191 typedef void* EGLSurface;
193 typedef void* EGLNativeDisplayType;
194 typedef void* EGLNativeWindowType;
197 typedef EGLBoolean (APIENTRY * PFN_eglGetConfigAttrib)(EGLDisplay,EGLConfig,EGLint,EGLint*);
198 typedef EGLBoolean (APIENTRY * PFN_eglGetConfigs)(EGLDisplay,EGLConfig*,EGLint,EGLint*);
199 typedef EGLDisplay (APIENTRY * PFN_eglGetDisplay)(EGLNativeDisplayType);
200 typedef EGLint (APIENTRY * PFN_eglGetError)(void);
201 typedef EGLBoolean (APIENTRY * PFN_eglInitialize)(EGLDisplay,EGLint*,EGLint*);
202 typedef EGLBoolean (APIENTRY * PFN_eglTerminate)(EGLDisplay);
203 typedef EGLBoolean (APIENTRY * PFN_eglBindAPI)(EGLenum);
204 typedef EGLContext (APIENTRY * PFN_eglCreateContext)(EGLDisplay,EGLConfig,EGLContext,
const EGLint*);
205 typedef EGLBoolean (APIENTRY * PFN_eglDestroySurface)(EGLDisplay,EGLSurface);
206 typedef EGLBoolean (APIENTRY * PFN_eglDestroyContext)(EGLDisplay,EGLContext);
207 typedef EGLSurface (APIENTRY * PFN_eglCreateWindowSurface)(EGLDisplay,EGLConfig,EGLNativeWindowType,
const EGLint*);
208 typedef EGLBoolean (APIENTRY * PFN_eglMakeCurrent)(EGLDisplay,EGLSurface,EGLSurface,EGLContext);
209 typedef EGLBoolean (APIENTRY * PFN_eglSwapBuffers)(EGLDisplay,EGLSurface);
210 typedef EGLBoolean (APIENTRY * PFN_eglSwapInterval)(EGLDisplay,EGLint);
211 typedef const char* (APIENTRY * PFN_eglQueryString)(EGLDisplay,EGLint);
212 typedef GLFWglproc (APIENTRY * PFN_eglGetProcAddress)(
const char*);
213 #define eglGetConfigAttrib _glfw.egl.GetConfigAttrib 214 #define eglGetConfigs _glfw.egl.GetConfigs 215 #define eglGetDisplay _glfw.egl.GetDisplay 216 #define eglGetError _glfw.egl.GetError 217 #define eglInitialize _glfw.egl.Initialize 218 #define eglTerminate _glfw.egl.Terminate 219 #define eglBindAPI _glfw.egl.BindAPI 220 #define eglCreateContext _glfw.egl.CreateContext 221 #define eglDestroySurface _glfw.egl.DestroySurface 222 #define eglDestroyContext _glfw.egl.DestroyContext 223 #define eglCreateWindowSurface _glfw.egl.CreateWindowSurface 224 #define eglMakeCurrent _glfw.egl.MakeCurrent 225 #define eglSwapBuffers _glfw.egl.SwapBuffers 226 #define eglSwapInterval _glfw.egl.SwapInterval 227 #define eglQueryString _glfw.egl.QueryString 228 #define eglGetProcAddress _glfw.egl.GetProcAddress 230 typedef EGLDisplay (APIENTRY * PFNEGLGETPLATFORMDISPLAYEXTPROC)(EGLenum,
void*,
const EGLint*);
231 typedef EGLSurface (APIENTRY * PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)(EGLDisplay,EGLConfig,
void*,
const EGLint*);
232 #define eglGetPlatformDisplayEXT _glfw.egl.GetPlatformDisplayEXT 233 #define eglCreatePlatformWindowSurfaceEXT _glfw.egl.CreatePlatformWindowSurfaceEXT 235 #define OSMESA_RGBA 0x1908 236 #define OSMESA_FORMAT 0x22 237 #define OSMESA_DEPTH_BITS 0x30 238 #define OSMESA_STENCIL_BITS 0x31 239 #define OSMESA_ACCUM_BITS 0x32 240 #define OSMESA_PROFILE 0x33 241 #define OSMESA_CORE_PROFILE 0x34 242 #define OSMESA_COMPAT_PROFILE 0x35 243 #define OSMESA_CONTEXT_MAJOR_VERSION 0x36 244 #define OSMESA_CONTEXT_MINOR_VERSION 0x37 246 typedef void* OSMesaContext;
247 typedef void (*OSMESAproc)(void);
249 typedef OSMesaContext (GLAPIENTRY * PFN_OSMesaCreateContextExt)(GLenum,GLint,GLint,GLint,OSMesaContext);
250 typedef OSMesaContext (GLAPIENTRY * PFN_OSMesaCreateContextAttribs)(
const int*,OSMesaContext);
251 typedef void (GLAPIENTRY * PFN_OSMesaDestroyContext)(OSMesaContext);
252 typedef int (GLAPIENTRY * PFN_OSMesaMakeCurrent)(OSMesaContext,
void*,int,int,int);
253 typedef int (GLAPIENTRY * PFN_OSMesaGetColorBuffer)(OSMesaContext,
int*,
int*,
int*,
void**);
254 typedef int (GLAPIENTRY * PFN_OSMesaGetDepthBuffer)(OSMesaContext,
int*,
int*,
int*,
void**);
255 typedef GLFWglproc (GLAPIENTRY * PFN_OSMesaGetProcAddress)(
const char*);
256 #define OSMesaCreateContextExt _glfw.osmesa.CreateContextExt 257 #define OSMesaCreateContextAttribs _glfw.osmesa.CreateContextAttribs 258 #define OSMesaDestroyContext _glfw.osmesa.DestroyContext 259 #define OSMesaMakeCurrent _glfw.osmesa.MakeCurrent 260 #define OSMesaGetColorBuffer _glfw.osmesa.GetColorBuffer 261 #define OSMesaGetDepthBuffer _glfw.osmesa.GetDepthBuffer 262 #define OSMesaGetProcAddress _glfw.osmesa.GetProcAddress 264 #define VK_NULL_HANDLE 0 266 typedef void* VkInstance;
267 typedef void* VkPhysicalDevice;
268 typedef uint64_t VkSurfaceKHR;
269 typedef uint32_t VkFlags;
270 typedef uint32_t VkBool32;
272 typedef enum VkStructureType
274 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
275 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
276 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
277 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
278 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
279 VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
280 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
283 typedef enum VkResult
291 VK_ERROR_OUT_OF_HOST_MEMORY = -1,
292 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
293 VK_ERROR_INITIALIZATION_FAILED = -3,
294 VK_ERROR_DEVICE_LOST = -4,
295 VK_ERROR_MEMORY_MAP_FAILED = -5,
296 VK_ERROR_LAYER_NOT_PRESENT = -6,
297 VK_ERROR_EXTENSION_NOT_PRESENT = -7,
298 VK_ERROR_FEATURE_NOT_PRESENT = -8,
299 VK_ERROR_INCOMPATIBLE_DRIVER = -9,
300 VK_ERROR_TOO_MANY_OBJECTS = -10,
301 VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
302 VK_ERROR_SURFACE_LOST_KHR = -1000000000,
303 VK_SUBOPTIMAL_KHR = 1000001003,
304 VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
305 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
306 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
307 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
308 VK_RESULT_MAX_ENUM = 0x7FFFFFFF
315 char extensionName[256];
316 uint32_t specVersion;
319 typedef void (APIENTRY * PFN_vkVoidFunction)(void);
321 typedef PFN_vkVoidFunction (APIENTRY * PFN_vkGetInstanceProcAddr)(VkInstance,
const char*);
322 typedef VkResult (APIENTRY * PFN_vkEnumerateInstanceExtensionProperties)(
const char*,uint32_t*,
VkExtensionProperties*);
323 #define vkGetInstanceProcAddr _glfw.vk.GetInstanceProcAddr 325 #include "platform.h" 327 #define GLFW_NATIVE_INCLUDE_NONE 328 #include "../include/GLFW/glfw3native.h" 331 #define _GLFW_REQUIRE_INIT() \ 332 if (!_glfw.initialized) \ 334 _glfwInputError(GLFW_NOT_INITIALIZED, NULL); \ 337 #define _GLFW_REQUIRE_INIT_OR_RETURN(x) \ 338 if (!_glfw.initialized) \ 340 _glfwInputError(GLFW_NOT_INITIALIZED, NULL); \ 345 #define _GLFW_SWAP(type, x, y) \ 359 char description[_GLFW_MESSAGE_SIZE];
371 PFN_vkGetInstanceProcAddr vulkanLoader;
377 GLFWbool xcbVulkanSurface;
401 GLFWbool autoIconify;
404 GLFWbool centerCursor;
405 GLFWbool focusOnShow;
406 GLFWbool mousePassthrough;
407 GLFWbool scaleToMonitor;
408 GLFWbool scaleFramebuffer;
414 char instanceName[256];
418 GLFWbool showDefault;
473 GLFWbool doublebuffer;
474 GLFWbool transparent;
484 int major, minor, revision;
485 GLFWbool forward, debug, noerror;
490 PFNGLGETSTRINGIPROC GetStringi;
491 PFNGLGETINTEGERVPROC GetIntegerv;
492 PFNGLGETSTRINGPROC GetString;
496 void (*swapInterval)(int);
497 int (*extensionSupported)(
const char*);
509 OSMesaContext handle;
516 GLFW_PLATFORM_CONTEXT_STATE
528 GLFWbool autoIconify;
530 GLFWbool focusOnShow;
531 GLFWbool mousePassthrough;
532 GLFWbool shouldClose;
534 GLFWbool doublebuffer;
540 int minwidth, minheight;
541 int maxwidth, maxheight;
545 GLFWbool stickyMouseButtons;
546 GLFWbool lockKeyMods;
548 char mouseButtons[GLFW_MOUSE_BUTTON_LAST + 1];
549 char keys[GLFW_KEY_LAST + 1];
551 double virtualCursorPosX, virtualCursorPosY;
552 GLFWbool rawMouseMotion;
577 GLFW_PLATFORM_WINDOW_STATE
588 int widthMM, heightMM;
601 GLFW_PLATFORM_MONITOR_STATE
610 GLFW_PLATFORM_CURSOR_STATE
641 unsigned char* buttons;
651 GLFW_PLATFORM_JOYSTICK_STATE
659 GLFW_PLATFORM_TLS_STATE
667 GLFW_PLATFORM_MUTEX_STATE
676 GLFWbool (*init)(void);
677 void (*terminate)(void);
679 void (*getCursorPos)(
_GLFWwindow*,
double*,
double*);
683 GLFWbool (*rawMouseMotionSupported)(void);
685 GLFWbool (*createStandardCursor)(
_GLFWcursor*,int);
688 const char* (*getScancodeName)(int);
689 int (*getKeyScancode)(int);
690 void (*setClipboardString)(
const char*);
691 const char* (*getClipboardString)(void);
692 GLFWbool (*initJoysticks)(void);
693 void (*terminateJoysticks)(void);
695 const char* (*getMappingName)(void);
696 void (*updateGamepadGUID)(
char*);
700 void (*getMonitorContentScale)(_GLFWmonitor*,
float*,
float*);
701 void (*getMonitorWorkarea)(_GLFWmonitor*,
int*,
int*,
int*,
int*);
703 GLFWbool (*getVideoMode)(_GLFWmonitor*,
GLFWvidmode*);
708 void (*destroyWindow)(_GLFWwindow*);
709 void (*setWindowTitle)(_GLFWwindow*,
const char*);
710 void (*setWindowIcon)(_GLFWwindow*,int,
const GLFWimage*);
711 void (*getWindowPos)(_GLFWwindow*,
int*,
int*);
712 void (*setWindowPos)(_GLFWwindow*,int,int);
713 void (*getWindowSize)(_GLFWwindow*,
int*,
int*);
714 void (*setWindowSize)(_GLFWwindow*,int,int);
715 void (*setWindowSizeLimits)(_GLFWwindow*,int,int,int,int);
716 void (*setWindowAspectRatio)(_GLFWwindow*,int,int);
717 void (*getFramebufferSize)(_GLFWwindow*,
int*,
int*);
718 void (*getWindowFrameSize)(_GLFWwindow*,
int*,
int*,
int*,
int*);
719 void (*getWindowContentScale)(_GLFWwindow*,
float*,
float*);
720 void (*iconifyWindow)(_GLFWwindow*);
721 void (*restoreWindow)(_GLFWwindow*);
722 void (*maximizeWindow)(_GLFWwindow*);
723 void (*showWindow)(_GLFWwindow*);
724 void (*hideWindow)(_GLFWwindow*);
725 void (*requestWindowAttention)(_GLFWwindow*);
726 void (*focusWindow)(_GLFWwindow*);
727 void (*setWindowMonitor)(_GLFWwindow*,_GLFWmonitor*,int,int,int,int,int);
728 GLFWbool (*windowFocused)(_GLFWwindow*);
729 GLFWbool (*windowIconified)(_GLFWwindow*);
730 GLFWbool (*windowVisible)(_GLFWwindow*);
731 GLFWbool (*windowMaximized)(_GLFWwindow*);
732 GLFWbool (*windowHovered)(_GLFWwindow*);
733 GLFWbool (*framebufferTransparent)(_GLFWwindow*);
734 float (*getWindowOpacity)(_GLFWwindow*);
735 void (*setWindowResizable)(_GLFWwindow*,GLFWbool);
736 void (*setWindowDecorated)(_GLFWwindow*,GLFWbool);
737 void (*setWindowFloating)(_GLFWwindow*,GLFWbool);
738 void (*setWindowOpacity)(_GLFWwindow*,float);
739 void (*setWindowMousePassthrough)(_GLFWwindow*,GLFWbool);
740 void (*pollEvents)(void);
741 void (*waitEvents)(void);
742 void (*waitEventsTimeout)(double);
743 void (*postEmptyEvent)(void);
745 EGLenum (*getEGLPlatform)(EGLint**);
746 EGLNativeDisplayType (*getEGLNativeDisplay)(void);
747 EGLNativeWindowType (*getEGLNativeWindow)(_GLFWwindow*);
749 void (*getRequiredInstanceExtensions)(
char**);
750 GLFWbool (*getPhysicalDevicePresentationSupport)(VkInstance,VkPhysicalDevice,uint32_t);
758 GLFWbool initialized;
778 GLFWbool joysticksInitialized;
790 GLFW_PLATFORM_LIBRARY_TIMER_STATE
799 GLFWbool KHR_create_context;
800 GLFWbool KHR_create_context_no_error;
801 GLFWbool KHR_gl_colorspace;
802 GLFWbool KHR_get_all_proc_addresses;
803 GLFWbool KHR_context_flush_control;
804 GLFWbool EXT_client_extensions;
805 GLFWbool EXT_platform_base;
806 GLFWbool EXT_platform_x11;
807 GLFWbool EXT_platform_wayland;
808 GLFWbool EXT_present_opaque;
809 GLFWbool ANGLE_platform_angle;
810 GLFWbool ANGLE_platform_angle_opengl;
811 GLFWbool ANGLE_platform_angle_d3d;
812 GLFWbool ANGLE_platform_angle_vulkan;
813 GLFWbool ANGLE_platform_angle_metal;
817 PFN_eglGetConfigAttrib GetConfigAttrib;
818 PFN_eglGetConfigs GetConfigs;
819 PFN_eglGetDisplay GetDisplay;
820 PFN_eglGetError GetError;
821 PFN_eglInitialize Initialize;
822 PFN_eglTerminate Terminate;
823 PFN_eglBindAPI BindAPI;
824 PFN_eglCreateContext CreateContext;
825 PFN_eglDestroySurface DestroySurface;
826 PFN_eglDestroyContext DestroyContext;
827 PFN_eglCreateWindowSurface CreateWindowSurface;
828 PFN_eglMakeCurrent MakeCurrent;
829 PFN_eglSwapBuffers SwapBuffers;
830 PFN_eglSwapInterval SwapInterval;
831 PFN_eglQueryString QueryString;
832 PFN_eglGetProcAddress GetProcAddress;
834 PFNEGLGETPLATFORMDISPLAYEXTPROC GetPlatformDisplayEXT;
835 PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC CreatePlatformWindowSurfaceEXT;
841 PFN_OSMesaCreateContextExt CreateContextExt;
842 PFN_OSMesaCreateContextAttribs CreateContextAttribs;
843 PFN_OSMesaDestroyContext DestroyContext;
844 PFN_OSMesaMakeCurrent MakeCurrent;
845 PFN_OSMesaGetColorBuffer GetColorBuffer;
846 PFN_OSMesaGetDepthBuffer GetDepthBuffer;
847 PFN_OSMesaGetProcAddress GetProcAddress;
855 PFN_vkGetInstanceProcAddr GetInstanceProcAddr;
856 GLFWbool KHR_surface;
857 GLFWbool KHR_win32_surface;
858 GLFWbool MVK_macos_surface;
859 GLFWbool EXT_metal_surface;
860 GLFWbool KHR_xlib_surface;
861 GLFWbool KHR_xcb_surface;
862 GLFWbool KHR_wayland_surface;
871 GLFW_PLATFORM_LIBRARY_WINDOW_STATE
872 GLFW_PLATFORM_LIBRARY_CONTEXT_STATE
873 GLFW_PLATFORM_LIBRARY_JOYSTICK_STATE
885 void _glfwPlatformInitTimer(
void);
886 uint64_t _glfwPlatformGetTimerValue(
void);
887 uint64_t _glfwPlatformGetTimerFrequency(
void);
889 GLFWbool _glfwPlatformCreateTls(
_GLFWtls* tls);
890 void _glfwPlatformDestroyTls(
_GLFWtls* tls);
891 void* _glfwPlatformGetTls(
_GLFWtls* tls);
892 void _glfwPlatformSetTls(
_GLFWtls* tls,
void* value);
894 GLFWbool _glfwPlatformCreateMutex(
_GLFWmutex* mutex);
895 void _glfwPlatformDestroyMutex(
_GLFWmutex* mutex);
896 void _glfwPlatformLockMutex(
_GLFWmutex* mutex);
897 void _glfwPlatformUnlockMutex(
_GLFWmutex* mutex);
899 void* _glfwPlatformLoadModule(
const char* path);
900 void _glfwPlatformFreeModule(
void*
module);
901 GLFWproc _glfwPlatformGetModuleSymbol(
void*
module,
const char* name);
908 void _glfwInputWindowFocus(
_GLFWwindow* window, GLFWbool focused);
909 void _glfwInputWindowPos(
_GLFWwindow* window,
int xpos,
int ypos);
910 void _glfwInputWindowSize(
_GLFWwindow* window,
int width,
int height);
911 void _glfwInputFramebufferSize(
_GLFWwindow* window,
int width,
int height);
912 void _glfwInputWindowContentScale(
_GLFWwindow* window,
913 float xscale,
float yscale);
914 void _glfwInputWindowIconify(
_GLFWwindow* window, GLFWbool iconified);
915 void _glfwInputWindowMaximize(
_GLFWwindow* window, GLFWbool maximized);
917 void _glfwInputWindowCloseRequest(
_GLFWwindow* window);
921 int key,
int scancode,
int action,
int mods);
923 uint32_t codepoint,
int mods, GLFWbool plain);
924 void _glfwInputScroll(
_GLFWwindow* window,
double xoffset,
double yoffset);
925 void _glfwInputMouseClick(
_GLFWwindow* window,
int button,
int action,
int mods);
926 void _glfwInputCursorPos(
_GLFWwindow* window,
double xpos,
double ypos);
927 void _glfwInputCursorEnter(
_GLFWwindow* window, GLFWbool entered);
928 void _glfwInputDrop(
_GLFWwindow* window,
int count,
const char** names);
930 void _glfwInputJoystickAxis(
_GLFWjoystick* js,
int axis,
float value);
931 void _glfwInputJoystickButton(
_GLFWjoystick* js,
int button,
char value);
932 void _glfwInputJoystickHat(
_GLFWjoystick* js,
int hat,
char value);
934 void _glfwInputMonitor(
_GLFWmonitor* monitor,
int action,
int placement);
937 #if defined(__GNUC__) 938 void _glfwInputError(
int code,
const char* format, ...)
939 __attribute__((format(printf, 2, 3)));
941 void _glfwInputError(
int code,
const char* format, ...);
949 GLFWbool _glfwSelectPlatform(
int platformID,
_GLFWplatform* platform);
951 GLFWbool _glfwStringInExtensionString(
const char*
string,
const char* extensions);
955 GLFWbool _glfwRefreshContextAttribs(
_GLFWwindow* window,
957 GLFWbool _glfwIsValidContextConfig(
const _GLFWctxconfig* ctxconfig);
962 _GLFWmonitor* _glfwAllocMonitor(
const char* name,
int widthMM,
int heightMM);
964 void _glfwAllocGammaArrays(
GLFWgammaramp* ramp,
unsigned int size);
966 void _glfwSplitBPP(
int bpp,
int* red,
int* green,
int* blue);
968 void _glfwInitGamepadMappings(
void);
975 void _glfwCenterCursorInContentArea(
_GLFWwindow* window);
977 GLFWbool _glfwInitEGL(
void);
978 void _glfwTerminateEGL(
void);
979 GLFWbool _glfwCreateContextEGL(
_GLFWwindow* window,
982 #if defined(_GLFW_X11) 986 Visual** visual,
int* depth);
989 GLFWbool _glfwInitOSMesa(
void);
990 void _glfwTerminateOSMesa(
void);
991 GLFWbool _glfwCreateContextOSMesa(
_GLFWwindow* window,
995 GLFWbool _glfwInitVulkan(
int mode);
996 void _glfwTerminateVulkan(
void);
997 const char* _glfwGetVulkanResultString(VkResult result);
999 size_t _glfwEncodeUTF8(
char* s, uint32_t codepoint);
1000 char** _glfwParseUriList(
char* text,
int* count);
1002 char* _glfw_strdup(
const char* source);
1003 int _glfw_min(
int a,
int b);
1004 int _glfw_max(
int a,
int b);
1006 void* _glfw_calloc(
size_t count,
size_t size);
1007 void* _glfw_realloc(
void* pointer,
size_t size);
1008 void _glfw_free(
void* pointer);
Definition: internal.h:756
void(* GLFWwindowsizefun)(GLFWwindow *window, int width, int height)
The function pointer type for window size callbacks.
Definition: glfw3.h:1266
Definition: internal.h:606
Definition: internal.h:625
Definition: internal.h:635
Definition: internal.h:390
Definition: internal.h:656
Definition: jar_mod.h:124
void(* GLFWwindowfocusfun)(GLFWwindow *window, int focused)
The function pointer type for window focus callbacks.
Definition: glfw3.h:1327
Definition: vulkan.h:2070
void(* GLFWwindowposfun)(GLFWwindow *window, int xpos, int ypos)
The function pointer type for window position callbacks.
Definition: glfw3.h:1244
Definition: internal.h:582
Definition: internal.h:664
Definition: internal.h:366
void(* GLFWwindowclosefun)(GLFWwindow *window)
The function pointer type for window close callbacks.
Definition: glfw3.h:1286
void(* GLFWwindowiconifyfun)(GLFWwindow *window, int iconified)
The function pointer type for window iconify callbacks.
Definition: glfw3.h:1348
void(* GLFWmonitorfun)(GLFWmonitor *monitor, int event)
The function pointer type for monitor configuration callbacks.
Definition: glfw3.h:1621
Definition: vulkan.h:2048
Custom heap memory allocator.
Definition: glfw3.h:2137
Definition: internal.h:355
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
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
void(* GLFWframebuffersizefun)(GLFWwindow *window, int width, int height)
The function pointer type for framebuffer size callbacks.
Definition: glfw3.h:1390
Image data.
Definition: glfw3.h:1720
Definition: internal.h:431
Definition: internal.h:521
Definition: internal.h:457
Definition: internal.h:480
void(* GLFWglproc)(void)
Client API function pointer type.
Definition: glfw3.h:1147
Definition: internal.h:615