Native access

## 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...
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...
MirConnection * | glfwGetMirDisplay (void)
| Returns the `MirConnection*` used by GLFW. More...
int | glfwGetMirMonitor (GLFWmonitor *monitor)
| Returns the Mir output ID of the specified monitor. More...
MirSurface * | glfwGetMirWindow (GLFWwindow *window)
| Returns the `MirSurface*` 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...

## Detailed 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 exactly one 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`
- `GLFW_EXPOSE_NATIVE_MIR`

The available context API macros are:

- `GLFW_EXPOSE_NATIVE_WGL`
- `GLFW_EXPOSE_NATIVE_NSGL`
- `GLFW_EXPOSE_NATIVE_GLX`
- `GLFW_EXPOSE_NATIVE_EGL`

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.

## Function Documentation

CGDirectDisplayID glfwGetCocoaMonitor | ( | GLFWmonitor * | monitor | ) |

Returns
  The `CGDirectDisplayID` of the specified monitor, or `kCGNullDirectDisplay` if an error occurred.

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

Since
  Added in version 3.1.

id glfwGetCocoaWindow | ( | GLFWwindow * | window | ) |

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

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

Since
  Added in version 3.0.

EGLContext glfwGetEGLContext | ( | GLFWwindow * | window | ) |

Returns
  The `EGLContext` of the specified window, or `EGL_NO_CONTEXT` if an error occurred.

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

Since
  Added in version 3.0.

EGLDisplay glfwGetEGLDisplay | ( | void |  | ) |

Returns
  The `EGLDisplay` used by GLFW, or `EGL_NO_DISPLAY` if an error occurred.

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

Since
  Added in version 3.0.

EGLSurface glfwGetEGLSurface | ( | GLFWwindow * | window | ) |

Returns
  The `EGLSurface` of the specified window, or `EGL_NO_SURFACE` if an error occurred.

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

Since
  Added in version 3.0.

GLXContext glfwGetGLXContext | ( | GLFWwindow * | window | ) |

Returns
  The `GLXContext` of the specified window, or `NULL` if an error occurred.

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

Since
  Added in version 3.0.

GLXWindow glfwGetGLXWindow | ( | GLFWwindow * | window | ) |

Returns
  The `GLXWindow` of the specified window, or `None` if an error occurred.

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

Since
  Added in version 3.2.

MirConnection* glfwGetMirDisplay | ( | void |  | ) |

Returns
  The `MirConnection*` used by GLFW, or `NULL` if an error occurred.

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

Since
  Added in version 3.2.

int glfwGetMirMonitor | ( | GLFWmonitor * | monitor | ) |

Returns
  The Mir output ID of the specified monitor, or zero if an error occurred.

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

Since
  Added in version 3.2.

MirSurface* glfwGetMirWindow | ( | GLFWwindow * | window | ) |

Returns
  The `MirSurface*` of the specified window, or `NULL` if an error occurred.

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

Since
  Added in version 3.2.

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

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

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

Since
  Added in version 3.0.

struct wl_display* glfwGetWaylandDisplay | ( | void |  | ) |

Returns
  The `struct wl_display*` used by GLFW, or `NULL` if an error occurred.

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

Since
  Added in version 3.2.

struct wl_output* glfwGetWaylandMonitor | ( | GLFWmonitor * | monitor | ) |

Returns
  The `struct wl_output*` of the specified monitor, or `NULL` if an error occurred.

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

Since
  Added in version 3.2.

struct wl_surface* glfwGetWaylandWindow | ( | GLFWwindow * | window | ) |

Returns
  The main `struct wl_surface*` of the specified window, or `NULL` if an error occurred.

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

Since
  Added in version 3.2.

HGLRC glfwGetWGLContext | ( | GLFWwindow * | window | ) |

Returns
  The `HGLRC` of the specified window, or `NULL` if an error occurred.

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

Since
  Added in version 3.0.

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.

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

Since
  Added in version 3.1.

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.

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

Since
  Added in version 3.1.

HWND glfwGetWin32Window | ( | GLFWwindow * | window | ) |

Returns
  The `HWND` of the specified window, or `NULL` if an error occurred.

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

Since
  Added in version 3.0.

RRCrtc glfwGetX11Adapter | ( | GLFWmonitor * | monitor | ) |

Returns
  The `RRCrtc` of the specified monitor, or `None` if an error occurred.

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

Since
  Added in version 3.1.

Display* glfwGetX11Display | ( | void |  | ) |

Returns
  The `Display` used by GLFW, or `NULL` if an error occurred.

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

Since
  Added in version 3.0.

RROutput glfwGetX11Monitor | ( | GLFWmonitor * | monitor | ) |

Returns
  The `RROutput` of the specified monitor, or `None` if an error occurred.

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

Since
  Added in version 3.1.

Window glfwGetX11Window | ( | GLFWwindow * | window | ) |

Returns
  The `Window` of the specified window, or `None` if an error occurred.

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

Since
  Added in version 3.0.