This is the reference documentation for OpenGL and OpenGL ES context related functions. For more task-oriented information, see the Context guide.
Typedefs | |
typedef void(* | GLFWglproc) (void) |
Client API function pointer type. | |
Functions | |
void | glfwMakeContextCurrent (GLFWwindow *window) |
Makes the context of the specified window current for the calling thread. | |
GLFWwindow * | glfwGetCurrentContext (void) |
Returns the window whose context is current on the calling thread. | |
void | glfwSwapInterval (int interval) |
Sets the swap interval for the current context. | |
int | glfwExtensionSupported (const char *extension) |
Returns whether the specified extension is available. | |
GLFWglproc | glfwGetProcAddress (const char *procname) |
Returns the address of the specified function for the current context. | |
typedef void(* GLFWglproc) (void) |
Generic function pointer used for returning client API function pointers without forcing a cast from a regular pointer.
void glfwMakeContextCurrent | ( | GLFWwindow * | window | ) |
This function makes the OpenGL or OpenGL ES context of the specified window current on the calling thread. It can also detach the current context from the calling thread without making a new one current by passing in NULL
.
A context must only be made current on a single thread at a time and each thread can have only a single current context at a time. Making a context current detaches any previously current context on the calling thread.
When moving a context between threads, you must detach it (make it non-current) on the old thread before making it current on the new one.
By default, making a context non-current implicitly forces a pipeline flush. On machines that support GL_KHR_context_flush_control
, you can control whether a context performs this flush by setting the GLFW_CONTEXT_RELEASE_BEHAVIOR hint.
The specified window must have an OpenGL or OpenGL ES context. Specifying a window without a context will generate a GLFW_NO_WINDOW_CONTEXT error.
[in] | window | The window whose context to make current, or NULL to detach the current context. |
GLFWwindow * glfwGetCurrentContext | ( | void | ) |
This function returns the window whose OpenGL or OpenGL ES context is current on the calling thread.
NULL
if no window's context is current.void glfwSwapInterval | ( | int | interval | ) |
This function sets the swap interval for the current OpenGL or OpenGL ES context, i.e. the number of screen updates to wait from the time glfwSwapBuffers was called before swapping the buffers and returning. This is sometimes called vertical synchronization, vertical retrace synchronization or just vsync.
A context that supports either of the WGL_EXT_swap_control_tear
and GLX_EXT_swap_control_tear
extensions also accepts negative swap intervals, which allows the driver to swap immediately even if a frame arrives a little bit late. You can check for these extensions with glfwExtensionSupported.
A context must be current on the calling thread. Calling this function without a current context will cause a GLFW_NO_CURRENT_CONTEXT error.
This function does not apply to Vulkan. If you are rendering with Vulkan, see the present mode of your swapchain instead.
[in] | interval | The minimum number of screen updates to wait for until the buffers are swapped by glfwSwapBuffers. |
int glfwExtensionSupported | ( | const char * | extension | ) |
This function returns whether the specified API extension is supported by the current OpenGL or OpenGL ES context. It searches both for client API extension and context creation API extensions.
A context must be current on the calling thread. Calling this function without a current context will cause a GLFW_NO_CURRENT_CONTEXT error.
As this functions retrieves and searches one or more extension strings each call, it is recommended that you cache its results if it is going to be used frequently. The extension strings will not change during the lifetime of a context, so there is no danger in doing this.
This function does not apply to Vulkan. If you are using Vulkan, see glfwGetRequiredInstanceExtensions, vkEnumerateInstanceExtensionProperties
and vkEnumerateDeviceExtensionProperties
instead.
[in] | extension | The ASCII encoded name of the extension. |
GLFW_TRUE
if the extension is available, or GLFW_FALSE
otherwise.GLFWglproc glfwGetProcAddress | ( | const char * | procname | ) |
This function returns the address of the specified OpenGL or OpenGL ES core or extension function, if it is supported by the current context.
A context must be current on the calling thread. Calling this function without a current context will cause a GLFW_NO_CURRENT_CONTEXT error.
This function does not apply to Vulkan. If you are rendering with Vulkan, see glfwGetInstanceProcAddress, vkGetInstanceProcAddr
and vkGetDeviceProcAddr
instead.
[in] | procname | The ASCII encoded name of the function. |
NULL
if an error occurred.NULL
address despite the associated version or extension not being available. Always check the context version or extension string first.Last update on Fri Feb 23 2024 for GLFW 3.4.0