Expand description
§Glfw + Rust
This repo contains glfw-sys crate that provides FFI bindings to glfw. You are not really supposed to use this crate directly, but rather use glfw crate instead.
§Design
This library has two main purposes:
- provide FFI bindings to glfw: pre-generated (fast compile times) and build-time generation (slower).
- link to glfw library: system builds (using
pkg-config), source builds (usingcmake) and pre-built official glfw libs (only for windows and mac).
For normal applications, you only need to care about 2 features:
src-build- if you want to build from source. adds around 10 seconds of build time. It will also build from source if pkg-config fails (regardless of this feature).static-link- if you want to link statically. On linux, this requiressrc-buildtoo, so prefer dynamic linking during development for faster compile times.
§Features
§Building And Linking
NOTE: For emscripten, none of these features apply. We just pass the necessary flags like
-sUSE_GLFW=3to linker and simply let emscripten take care of things.
static-link- statically link glfw. If disabled, we will dynamically link glfw.
We try to build glfw in this order:
src-build- If enabled, build glfw from source (sources are included with crate). Ensurecmakeis installed and any other required dependencies.prebuilt-libs(only for windows/macos. ignored on other platforms) - If enabled, we download and link pre-built glfw libs from https://github.com/glfw/glfw/releases/.
NOTE: We use curl + tar (unzip on macos) to download and extract pre-built libs. mac/win10+ will have these by default.
Finally, if neither src-build nor prebuilt-libs feature is enabled, we will try to use pkg-config to find and link to system glfw libs.
§Platform Backends (non-mac and non-windows only)
x11andwayland- enables support for x11/wayland. Enable both and you can choose which one to use during initialization.x11/waylandare ignored on windows/macos platforms.
§Vulkan
vulkanenables some vulkan convenience functions (eg:glfwVulkanSupported).- Only enable this if you need vulkan support.
§Native Handles
These features expose native “HWND”/“NSWindow”/“X11Connection” etc.. handles.
Unless you are using wgpu-like libs that need raw-window-handles, these features can be ignored.
native-handles- enable APIs to get platform specific window handles or display connections or monitor ids. useful for raw-window-handle support.native-gl- enable APIs for getting platform specific gl contexts (wgl,egl,glx,nsgletc..). Most users should ignore this.native-egl- enable egl API even for x11 builds, if you plan to useeglcontexts with x11 windows. Most users should ignore this.
§Miscellaneous
osmesa- I have no idea. Ignore this unless you know what you are doing.bindgen- generate glfw FFI bindings at build time from headers. See Below
§Pre-Generated bindings
We generate FFI bindings at src/sys/pregenerated.rs and include them with the crate to keep the compile times fast. These are used when bindgen feature is disabled.
This contains core bindings, but skips platform specific bindings (eg: window handles or other platform specific API). Because generating them requires platform headers (eg: windows.h) and we can’t provide headers for all platforms at once.
So, platform specific bindings are manually maintained by hand in src/sys/manual.rs.
§Bindgen
When bindgen feature is turned on, we generate bindings with bindgen during build time.
This is a fallback, when pre-generated bindings have any mistakes in them (eg: wrong types or missing functions). But this may add significant compile-time overhead.
These features will influence the bindings generated.
native-handles,native-egl,native-gl- This generates bindings by including system headers for specific types (eg:HWNDfromwindows.h) and may bloat compile times a lot (25+ seconds on windows) due to inclusion of huge platform-specific headers.vulkan- includes vulkan header for vk related types (eg:vkInstance).
§Release Check List
- When updating glfw version, make sure to checkout the submodule and commit it.
- When updating glfw version, don’t forget to change the url link in build.rs to download the pre-built libs of the correct version.
- When updating glfw version, don’t forget to update the pkg-config
atleast_versionargument. - Check that the bindings generated are the same on all platforms by checking the CI logs for the
gen_bindings.shstep.
Structs§
- GLFWallocator
- @brief Custom heap memory allocator.
- GLFWcursor
- GLFWgamepadstate
- @brief Gamepad input state
- GLFWgammaramp
- @brief Gamma ramp.
- GLFWimage
- @brief Image data.
- GLFWmonitor
- GLFWvidmode
- @brief Video mode type.
- GLFWwindow
- VkAllocation
Callbacks - VkInstance_
T - VkPhysical
Device_ T - VkSurfaceKHR_
T
Constants§
- GLFW_
ACCUM_ ALPHA_ BITS - GLFW_
ACCUM_ BLUE_ BITS - GLFW_
ACCUM_ GREEN_ BITS - GLFW_
ACCUM_ RED_ BITS - GLFW_
ALPHA_ BITS - GLFW_
ANGLE_ PLATFORM_ TYPE - GLFW_
ANGLE_ PLATFORM_ TYPE_ D3D9 - GLFW_
ANGLE_ PLATFORM_ TYPE_ D3D11 - GLFW_
ANGLE_ PLATFORM_ TYPE_ METAL - GLFW_
ANGLE_ PLATFORM_ TYPE_ NONE - GLFW_
ANGLE_ PLATFORM_ TYPE_ OPENGL - GLFW_
ANGLE_ PLATFORM_ TYPE_ OPENGLES - GLFW_
ANGLE_ PLATFORM_ TYPE_ VULKAN - GLFW_
ANY_ PLATFORM - GLFW_
ANY_ POSITION - GLFW_
ANY_ RELEASE_ BEHAVIOR - GLFW_
API_ UNAVAILABLE - GLFW_
ARROW_ CURSOR - GLFW_
AUTO_ ICONIFY - GLFW_
AUX_ BUFFERS - GLFW_
BLUE_ BITS - GLFW_
CENTER_ CURSOR - GLFW_
CLIENT_ API - GLFW_
COCOA_ CHDIR_ RESOURCES - GLFW_
COCOA_ FRAME_ NAME - GLFW_
COCOA_ GRAPHICS_ SWITCHING - GLFW_
COCOA_ MENUBAR - GLFW_
COCOA_ RETINA_ FRAMEBUFFER - GLFW_
CONNECTED - GLFW_
CONTEXT_ CREATION_ API - GLFW_
CONTEXT_ DEBUG - GLFW_
CONTEXT_ NO_ ERROR - GLFW_
CONTEXT_ RELEASE_ BEHAVIOR - GLFW_
CONTEXT_ REVISION - GLFW_
CONTEXT_ ROBUSTNESS - GLFW_
CONTEXT_ VERSION_ MAJOR - GLFW_
CONTEXT_ VERSION_ MINOR - GLFW_
CROSSHAIR_ CURSOR - GLFW_
CURSOR - GLFW_
CURSOR_ CAPTURED - GLFW_
CURSOR_ DISABLED - GLFW_
CURSOR_ HIDDEN - GLFW_
CURSOR_ NORMAL - GLFW_
CURSOR_ UNAVAILABLE - GLFW_
DECORATED - GLFW_
DEPTH_ BITS - GLFW_
DISCONNECTED - GLFW_
DONT_ CARE - GLFW_
DOUBLEBUFFER - GLFW_
EGL_ CONTEXT_ API - GLFW_
FALSE - GLFW_
FEATURE_ UNAVAILABLE - GLFW_
FEATURE_ UNIMPLEMENTED - GLFW_
FLOATING - GLFW_
FOCUSED - GLFW_
FOCUS_ ON_ SHOW - GLFW_
FORMAT_ UNAVAILABLE - GLFW_
GAMEPAD_ AXIS_ LAST - GLFW_
GAMEPAD_ AXIS_ LEFT_ TRIGGER - GLFW_
GAMEPAD_ AXIS_ LEFT_ X - GLFW_
GAMEPAD_ AXIS_ LEFT_ Y - GLFW_
GAMEPAD_ AXIS_ RIGHT_ TRIGGER - GLFW_
GAMEPAD_ AXIS_ RIGHT_ X - GLFW_
GAMEPAD_ AXIS_ RIGHT_ Y - GLFW_
GAMEPAD_ BUTTON_ A - GLFW_
GAMEPAD_ BUTTON_ B - GLFW_
GAMEPAD_ BUTTON_ BACK - GLFW_
GAMEPAD_ BUTTON_ CIRCLE - GLFW_
GAMEPAD_ BUTTON_ CROSS - GLFW_
GAMEPAD_ BUTTON_ DPAD_ DOWN - GLFW_
GAMEPAD_ BUTTON_ DPAD_ LEFT - GLFW_
GAMEPAD_ BUTTON_ DPAD_ RIGHT - GLFW_
GAMEPAD_ BUTTON_ DPAD_ UP - GLFW_
GAMEPAD_ BUTTON_ GUIDE - GLFW_
GAMEPAD_ BUTTON_ LAST - GLFW_
GAMEPAD_ BUTTON_ LEFT_ BUMPER - GLFW_
GAMEPAD_ BUTTON_ LEFT_ THUMB - GLFW_
GAMEPAD_ BUTTON_ RIGHT_ BUMPER - GLFW_
GAMEPAD_ BUTTON_ RIGHT_ THUMB - GLFW_
GAMEPAD_ BUTTON_ SQUARE - GLFW_
GAMEPAD_ BUTTON_ START - GLFW_
GAMEPAD_ BUTTON_ TRIANGLE - GLFW_
GAMEPAD_ BUTTON_ X - GLFW_
GAMEPAD_ BUTTON_ Y - GLFW_
GREEN_ BITS - GLFW_
HAND_ CURSOR - GLFW_
HAT_ CENTERED - GLFW_
HAT_ DOWN - GLFW_
HAT_ LEFT - GLFW_
HAT_ LEFT_ DOWN - GLFW_
HAT_ LEFT_ UP - GLFW_
HAT_ RIGHT - GLFW_
HAT_ RIGHT_ DOWN - GLFW_
HAT_ RIGHT_ UP - GLFW_
HAT_ UP - GLFW_
HOVERED - GLFW_
HRESIZE_ CURSOR - GLFW_
IBEAM_ CURSOR - GLFW_
ICONIFIED - GLFW_
INVALID_ ENUM - GLFW_
INVALID_ VALUE - GLFW_
JOYSTICK_ 1 - GLFW_
JOYSTICK_ 2 - GLFW_
JOYSTICK_ 3 - GLFW_
JOYSTICK_ 4 - GLFW_
JOYSTICK_ 5 - GLFW_
JOYSTICK_ 6 - GLFW_
JOYSTICK_ 7 - GLFW_
JOYSTICK_ 8 - GLFW_
JOYSTICK_ 9 - GLFW_
JOYSTICK_ 10 - GLFW_
JOYSTICK_ 11 - GLFW_
JOYSTICK_ 12 - GLFW_
JOYSTICK_ 13 - GLFW_
JOYSTICK_ 14 - GLFW_
JOYSTICK_ 15 - GLFW_
JOYSTICK_ 16 - GLFW_
JOYSTICK_ HAT_ BUTTONS - GLFW_
JOYSTICK_ LAST - GLFW_
KEY_ 0 - GLFW_
KEY_ 1 - GLFW_
KEY_ 2 - GLFW_
KEY_ 3 - GLFW_
KEY_ 4 - GLFW_
KEY_ 5 - GLFW_
KEY_ 6 - GLFW_
KEY_ 7 - GLFW_
KEY_ 8 - GLFW_
KEY_ 9 - GLFW_
KEY_ A - GLFW_
KEY_ APOSTROPHE - GLFW_
KEY_ B - GLFW_
KEY_ BACKSLASH - GLFW_
KEY_ BACKSPACE - GLFW_
KEY_ C - GLFW_
KEY_ CAPS_ LOCK - GLFW_
KEY_ COMMA - GLFW_
KEY_ D - GLFW_
KEY_ DELETE - GLFW_
KEY_ DOWN - GLFW_
KEY_ E - GLFW_
KEY_ END - GLFW_
KEY_ ENTER - GLFW_
KEY_ EQUAL - GLFW_
KEY_ ESCAPE - GLFW_
KEY_ F - GLFW_
KEY_ F1 - GLFW_
KEY_ F2 - GLFW_
KEY_ F3 - GLFW_
KEY_ F4 - GLFW_
KEY_ F5 - GLFW_
KEY_ F6 - GLFW_
KEY_ F7 - GLFW_
KEY_ F8 - GLFW_
KEY_ F9 - GLFW_
KEY_ F10 - GLFW_
KEY_ F11 - GLFW_
KEY_ F12 - GLFW_
KEY_ F13 - GLFW_
KEY_ F14 - GLFW_
KEY_ F15 - GLFW_
KEY_ F16 - GLFW_
KEY_ F17 - GLFW_
KEY_ F18 - GLFW_
KEY_ F19 - GLFW_
KEY_ F20 - GLFW_
KEY_ F21 - GLFW_
KEY_ F22 - GLFW_
KEY_ F23 - GLFW_
KEY_ F24 - GLFW_
KEY_ F25 - GLFW_
KEY_ G - GLFW_
KEY_ GRAVE_ ACCENT - GLFW_
KEY_ H - GLFW_
KEY_ HOME - GLFW_
KEY_ I - GLFW_
KEY_ INSERT - GLFW_
KEY_ J - GLFW_
KEY_ K - GLFW_
KEY_ KP_ 0 - GLFW_
KEY_ KP_ 1 - GLFW_
KEY_ KP_ 2 - GLFW_
KEY_ KP_ 3 - GLFW_
KEY_ KP_ 4 - GLFW_
KEY_ KP_ 5 - GLFW_
KEY_ KP_ 6 - GLFW_
KEY_ KP_ 7 - GLFW_
KEY_ KP_ 8 - GLFW_
KEY_ KP_ 9 - GLFW_
KEY_ KP_ ADD - GLFW_
KEY_ KP_ DECIMAL - GLFW_
KEY_ KP_ DIVIDE - GLFW_
KEY_ KP_ ENTER - GLFW_
KEY_ KP_ EQUAL - GLFW_
KEY_ KP_ MULTIPLY - GLFW_
KEY_ KP_ SUBTRACT - GLFW_
KEY_ L - GLFW_
KEY_ LAST - GLFW_
KEY_ LEFT - GLFW_
KEY_ LEFT_ ALT - GLFW_
KEY_ LEFT_ BRACKET - GLFW_
KEY_ LEFT_ CONTROL - GLFW_
KEY_ LEFT_ SHIFT - GLFW_
KEY_ LEFT_ SUPER - GLFW_
KEY_ M - GLFW_
KEY_ MENU - GLFW_
KEY_ MINUS - GLFW_
KEY_ N - GLFW_
KEY_ NUM_ LOCK - GLFW_
KEY_ O - GLFW_
KEY_ P - GLFW_
KEY_ PAGE_ DOWN - GLFW_
KEY_ PAGE_ UP - GLFW_
KEY_ PAUSE - GLFW_
KEY_ PERIOD - GLFW_
KEY_ PRINT_ SCREEN - GLFW_
KEY_ Q - GLFW_
KEY_ R - GLFW_
KEY_ RIGHT - GLFW_
KEY_ RIGHT_ ALT - GLFW_
KEY_ RIGHT_ BRACKET - GLFW_
KEY_ RIGHT_ CONTROL - GLFW_
KEY_ RIGHT_ SHIFT - GLFW_
KEY_ RIGHT_ SUPER - GLFW_
KEY_ S - GLFW_
KEY_ SCROLL_ LOCK - GLFW_
KEY_ SEMICOLON - GLFW_
KEY_ SLASH - GLFW_
KEY_ SPACE - GLFW_
KEY_ T - GLFW_
KEY_ TAB - GLFW_
KEY_ U - GLFW_
KEY_ UNKNOWN - GLFW_
KEY_ UP - GLFW_
KEY_ V - GLFW_
KEY_ W - GLFW_
KEY_ WORLD_ 1 - GLFW_
KEY_ WORLD_ 2 - GLFW_
KEY_ X - GLFW_
KEY_ Y - GLFW_
KEY_ Z - GLFW_
LOCK_ KEY_ MODS - GLFW_
LOSE_ CONTEXT_ ON_ RESET - GLFW_
MAXIMIZED - GLFW_
MOD_ ALT - GLFW_
MOD_ CAPS_ LOCK - GLFW_
MOD_ CONTROL - GLFW_
MOD_ NUM_ LOCK - GLFW_
MOD_ SHIFT - GLFW_
MOD_ SUPER - GLFW_
MOUSE_ BUTTON_ 1 - GLFW_
MOUSE_ BUTTON_ 2 - GLFW_
MOUSE_ BUTTON_ 3 - GLFW_
MOUSE_ BUTTON_ 4 - GLFW_
MOUSE_ BUTTON_ 5 - GLFW_
MOUSE_ BUTTON_ 6 - GLFW_
MOUSE_ BUTTON_ 7 - GLFW_
MOUSE_ BUTTON_ 8 - GLFW_
MOUSE_ BUTTON_ LAST - GLFW_
MOUSE_ BUTTON_ LEFT - GLFW_
MOUSE_ BUTTON_ MIDDLE - GLFW_
MOUSE_ BUTTON_ RIGHT - GLFW_
MOUSE_ PASSTHROUGH - GLFW_
NATIVE_ CONTEXT_ API - GLFW_
NOT_ ALLOWED_ CURSOR - GLFW_
NOT_ INITIALIZED - GLFW_
NO_ API - GLFW_
NO_ CURRENT_ CONTEXT - GLFW_
NO_ ERROR - GLFW_
NO_ RESET_ NOTIFICATION - GLFW_
NO_ ROBUSTNESS - GLFW_
NO_ WINDOW_ CONTEXT - GLFW_
OPENGL_ ANY_ PROFILE - GLFW_
OPENGL_ API - GLFW_
OPENGL_ COMPAT_ PROFILE - GLFW_
OPENGL_ CORE_ PROFILE - GLFW_
OPENGL_ DEBUG_ CONTEXT - GLFW_
OPENGL_ ES_ API - GLFW_
OPENGL_ FORWARD_ COMPAT - GLFW_
OPENGL_ PROFILE - GLFW_
OSMESA_ CONTEXT_ API - GLFW_
OUT_ OF_ MEMORY - GLFW_
PLATFORM - GLFW_
PLATFORM_ COCOA - GLFW_
PLATFORM_ ERROR - GLFW_
PLATFORM_ NULL - GLFW_
PLATFORM_ UNAVAILABLE - GLFW_
PLATFORM_ WAYLAND - GLFW_
PLATFORM_ WIN32 - GLFW_
PLATFORM_ X11 - GLFW_
POINTING_ HAND_ CURSOR - GLFW_
POSITION_ X - GLFW_
POSITION_ Y - GLFW_
PRESS - GLFW_
RAW_ MOUSE_ MOTION - GLFW_
RED_ BITS - GLFW_
REFRESH_ RATE - GLFW_
RELEASE - GLFW_
RELEASE_ BEHAVIOR_ FLUSH - GLFW_
RELEASE_ BEHAVIOR_ NONE - GLFW_
REPEAT - GLFW_
RESIZABLE - GLFW_
RESIZE_ ALL_ CURSOR - GLFW_
RESIZE_ EW_ CURSOR - GLFW_
RESIZE_ NESW_ CURSOR - GLFW_
RESIZE_ NS_ CURSOR - GLFW_
RESIZE_ NWSE_ CURSOR - GLFW_
SAMPLES - GLFW_
SCALE_ FRAMEBUFFER - GLFW_
SCALE_ TO_ MONITOR - GLFW_
SRGB_ CAPABLE - GLFW_
STENCIL_ BITS - GLFW_
STEREO - GLFW_
STICKY_ KEYS - GLFW_
STICKY_ MOUSE_ BUTTONS - GLFW_
TRANSPARENT_ FRAMEBUFFER - GLFW_
TRUE - GLFW_
VERSION_ MAJOR - GLFW_
VERSION_ MINOR - GLFW_
VERSION_ REVISION - GLFW_
VERSION_ UNAVAILABLE - GLFW_
VISIBLE - GLFW_
VRESIZE_ CURSOR - GLFW_
WAYLAND_ APP_ ID - GLFW_
WAYLAND_ DISABLE_ LIBDECOR - GLFW_
WAYLAND_ LIBDECOR - GLFW_
WAYLAND_ PREFER_ LIBDECOR - GLFW_
WIN32_ KEYBOARD_ MENU - GLFW_
WIN32_ SHOWDEFAULT - GLFW_
X11_ CLASS_ NAME - GLFW_
X11_ INSTANCE_ NAME - GLFW_
X11_ XCB_ VULKAN_ SURFACE - VkInternal
Allocation Type_ VK_ INTERNAL_ ALLOCATION_ TYPE_ EXECUTABLE - VkInternal
Allocation Type_ VK_ INTERNAL_ ALLOCATION_ TYPE_ MAX_ ENUM - VkResult_
VK_ ERROR_ COMPRESSION_ EXHAUSTED_ EXT - VkResult_
VK_ ERROR_ DEVICE_ LOST - VkResult_
VK_ ERROR_ EXTENSION_ NOT_ PRESENT - VkResult_
VK_ ERROR_ FEATURE_ NOT_ PRESENT - VkResult_
VK_ ERROR_ FORMAT_ NOT_ SUPPORTED - VkResult_
VK_ ERROR_ FRAGMENTATION - VkResult_
VK_ ERROR_ FRAGMENTATION_ EXT - VkResult_
VK_ ERROR_ FRAGMENTED_ POOL - VkResult_
VK_ ERROR_ FULL_ SCREEN_ EXCLUSIVE_ MODE_ LOST_ EXT - VkResult_
VK_ ERROR_ IMAGE_ USAGE_ NOT_ SUPPORTED_ KHR - VkResult_
VK_ ERROR_ INCOMPATIBLE_ DISPLAY_ KHR - VkResult_
VK_ ERROR_ INCOMPATIBLE_ DRIVER - VkResult_
VK_ ERROR_ INCOMPATIBLE_ SHADER_ BINARY_ EXT - VkResult_
VK_ ERROR_ INITIALIZATION_ FAILED - VkResult_
VK_ ERROR_ INVALID_ DEVICE_ ADDRESS_ EXT - VkResult_
VK_ ERROR_ INVALID_ DRM_ FORMAT_ MODIFIER_ PLANE_ LAYOUT_ EXT - VkResult_
VK_ ERROR_ INVALID_ EXTERNAL_ HANDLE - VkResult_
VK_ ERROR_ INVALID_ EXTERNAL_ HANDLE_ KHR - VkResult_
VK_ ERROR_ INVALID_ OPAQUE_ CAPTURE_ ADDRESS - VkResult_
VK_ ERROR_ INVALID_ OPAQUE_ CAPTURE_ ADDRESS_ KHR - VkResult_
VK_ ERROR_ INVALID_ SHADER_ NV - VkResult_
VK_ ERROR_ INVALID_ VIDEO_ STD_ PARAMETERS_ KHR - VkResult_
VK_ ERROR_ LAYER_ NOT_ PRESENT - VkResult_
VK_ ERROR_ MEMORY_ MAP_ FAILED - VkResult_
VK_ ERROR_ NATIVE_ WINDOW_ IN_ USE_ KHR - VkResult_
VK_ ERROR_ NOT_ ENOUGH_ SPACE_ KHR - VkResult_
VK_ ERROR_ NOT_ PERMITTED - VkResult_
VK_ ERROR_ NOT_ PERMITTED_ EXT - VkResult_
VK_ ERROR_ NOT_ PERMITTED_ KHR - VkResult_
VK_ ERROR_ OUT_ OF_ DATE_ KHR - VkResult_
VK_ ERROR_ OUT_ OF_ DEVICE_ MEMORY - VkResult_
VK_ ERROR_ OUT_ OF_ HOST_ MEMORY - VkResult_
VK_ ERROR_ OUT_ OF_ POOL_ MEMORY - VkResult_
VK_ ERROR_ OUT_ OF_ POOL_ MEMORY_ KHR - VkResult_
VK_ ERROR_ PIPELINE_ COMPILE_ REQUIRED_ EXT - VkResult_
VK_ ERROR_ SURFACE_ LOST_ KHR - VkResult_
VK_ ERROR_ TOO_ MANY_ OBJECTS - VkResult_
VK_ ERROR_ UNKNOWN - VkResult_
VK_ ERROR_ VALIDATION_ FAILED_ EXT - VkResult_
VK_ ERROR_ VIDEO_ PICTURE_ LAYOUT_ NOT_ SUPPORTED_ KHR - VkResult_
VK_ ERROR_ VIDEO_ PROFILE_ CODEC_ NOT_ SUPPORTED_ KHR - VkResult_
VK_ ERROR_ VIDEO_ PROFILE_ FORMAT_ NOT_ SUPPORTED_ KHR - VkResult_
VK_ ERROR_ VIDEO_ PROFILE_ OPERATION_ NOT_ SUPPORTED_ KHR - VkResult_
VK_ ERROR_ VIDEO_ STD_ VERSION_ NOT_ SUPPORTED_ KHR - VkResult_
VK_ EVENT_ RESET - VkResult_
VK_ EVENT_ SET - VkResult_
VK_ INCOMPATIBLE_ SHADER_ BINARY_ EXT - VkResult_
VK_ INCOMPLETE - VkResult_
VK_ NOT_ READY - VkResult_
VK_ OPERATION_ DEFERRED_ KHR - VkResult_
VK_ OPERATION_ NOT_ DEFERRED_ KHR - VkResult_
VK_ PIPELINE_ BINARY_ MISSING_ KHR - VkResult_
VK_ PIPELINE_ COMPILE_ REQUIRED - VkResult_
VK_ PIPELINE_ COMPILE_ REQUIRED_ EXT - VkResult_
VK_ RESULT_ MAX_ ENUM - VkResult_
VK_ SUBOPTIMAL_ KHR - VkResult_
VK_ SUCCESS - VkResult_
VK_ THREAD_ DONE_ KHR - VkResult_
VK_ THREAD_ IDLE_ KHR - VkResult_
VK_ TIMEOUT - VkSystem
Allocation Scope_ VK_ SYSTEM_ ALLOCATION_ SCOPE_ CACHE - VkSystem
Allocation Scope_ VK_ SYSTEM_ ALLOCATION_ SCOPE_ COMMAND - VkSystem
Allocation Scope_ VK_ SYSTEM_ ALLOCATION_ SCOPE_ DEVICE - VkSystem
Allocation Scope_ VK_ SYSTEM_ ALLOCATION_ SCOPE_ INSTANCE - VkSystem
Allocation Scope_ VK_ SYSTEM_ ALLOCATION_ SCOPE_ MAX_ ENUM - VkSystem
Allocation Scope_ VK_ SYSTEM_ ALLOCATION_ SCOPE_ OBJECT
Functions§
- glfw
Create ⚠Cursor - @brief Creates a custom cursor.
- glfw
Create ⚠Standard Cursor - @brief Creates a cursor with a standard shape.
- glfw
Create ⚠Window - @brief Creates a window and its associated context.
- glfw
Create ⚠Window Surface - @brief Creates a Vulkan surface for the specified window.
- glfw
Default ⚠Window Hints - @brief Resets all window hints to their default values.
- glfw
Destroy ⚠Cursor - @brief Destroys a cursor.
- glfw
Destroy ⚠Window - @brief Destroys the specified window and its context.
- glfw
Extension ⚠Supported - @brief Returns whether the specified extension is available.
- glfw
Focus ⚠Window - @brief Brings the specified window to front and sets input focus.
- glfw
GetClipboard ⚠String - @brief Returns the contents of the clipboard as a string.
- glfw
GetCurrent ⚠Context - @brief Returns the window whose context is current on the calling thread.
- glfw
GetCursor ⚠Pos - @brief Retrieves the position of the cursor relative to the content area of the window.
- glfw
GetEGL ⚠Context - @brief Returns the
EGLContextof the specified window. - glfw
GetEGL ⚠Display - @brief Returns the
EGLDisplayused by GLFW. - glfw
GetEGL ⚠Surface - @brief Returns the
EGLSurfaceof the specified window. - glfw
GetError ⚠ - @brief Returns and clears the last error for the calling thread.
- glfw
GetFramebuffer ⚠Size - @brief Retrieves the size of the framebuffer of the specified window.
- glfw
GetGLX ⚠Context - @brief Returns the
GLXContextof the specified window. - glfw
GetGLX ⚠Window - @brief Returns the
GLXWindowof the specified window. - glfw
GetGamepad ⚠Name - @brief Returns the human-readable gamepad name for the specified joystick.
- glfw
GetGamepad ⚠State - @brief Retrieves the state of the specified joystick remapped as a gamepad.
- glfw
GetGamma ⚠Ramp - @brief Returns the current gamma ramp for the specified monitor.
- glfw
GetInput ⚠Mode - @brief Returns the value of an input option for the specified window.
- glfw
GetInstance ⚠Proc Address - @brief Returns the address of the specified Vulkan instance function.
- glfw
GetJoystick ⚠Axes - @brief Returns the values of all axes of the specified joystick.
- glfw
GetJoystick ⚠Buttons - @brief Returns the state of all buttons of the specified joystick.
- glfw
GetJoystickGUID ⚠ - @brief Returns the SDL compatible GUID of the specified joystick.
- glfw
GetJoystick ⚠Hats - @brief Returns the state of all hats of the specified joystick.
- glfw
GetJoystick ⚠Name - @brief Returns the name of the specified joystick.
- glfw
GetJoystick ⚠User Pointer - @brief Returns the user pointer of the specified joystick.
- glfw
GetKey ⚠ - @brief Returns the last reported state of a keyboard key for the specified window.
- glfw
GetKey ⚠Name - @brief Returns the layout-specific name of the specified printable key.
- glfw
GetKey ⚠Scancode - @brief Returns the platform-specific scancode of the specified key.
- glfw
GetMonitor ⚠Content Scale - @brief Retrieves the content scale for the specified monitor.
- glfw
GetMonitor ⚠Name - @brief Returns the name of the specified monitor.
- glfw
GetMonitor ⚠Physical Size - @brief Returns the physical size of the monitor.
- glfw
GetMonitor ⚠Pos - @brief Returns the position of the monitor’s viewport on the virtual screen.
- glfw
GetMonitor ⚠User Pointer - @brief Returns the user pointer of the specified monitor.
- glfw
GetMonitor ⚠Workarea - @brief Retrieves the work area of the monitor.
- glfw
GetMonitors ⚠ - @brief Returns the currently connected monitors.
- glfw
GetMouse ⚠Button - @brief Returns the last reported state of a mouse button for the specified window.
- glfw
GetPhysical ⚠Device Presentation Support - @brief Returns whether the specified queue family can present images.
- glfw
GetPlatform ⚠ - @brief Returns the currently selected platform.
- glfw
GetPrimary ⚠Monitor - @brief Returns the primary monitor.
- glfw
GetProc ⚠Address - @brief Returns the address of the specified function for the current context.
- glfw
GetRequired ⚠Instance Extensions - @brief Returns the Vulkan instance extensions required by GLFW.
- glfw
GetTime ⚠ - @brief Returns the GLFW time.
- glfw
GetTimer ⚠Frequency - @brief Returns the frequency, in Hz, of the raw timer.
- glfw
GetTimer ⚠Value - @brief Returns the current value of the raw timer.
- glfw
GetVersion ⚠ - @brief Retrieves the version of the GLFW library.
- glfw
GetVersion ⚠String - @brief Returns a string describing the compile-time configuration.
- glfw
GetVideo ⚠Mode - @brief Returns the current mode of the specified monitor.
- glfw
GetVideo ⚠Modes - @brief Returns the available video modes for the specified monitor.
- glfw
GetWayland ⚠Display - @brief Returns the
struct wl_display*used by GLFW. - glfw
GetWayland ⚠Monitor - @brief Returns the
struct wl_output*of the specified monitor. - glfw
GetWayland ⚠Window - @brief Returns the main
struct wl_surface*of the specified window. - glfw
GetWindow ⚠Attrib - @brief Returns an attribute of the specified window.
- glfw
GetWindow ⚠Content Scale - @brief Retrieves the content scale for the specified window.
- glfw
GetWindow ⚠Frame Size - @brief Retrieves the size of the frame of the window.
- glfw
GetWindow ⚠Monitor - @brief Returns the monitor that the window uses for full screen mode.
- glfw
GetWindow ⚠Opacity - @brief Returns the opacity of the whole window.
- glfw
GetWindow ⚠Pos - @brief Retrieves the position of the content area of the specified window.
- glfw
GetWindow ⚠Size - @brief Retrieves the size of the content area of the specified window.
- glfw
GetWindow ⚠Title - @brief Returns the title of the specified window.
- glfw
GetWindow ⚠User Pointer - @brief Returns the user pointer of the specified window.
- glfw
GetX11 ⚠Adapter - @brief Returns the
RRCrtcof the specified monitor. - glfw
GetX11 ⚠Display - @brief Returns the
Displayused by GLFW. - glfw
GetX11 ⚠Monitor - glfw
GetX11 ⚠Selection String - @brief Returns the contents of the current primary selection as a string.
- glfw
GetX11 ⚠Window - @brief Returns the
Windowof the specified window. - glfw
Hide ⚠Window - @brief Hides the specified window.
- glfw
Iconify ⚠Window - @brief Iconifies the specified window.
- glfw
Init ⚠ - @brief Initializes the GLFW library.
- glfw
Init ⚠Allocator - @brief Sets the init allocator to the desired value.
- glfw
Init ⚠Hint - @brief Sets the specified init hint to the desired value.
- glfw
Init ⚠Vulkan Loader - @brief Sets the desired Vulkan
vkGetInstanceProcAddrfunction. - glfw
Joystick ⚠IsGamepad - @brief Returns whether the specified joystick has a gamepad mapping.
- glfw
Joystick ⚠Present - @brief Returns whether the specified joystick is present.
- glfw
Make ⚠Context Current - @brief Makes the context of the specified window current for the calling thread.
- glfw
Maximize ⚠Window - @brief Maximizes the specified window.
- glfw
Platform ⚠Supported - @brief Returns whether the library includes support for the specified platform.
- glfw
Poll ⚠Events - @brief Processes all pending events.
- glfw
Post ⚠Empty Event - @brief Posts an empty event to the event queue.
- glfw
RawMouse ⚠Motion Supported - @brief Returns whether raw mouse motion is supported.
- glfw
Request ⚠Window Attention - @brief Requests user attention to the specified window.
- glfw
Restore ⚠Window - @brief Restores the specified window.
- glfw
SetChar ⚠Callback - @brief Sets the Unicode character callback.
- glfw
SetChar ⚠Mods Callback - @brief Sets the Unicode character with modifiers callback.
- glfw
SetClipboard ⚠String - @brief Sets the clipboard to the specified string.
- glfw
SetCursor ⚠ - @brief Sets the cursor for the window.
- glfw
SetCursor ⚠Enter Callback - @brief Sets the cursor enter/leave callback.
- glfw
SetCursor ⚠Pos - @brief Sets the position of the cursor, relative to the content area of the window.
- glfw
SetCursor ⚠PosCallback - @brief Sets the cursor position callback.
- glfw
SetDrop ⚠Callback - @brief Sets the path drop callback.
- glfw
SetError ⚠Callback - @brief Sets the error callback.
- glfw
SetFramebuffer ⚠Size Callback - @brief Sets the framebuffer resize callback for the specified window.
- glfw
SetGamma ⚠ - @brief Generates a gamma ramp and sets it for the specified monitor.
- glfw
SetGamma ⚠Ramp - @brief Sets the current gamma ramp for the specified monitor.
- glfw
SetInput ⚠Mode - @brief Sets an input option for the specified window.
- glfw
SetJoystick ⚠Callback - @brief Sets the joystick configuration callback.
- glfw
SetJoystick ⚠User Pointer - @brief Sets the user pointer of the specified joystick.
- glfw
SetKey ⚠Callback - @brief Sets the key callback.
- glfw
SetMonitor ⚠Callback - @brief Sets the monitor configuration callback.
- glfw
SetMonitor ⚠User Pointer - @brief Sets the user pointer of the specified monitor.
- glfw
SetMouse ⚠Button Callback - @brief Sets the mouse button callback.
- glfw
SetScroll ⚠Callback - @brief Sets the scroll callback.
- glfw
SetTime ⚠ - @brief Sets the GLFW time.
- glfw
SetWindow ⚠Aspect Ratio - @brief Sets the aspect ratio of the specified window.
- glfw
SetWindow ⚠Attrib - @brief Sets an attribute of the specified window.
- glfw
SetWindow ⚠Close Callback - @brief Sets the close callback for the specified window.
- glfw
SetWindow ⚠Content Scale Callback - @brief Sets the window content scale callback for the specified window.
- glfw
SetWindow ⚠Focus Callback - @brief Sets the focus callback for the specified window.
- glfw
SetWindow ⚠Icon - @brief Sets the icon for the specified window.
- glfw
SetWindow ⚠Iconify Callback - @brief Sets the iconify callback for the specified window.
- glfw
SetWindow ⚠Maximize Callback - @brief Sets the maximize callback for the specified window.
- glfw
SetWindow ⚠Monitor - @brief Sets the mode, monitor, video mode and placement of a window.
- glfw
SetWindow ⚠Opacity - @brief Sets the opacity of the whole window.
- glfw
SetWindow ⚠Pos - @brief Sets the position of the content area of the specified window.
- glfw
SetWindow ⚠PosCallback - @brief Sets the position callback for the specified window.
- glfw
SetWindow ⚠Refresh Callback - @brief Sets the refresh callback for the specified window.
- glfw
SetWindow ⚠Should Close - @brief Sets the close flag of the specified window.
- glfw
SetWindow ⚠Size - @brief Sets the size of the content area of the specified window.
- glfw
SetWindow ⚠Size Callback - @brief Sets the size callback for the specified window.
- glfw
SetWindow ⚠Size Limits - @brief Sets the size limits of the specified window.
- glfw
SetWindow ⚠Title - @brief Sets the title of the specified window.
- glfw
SetWindow ⚠User Pointer - @brief Sets the user pointer of the specified window.
- glfw
SetX11 ⚠Selection String - @brief Sets the current primary selection to the specified string.
- glfw
Show ⚠Window - @brief Makes the specified window visible.
- glfw
Swap ⚠Buffers - @brief Swaps the front and back buffers of the specified window.
- glfw
Swap ⚠Interval - @brief Sets the swap interval for the current context.
- glfw
Terminate ⚠ - @brief Terminates the GLFW library.
- glfw
Update ⚠Gamepad Mappings - @brief Adds the specified SDL_GameControllerDB gamepad mappings.
- glfw
Vulkan ⚠Supported - @brief Returns whether the Vulkan loader and an ICD have been found.
- glfw
Wait ⚠Events - @brief Waits until events are queued and processes them.
- glfw
Wait ⚠Events Timeout - @brief Waits with timeout until events are queued and processes them.
- glfw
Window ⚠Hint - @brief Sets the specified window hint to the desired value.
- glfw
Window ⚠Hint String - @brief Sets the specified window hint to the desired value.
- glfw
Window ⚠Should Close - @brief Checks the close flag of the specified window.
Type Aliases§
- GLFWallocatefun
- @brief The function pointer type for memory allocation callbacks.
- GLFWcharfun
- @brief The function pointer type for Unicode character callbacks.
- GLFWcharmodsfun
- @brief The function pointer type for Unicode character with modifiers callbacks.
- GLFWcursorenterfun
- @brief The function pointer type for cursor enter/leave callbacks.
- GLFWcursorposfun
- @brief The function pointer type for cursor position callbacks.
- GLFWdeallocatefun
- @brief The function pointer type for memory deallocation callbacks.
- GLFWdropfun
- @brief The function pointer type for path drop callbacks.
- GLFWerrorfun
- @brief The function pointer type for error callbacks.
- GLFWframebuffersizefun
- @brief The function pointer type for framebuffer size callbacks.
- GLFWglproc
- @brief Client API function pointer type.
- GLFWjoystickfun
- @brief The function pointer type for joystick configuration callbacks.
- GLFWkeyfun
- @brief The function pointer type for keyboard key callbacks.
- GLFWmonitorfun
- @brief The function pointer type for monitor configuration callbacks.
- GLFWmousebuttonfun
- @brief The function pointer type for mouse button callbacks.
- GLFWreallocatefun
- @brief The function pointer type for memory reallocation callbacks.
- GLFWscrollfun
- @brief The function pointer type for scroll callbacks.
- GLFWvkproc
- @brief Vulkan API function pointer type.
- GLFWwindowclosefun
- @brief The function pointer type for window close callbacks.
- GLFWwindowcontentscalefun
- @brief The function pointer type for window content scale callbacks.
- GLFWwindowfocusfun
- @brief The function pointer type for window focus callbacks.
- GLFWwindowiconifyfun
- @brief The function pointer type for window iconify callbacks.
- GLFWwindowmaximizefun
- @brief The function pointer type for window maximize callbacks.
- GLFWwindowposfun
- @brief The function pointer type for window position callbacks.
- GLFWwindowrefreshfun
- @brief The function pointer type for window content refresh callbacks.
- GLFWwindowsizefun
- @brief The function pointer type for window size callbacks.
- PFN_
vkAllocation Function - PFN_
vkFree Function - PFN_
vkGet Instance Proc Addr - PFN_
vkInternal Allocation Notification - PFN_
vkInternal Free Notification - PFN_
vkReallocation Function - PFN_
vkVoid Function - VkInstance
- VkInternal
Allocation Type - VkPhysical
Device - VkResult
- VkSurfaceKHR
- VkSystem
Allocation Scope