Library Setup
Preparing the library for use
Import
Speaks for itself, I think...
Initialization
Before most GLFW functions may be called, the library must be initialized. This initialization process can fail, which should to be accounted for:
There are a few functions that may be called before GLFW is successfully initialized:
glfwGetVersion
glfwGetVersionString
glfwGetError
glfwSetErrorCallback
glfwInitHint
glfwTerminate
Termination
Before an application exits, the library must be terminated using glfwTerminate()
, to prevent memory leaks. This will also [destroy all existing windows], monitors and cursors.
Error Handling
Even before initializing GLFW, an error callback can be set that can be used to print errors directly to console:
An easier alternative:
Note: This callback later has to be freed to prevent memory leaks:
GLFW also caches the last error to have occurred. This error's code and optionally its description (nullable) can be queried like this:
The returned code is one of:
GLFW_NO_ERROR
- No error has occurred.GLFW_NOT_INITIALIZED
- GLFW has not been initialized.GLFW_NO_CURRENT_CONTEXT
- No context is current for this thread.GLFW_INVALID_ENUM
- One of the arguments to the function was an invalid enum value.GLFW_INVALID_VALUE
- One of the arguments to the function was an invalid value.GLFW_OUT_OF_MEMORY
- A memory allocation failed.GLFW_API_UNAVAILABLE
- GLFW could not find support for the requested API on the system.GLFW_VERSION_UNAVAILABLE
- The requested OpenGL or OpenGL ES version is not available.GLFW_PLATFORM_ERROR
- A platform-specific error occurred that does not match any of the more specific categories.GLFW_FORMAT_UNAVAILABLE
- The requested format is not supported or available.GLFW_NO_WINDOW_CONTEXT
- The specified window does not have an OpenGL or OpenGL ES context.
Initialization Hints
Before initialization of GLFW, initialization hints can be used to set up specific library behaviors.
Hint
Default value
Explanation
GLFW_JOYSTICK_HAT_BUTTONS
GLFW_TRUE
Whether to expose joystick hats as button for GLFW backward compatibility.
GLFW_COCOA_CHDIR_RESOURCES
GLFW_TRUE
macOS-specific. Whether to set set the application directory to Contents/Resources
.
GLFW_COCOA_MENUBAR
GLFW_TRUE
macOS-specific. Whether to create a basic menu bar, when the first window is created.
Initialization hints can be specified with glfwInitHint(<hint>,<value>)
, where <hint>
is one of the above, and <value>
is one of GLFW_TRUE
/GLFW_FALSE
:
Last updated
Was this helpful?