Loading...
Searching...
No Matches
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:

- GLFW_EXPOSE_NATIVE_WIN32
- GLFW_EXPOSE_NATIVE_COCOA
- GLFW_EXPOSE_NATIVE_X11
- GLFW_EXPOSE_NATIVE_WAYLAND

The available context API macros are:

- GLFW_EXPOSE_NATIVE_WGL
- GLFW_EXPOSE_NATIVE_NSGL
- GLFW_EXPOSE_NATIVE_GLX
- GLFW_EXPOSE_NATIVE_EGL
- GLFW_EXPOSE_NATIVE_OSMESA

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
#include <GLFW/glfw3native.h>
glfw3native.h
The header of the native access functions.

## Functions

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

## 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 and GLFW_PLATFORM_UNAVAILABLE.

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 and GLFW_PLATFORM_UNAVAILABLE.

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 and GLFW_PLATFORM_UNAVAILABLE.

Remarks
  The HDC associated with the window can be queried with the GetDC function.
  HDC dc = GetDC(glfwGetWin32Window(window));
  glfwGetWin32Window
  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_NOT_INITIALIZED, GLFW_PLATFORM_UNAVAILABLE and GLFW_NO_WINDOW_CONTEXT.

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 and GLFW_PLATFORM_UNAVAILABLE.

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 and GLFW_PLATFORM_UNAVAILABLE.

Thread safety
  This function may be called from any thread. Access is not synchronized.

Since
  Added in version 3.0.

## glfwGetCocoaView()

id glfwGetCocoaView | ( | GLFWwindow * | window | ) |

Returns
  The NSView of the specified window, or nil if an error occurred.

Errors
  Possible errors include GLFW_NOT_INITIALIZED and GLFW_PLATFORM_UNAVAILABLE.

Thread safety
  This function may be called from any thread. Access is not synchronized.

Since
  Added in version 3.4.

## glfwGetNSGLContext()

id glfwGetNSGLContext | ( | GLFWwindow * | window | ) |

Returns
  The NSOpenGLContext of the specified window, or nil if an error occurred.

Errors
  Possible errors include GLFW_NOT_INITIALIZED, GLFW_PLATFORM_UNAVAILABLE and GLFW_NO_WINDOW_CONTEXT.

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 and GLFW_PLATFORM_UNAVAILABLE.

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 and GLFW_PLATFORM_UNAVAILABLE.

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 and GLFW_PLATFORM_UNAVAILABLE.

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 and GLFW_PLATFORM_UNAVAILABLE.

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] | string | A UTF-8 encoded string.

Errors
  Possible errors include GLFW_NOT_INITIALIZED, GLFW_PLATFORM_UNAVAILABLE 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, GLFW_PLATFORM_UNAVAILABLE 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_NOT_INITIALIZED, GLFW_NO_WINDOW_CONTEXT and GLFW_PLATFORM_UNAVAILABLE.

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_NOT_INITIALIZED, GLFW_NO_WINDOW_CONTEXT and GLFW_PLATFORM_UNAVAILABLE.

Thread safety
  This function may be called from any thread. Access is not synchronized.

Since
  Added in version 3.2.

## glfwGetGLXFBConfig()

int glfwGetGLXFBConfig | ( | GLFWwindow * | window,
|  | GLXFBConfig * | config )

Parameters

  [in] | window | The window whose GLXWindow to query.
  [out] | config | The GLXFBConfig of the window GLXWindow, if available.

Returns
  GLFW_TRUE if successful, or GLFW_FALSE if an error occurred.

Errors
  Possible errors include GLFW_NOT_INITIALIZED, GLFW_NO_WINDOW_CONTEXT and GLFW_PLATFORM_UNAVAILABLE.

Remarks
  GLXFBConfig is an opaque type. Unlike other GLFW functions, the `config` out parameter is not cleared on error, as core GLX does not define any invalid value.

Thread safety
  This function may be called from any thread. Access is not synchronized.

Since
  Added in version 3.5

## 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 and GLFW_PLATFORM_UNAVAILABLE.

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 and GLFW_PLATFORM_UNAVAILABLE.

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 and GLFW_PLATFORM_UNAVAILABLE.

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_NOT_INITIALIZED and GLFW_NO_WINDOW_CONTEXT.

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_NOT_INITIALIZED and GLFW_NO_WINDOW_CONTEXT.

Thread safety
  This function may be called from any thread. Access is not synchronized.

Since
  Added in version 3.0.

## glfwGetEGLConfig()

int glfwGetEGLConfig | ( | GLFWwindow * | window,
|  | EGLConfig * | config )

Parameters

  [in] | window | The window whose EGLSurface to query.
  [out] | config | The EGLConfig of the window EGLSurface, if available.

Returns
  GLFW_TRUE if successful, or GLFW_FALSE if an error occurred.

Errors
  Possible errors include GLFW_NOT_INITIALIZED and GLFW_NO_WINDOW_CONTEXT.

Remarks
  EGLConfig is an opaque type. Unlike other GLFW functions, the `config` out parameter is not cleared on error, as core EGL does not define any invalid value.

Thread safety
  This function may be called from any thread. Access is not synchronized.

Since
  Added in version 3.5.

## glfwGetOSMesaColorBuffer()

int glfwGetOSMesaColorBuffer | ( | GLFWwindow * | window,
|  | int * | width,
|  | int * | height,
|  | int * | format,
|  | void ** | buffer )

Parameters

  [in] | window | The window whose color buffer to retrieve.
  [out] | width | Where to store the width of the color buffer, or NULL.
  [out] | height | Where to store the height of the color buffer, or NULL.
  [out] | format | Where to store the OSMesa pixel format of the color buffer, or NULL.
  [out] | buffer | Where 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_NOT_INITIALIZED and GLFW_NO_WINDOW_CONTEXT.

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] | window | The window whose depth buffer to retrieve.
  [out] | width | Where to store the width of the depth buffer, or NULL.
  [out] | height | Where to store the height of the depth buffer, or NULL.
  [out] | bytesPerValue | Where to store the number of bytes per depth buffer element, or NULL.
  [out] | buffer | Where 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_NOT_INITIALIZED and GLFW_NO_WINDOW_CONTEXT.

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_NOT_INITIALIZED and GLFW_NO_WINDOW_CONTEXT.

Thread safety
  This function may be called from any thread. Access is not synchronized.

Since
  Added in version 3.3.