GLFW

- Documentation
- Download
- Media
- Community

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

All Data Structures Files Functions Variables Typedefs Macros Groups Pages
Typedefs | Functions
Context handling

## Typedefs
typedef void(* | GLFWglproc )(void)
| Client API function pointer type. More...

## Functions
void | glfwMakeContextCurrent (GLFWwindow *window)
| Makes the context of the specified window current for the calling thread. More...
GLFWwindow * | glfwGetCurrentContext (void)
| Returns the window whose context is current on the calling thread. More...
void | glfwSwapInterval (int interval)
| Sets the swap interval for the current context. More...
int | glfwExtensionSupported (const char *extension)
| Returns whether the specified extension is available. More...
GLFWglproc | glfwGetProcAddress (const char *procname)
| Returns the address of the specified function for the current context. More...

## Detailed Description

This is the reference documentation for context related functions. For more information, see the Context guide.

## Typedef Documentation

typedef void(* GLFWglproc)(void)

Generic function pointer used for returning client API function pointers without forcing a cast from a regular pointer.

## Function Documentation

int glfwExtensionSupported | ( | const char * | extension | ) |

This function returns whether the specified client API extension is supported by the current OpenGL or OpenGL ES context. It searches both for OpenGL and OpenGL ES extension and platform-specific 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.

Parameters

  [in] | extension | The ASCII encoded name of the extension.

Returns
  `GL_TRUE` if the extension is available, or `GL_FALSE` otherwise.

Thread Safety
  This function may be called from any thread.

See Also
  OpenGL and OpenGL ES extensions
  glfwGetProcAddress

Since
  Added in GLFW 1.0.

GLFWwindow* glfwGetCurrentContext | ( | void |  | ) |

This function returns the window whose OpenGL or OpenGL ES context is current on the calling thread.

Returns
  The window whose context is current, or `NULL` if no window's context is current.

Thread Safety
  This function may be called from any thread.

See Also
  Current context
  glfwMakeContextCurrent

Since
  Added in GLFW 3.0.

GLFWglproc glfwGetProcAddress | ( | const char * | procname | ) |

This function returns the address of the specified 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.

Parameters

  [in] | procname | The ASCII encoded name of the function.

Returns
  The address of the function, or `NULL` if the function is unavailable or an error occurred.

Remarks
  The addresses of a given function is not guaranteed to be the same between contexts.
  This function may return a non-`NULL` address despite the associated version or extension not being available. Always check the context version or extension string presence first.

Pointer Lifetime
  The returned function pointer is valid until the context is destroyed or the library is terminated.

Thread Safety
  This function may be called from any thread.

See Also
  OpenGL and OpenGL ES extensions
  glfwExtensionSupported

Since
  Added in GLFW 1.0.

void glfwMakeContextCurrent | ( | GLFWwindow * | window | ) |

This function makes the OpenGL or OpenGL ES context of the specified window current on the calling thread. A context can only be made current on a single thread at a time and each thread can have only a single current context at a time.

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 window hint.

Parameters

  [in] | window | The window whose context to make current, or `NULL` to detach the current context.

Thread Safety
  This function may be called from any thread.

See Also
  Current context
  glfwGetCurrentContext

Since
  Added in GLFW 3.0.

void glfwSwapInterval | ( | int | interval | ) |

This function sets the swap interval for the current 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.

Contexts that support either of the `WGL_EXT_swap_control_tear` and `GLX_EXT_swap_control_tear` extensions also accept negative swap intervals, which allow the driver to swap even if a frame arrives a little bit late. You can check for the presence of these extensions using glfwExtensionSupported. For more information about swap tearing, see the extension specifications.

A context must be current on the calling thread. Calling this function without a current context will cause a GLFW_NO_CURRENT_CONTEXT error.

Parameters

  [in] | interval | The minimum number of screen updates to wait for until the buffers are swapped by glfwSwapBuffers.

Remarks
  This function is not called during context creation, leaving the swap interval set to whatever is the default on that platform. This is done because some swap interval extensions used by GLFW do not allow the swap interval to be reset to zero once it has been set to a non-zero value.
  Some GPU drivers do not honor the requested swap interval, either because of a user setting that overrides the application's request or due to bugs in the driver.

Thread Safety
  This function may be called from any thread.

See Also
  Buffer swapping
  glfwSwapBuffers

Since
  Added in GLFW 1.0.