Functions
Native access

Description

By using the native access functions you assert that you know what you're doing and how to fix problems caused by using them. If you don't, you shouldn't be using them.

Before the inclusion of glfw3native.h, you may define zero or more window system API macro and zero or more context creation API macros.

The chosen backends must match those the library was compiled for. Failure to do this will cause a link-time error.

The available window API macros are:

The available context API macros are:

These macros select which of the native access functions that are declared and which platform-specific headers to include. It is then up your (by definition platform-specific) code to handle which of these should be defined.

If you do not want the platform-specific headers to be included, define GLFW_NATIVE_INCLUDE_NONE before including the glfw3native.h header.

#define GLFW_EXPOSE_NATIVE_WIN32
#define GLFW_EXPOSE_NATIVE_WGL
#define GLFW_NATIVE_INCLUDE_NONE
The header of the native access functions.

Functions

const char * glfwGetWin32Adapter (GLFWmonitor *monitor)
 Returns the adapter device name of the specified monitor. More...
 
const char * glfwGetWin32Monitor (GLFWmonitor *monitor)
 Returns the display device name of the specified monitor. More...
 
HWND glfwGetWin32Window (GLFWwindow *window)
 Returns the HWND of the specified window. More...
 
HGLRC glfwGetWGLContext (GLFWwindow *window)
 Returns the HGLRC of the specified window. More...
 
CGDirectDisplayID glfwGetCocoaMonitor (GLFWmonitor *monitor)
 Returns the CGDirectDisplayID of the specified monitor. More...
 
id glfwGetCocoaWindow (GLFWwindow *window)
 Returns the NSWindow of the specified window. More...
 
id glfwGetNSGLContext (GLFWwindow *window)
 Returns the NSOpenGLContext of the specified window. More...
 
Display * glfwGetX11Display (void)
 Returns the Display used by GLFW. More...
 
RRCrtc glfwGetX11Adapter (GLFWmonitor *monitor)
 Returns the RRCrtc of the specified monitor. More...
 
RROutput glfwGetX11Monitor (GLFWmonitor *monitor)
 Returns the RROutput of the specified monitor. More...
 
Window glfwGetX11Window (GLFWwindow *window)
 Returns the Window of the specified window. More...
 
void glfwSetX11SelectionString (const char *string)
 Sets the current primary selection to the specified string. More...
 
const char * glfwGetX11SelectionString (void)
 Returns the contents of the current primary selection as a string. More...
 
GLXContext glfwGetGLXContext (GLFWwindow *window)
 Returns the GLXContext of the specified window. More...
 
GLXWindow glfwGetGLXWindow (GLFWwindow *window)
 Returns the GLXWindow of the specified window. More...
 
struct wl_display * glfwGetWaylandDisplay (void)
 Returns the struct wl_display* used by GLFW. More...
 
struct wl_output * glfwGetWaylandMonitor (GLFWmonitor *monitor)
 Returns the struct wl_output* of the specified monitor. More...
 
struct wl_surface * glfwGetWaylandWindow (GLFWwindow *window)
 Returns the main struct wl_surface* of the specified window. More...
 
EGLDisplay glfwGetEGLDisplay (void)
 Returns the EGLDisplay used by GLFW. More...
 
EGLContext glfwGetEGLContext (GLFWwindow *window)
 Returns the EGLContext of the specified window. More...
 
EGLSurface glfwGetEGLSurface (GLFWwindow *window)
 Returns the EGLSurface of the specified window. More...
 
int glfwGetOSMesaColorBuffer (GLFWwindow *window, int *width, int *height, int *format, void **buffer)
 Retrieves the color buffer associated with the specified window. More...
 
int glfwGetOSMesaDepthBuffer (GLFWwindow *window, int *width, int *height, int *bytesPerValue, void **buffer)
 Retrieves the depth buffer associated with the specified window. More...
 
OSMesaContext glfwGetOSMesaContext (GLFWwindow *window)
 Returns the OSMesaContext of the specified window. More...
 

Function Documentation

◆ glfwGetWin32Adapter()

const char * glfwGetWin32Adapter ( GLFWmonitor monitor)
Returns
The UTF-8 encoded adapter device name (for example \\.\DISPLAY1) of the specified monitor, or NULL if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.1.

◆ glfwGetWin32Monitor()

const char * glfwGetWin32Monitor ( GLFWmonitor monitor)
Returns
The UTF-8 encoded display device name (for example \\.\DISPLAY1\Monitor0) of the specified monitor, or NULL if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.1.

◆ glfwGetWin32Window()

HWND glfwGetWin32Window ( GLFWwindow window)
Returns
The HWND of the specified window, or NULL if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Remarks
The HDC associated with the window can be queried with the GetDC function.
HDC dc = GetDC(glfwGetWin32Window(window));
HWND glfwGetWin32Window(GLFWwindow *window)
Returns the HWND of the specified window.
This DC is private and does not need to be released.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.0.

◆ glfwGetWGLContext()

HGLRC glfwGetWGLContext ( GLFWwindow window)
Returns
The HGLRC of the specified window, or NULL if an error occurred.
Errors
Possible errors include GLFW_NO_WINDOW_CONTEXT and GLFW_NOT_INITIALIZED.
Remarks
The HDC associated with the window can be queried with the GetDC function.
HDC dc = GetDC(glfwGetWin32Window(window));
This DC is private and does not need to be released.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.0.

◆ glfwGetCocoaMonitor()

CGDirectDisplayID glfwGetCocoaMonitor ( GLFWmonitor monitor)
Returns
The CGDirectDisplayID of the specified monitor, or kCGNullDirectDisplay if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.1.

◆ glfwGetCocoaWindow()

id glfwGetCocoaWindow ( GLFWwindow window)
Returns
The NSWindow of the specified window, or nil if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.0.

◆ glfwGetNSGLContext()

id glfwGetNSGLContext ( GLFWwindow window)
Returns
The NSOpenGLContext of the specified window, or nil if an error occurred.
Errors
Possible errors include GLFW_NO_WINDOW_CONTEXT and GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.0.

◆ glfwGetX11Display()

Display * glfwGetX11Display ( void  )
Returns
The Display used by GLFW, or NULL if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.0.

◆ glfwGetX11Adapter()

RRCrtc glfwGetX11Adapter ( GLFWmonitor monitor)
Returns
The RRCrtc of the specified monitor, or None if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.1.

◆ glfwGetX11Monitor()

RROutput glfwGetX11Monitor ( GLFWmonitor monitor)
Returns
The RROutput of the specified monitor, or None if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.1.

◆ glfwGetX11Window()

Window glfwGetX11Window ( GLFWwindow window)
Returns
The Window of the specified window, or None if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.0.

◆ glfwSetX11SelectionString()

void glfwSetX11SelectionString ( const char *  string)
Parameters
[in]stringA UTF-8 encoded string.
Errors
Possible errors include GLFW_NOT_INITIALIZED and GLFW_PLATFORM_ERROR.
Pointer lifetime
The specified string is copied before this function returns.
Thread safety
This function must only be called from the main thread.
See also
Clipboard input and output
glfwGetX11SelectionString
glfwSetClipboardString
Since
Added in version 3.3.

◆ glfwGetX11SelectionString()

const char * glfwGetX11SelectionString ( void  )

If the selection is empty or if its contents cannot be converted, NULL is returned and a GLFW_FORMAT_UNAVAILABLE error is generated.

Returns
The contents of the selection as a UTF-8 encoded string, or NULL if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED and GLFW_PLATFORM_ERROR.
Pointer lifetime
The returned string is allocated and freed by GLFW. You should not free it yourself. It is valid until the next call to glfwGetX11SelectionString or glfwSetX11SelectionString, or until the library is terminated.
Thread safety
This function must only be called from the main thread.
See also
Clipboard input and output
glfwSetX11SelectionString
glfwGetClipboardString
Since
Added in version 3.3.

◆ glfwGetGLXContext()

GLXContext glfwGetGLXContext ( GLFWwindow window)
Returns
The GLXContext of the specified window, or NULL if an error occurred.
Errors
Possible errors include GLFW_NO_WINDOW_CONTEXT and GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.0.

◆ glfwGetGLXWindow()

GLXWindow glfwGetGLXWindow ( GLFWwindow window)
Returns
The GLXWindow of the specified window, or None if an error occurred.
Errors
Possible errors include GLFW_NO_WINDOW_CONTEXT and GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.2.

◆ glfwGetWaylandDisplay()

struct wl_display * glfwGetWaylandDisplay ( void  )
Returns
The struct wl_display* used by GLFW, or NULL if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.2.

◆ glfwGetWaylandMonitor()

struct wl_output * glfwGetWaylandMonitor ( GLFWmonitor monitor)
Returns
The struct wl_output* of the specified monitor, or NULL if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.2.

◆ glfwGetWaylandWindow()

struct wl_surface * glfwGetWaylandWindow ( GLFWwindow window)
Returns
The main struct wl_surface* of the specified window, or NULL if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.2.

◆ glfwGetEGLDisplay()

EGLDisplay glfwGetEGLDisplay ( void  )
Returns
The EGLDisplay used by GLFW, or EGL_NO_DISPLAY if an error occurred.
Errors
Possible errors include GLFW_NOT_INITIALIZED.
Remarks
Because EGL is initialized on demand, this function will return EGL_NO_DISPLAY until the first context has been created via EGL.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.0.

◆ glfwGetEGLContext()

EGLContext glfwGetEGLContext ( GLFWwindow window)
Returns
The EGLContext of the specified window, or EGL_NO_CONTEXT if an error occurred.
Errors
Possible errors include GLFW_NO_WINDOW_CONTEXT and GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.0.

◆ glfwGetEGLSurface()

EGLSurface glfwGetEGLSurface ( GLFWwindow window)
Returns
The EGLSurface of the specified window, or EGL_NO_SURFACE if an error occurred.
Errors
Possible errors include GLFW_NO_WINDOW_CONTEXT and GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.0.

◆ glfwGetOSMesaColorBuffer()

int glfwGetOSMesaColorBuffer ( GLFWwindow window,
int *  width,
int *  height,
int *  format,
void **  buffer 
)
Parameters
[in]windowThe window whose color buffer to retrieve.
[out]widthWhere to store the width of the color buffer, or NULL.
[out]heightWhere to store the height of the color buffer, or NULL.
[out]formatWhere to store the OSMesa pixel format of the color buffer, or NULL.
[out]bufferWhere to store the address of the color buffer, or NULL.
Returns
GLFW_TRUE if successful, or GLFW_FALSE if an error occurred.
Errors
Possible errors include GLFW_NO_WINDOW_CONTEXT and GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.3.

◆ glfwGetOSMesaDepthBuffer()

int glfwGetOSMesaDepthBuffer ( GLFWwindow window,
int *  width,
int *  height,
int *  bytesPerValue,
void **  buffer 
)
Parameters
[in]windowThe window whose depth buffer to retrieve.
[out]widthWhere to store the width of the depth buffer, or NULL.
[out]heightWhere to store the height of the depth buffer, or NULL.
[out]bytesPerValueWhere to store the number of bytes per depth buffer element, or NULL.
[out]bufferWhere to store the address of the depth buffer, or NULL.
Returns
GLFW_TRUE if successful, or GLFW_FALSE if an error occurred.
Errors
Possible errors include GLFW_NO_WINDOW_CONTEXT and GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.3.

◆ glfwGetOSMesaContext()

OSMesaContext glfwGetOSMesaContext ( GLFWwindow window)
Returns
The OSMesaContext of the specified window, or NULL if an error occurred.
Errors
Possible errors include GLFW_NO_WINDOW_CONTEXT and GLFW_NOT_INITIALIZED.
Thread safety
This function may be called from any thread. Access is not synchronized.
Since
Added in version 3.3.