Loading...
Searching...
No Matches
glfw3native.h
Go to the documentation of this file.
1/*************************************************************************
2 * GLFW 3.4 - www.glfw.org
3 * A library for OpenGL, window and input
4 *------------------------------------------------------------------------
5 * Copyright (c) 2002-2006 Marcus Geelnard
6 * Copyright (c) 2006-2018 Camilla Löwy <elmindreda@glfw.org>
7 *
8 * This software is provided 'as-is', without any express or implied
9 * warranty. In no event will the authors be held liable for any damages
10 * arising from the use of this software.
11 *
12 * Permission is granted to anyone to use this software for any purpose,
13 * including commercial applications, and to alter it and redistribute it
14 * freely, subject to the following restrictions:
15 *
16 * 1. The origin of this software must not be misrepresented; you must not
17 * claim that you wrote the original software. If you use this software
18 * in a product, an acknowledgment in the product documentation would
19 * be appreciated but is not required.
20 *
21 * 2. Altered source versions must be plainly marked as such, and must not
22 * be misrepresented as being the original software.
23 *
24 * 3. This notice may not be removed or altered from any source
25 * distribution.
26 *
27 *************************************************************************/
28
29#ifndef _glfw3_native_h_
30#define _glfw3_native_h_
31
32#ifdef __cplusplus
33extern "C" {
34#endif
35
36
37/*************************************************************************
38 * Doxygen documentation
39 *************************************************************************/
40
90/*************************************************************************
91 * System headers and types
92 *************************************************************************/
93
94#if !defined(GLFW_NATIVE_INCLUDE_NONE)
95
96 #if defined(GLFW_EXPOSE_NATIVE_WIN32) || defined(GLFW_EXPOSE_NATIVE_WGL)
97 /* This is a workaround for the fact that glfw3.h needs to export APIENTRY (for
98 * example to allow applications to correctly declare a GL_KHR_debug callback)
99 * but windows.h assumes no one will define APIENTRY before it does
100 */
101 #if defined(GLFW_APIENTRY_DEFINED)
102 #undef APIENTRY
103 #undef GLFW_APIENTRY_DEFINED
104 #endif
105 #include <windows.h>
106 #endif
107
108 #if defined(GLFW_EXPOSE_NATIVE_COCOA) || defined(GLFW_EXPOSE_NATIVE_NSGL)
109 #if defined(__OBJC__)
110 #import <Cocoa/Cocoa.h>
111 #else
112 #include <ApplicationServices/ApplicationServices.h>
113 #include <objc/objc.h>
114 #endif
115 #endif
116
117 #if defined(GLFW_EXPOSE_NATIVE_X11) || defined(GLFW_EXPOSE_NATIVE_GLX)
118 #include <X11/Xlib.h>
119 #include <X11/extensions/Xrandr.h>
120 #endif
121
122 #if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
123 #include <wayland-client.h>
124 #endif
125
126 #if defined(GLFW_EXPOSE_NATIVE_WGL)
127 /* WGL is declared by windows.h */
128 #endif
129 #if defined(GLFW_EXPOSE_NATIVE_NSGL)
130 /* NSGL is declared by Cocoa.h */
131 #endif
132 #if defined(GLFW_EXPOSE_NATIVE_GLX)
133 /* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by
134 * default it also acts as an OpenGL header
135 * However, glx.h will include gl.h, which will define it unconditionally
136 */
137 #if defined(GLFW_GLAPIENTRY_DEFINED)
138 #undef GLAPIENTRY
139 #undef GLFW_GLAPIENTRY_DEFINED
140 #endif
141 #include <GL/glx.h>
142 #endif
143 #if defined(GLFW_EXPOSE_NATIVE_EGL)
144 #include <EGL/egl.h>
145 #endif
146 #if defined(GLFW_EXPOSE_NATIVE_OSMESA)
147 /* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by
148 * default it also acts as an OpenGL header
149 * However, osmesa.h will include gl.h, which will define it unconditionally
150 */
151 #if defined(GLFW_GLAPIENTRY_DEFINED)
152 #undef GLAPIENTRY
153 #undef GLFW_GLAPIENTRY_DEFINED
154 #endif
155 #include <GL/osmesa.h>
156 #endif
157
158#endif /*GLFW_NATIVE_INCLUDE_NONE*/
159
160
161/*************************************************************************
162 * Functions
163 *************************************************************************/
164
165#if defined(GLFW_EXPOSE_NATIVE_WIN32)
182GLFWAPI const char* glfwGetWin32Adapter(GLFWmonitor* monitor);
183
200GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* monitor);
201
225GLFWAPI HWND glfwGetWin32Window(GLFWwindow* window);
226#endif
227
228#if defined(GLFW_EXPOSE_NATIVE_WGL)
252GLFWAPI HGLRC glfwGetWGLContext(GLFWwindow* window);
253#endif
254
255#if defined(GLFW_EXPOSE_NATIVE_COCOA)
271GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* monitor);
272
288GLFWAPI id glfwGetCocoaWindow(GLFWwindow* window);
289
305GLFWAPI id glfwGetCocoaView(GLFWwindow* window);
306#endif
307
308#if defined(GLFW_EXPOSE_NATIVE_NSGL)
324GLFWAPI id glfwGetNSGLContext(GLFWwindow* window);
325#endif
326
327#if defined(GLFW_EXPOSE_NATIVE_X11)
343GLFWAPI Display* glfwGetX11Display(void);
344
360GLFWAPI RRCrtc glfwGetX11Adapter(GLFWmonitor* monitor);
361
377GLFWAPI RROutput glfwGetX11Monitor(GLFWmonitor* monitor);
378
394GLFWAPI Window glfwGetX11Window(GLFWwindow* window);
395
416GLFWAPI void glfwSetX11SelectionString(const char* string);
417
444GLFWAPI const char* glfwGetX11SelectionString(void);
445#endif
446
447#if defined(GLFW_EXPOSE_NATIVE_GLX)
463GLFWAPI GLXContext glfwGetGLXContext(GLFWwindow* window);
464
480GLFWAPI GLXWindow glfwGetGLXWindow(GLFWwindow* window);
481#endif
482
483#if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
499GLFWAPI struct wl_display* glfwGetWaylandDisplay(void);
500
516GLFWAPI struct wl_output* glfwGetWaylandMonitor(GLFWmonitor* monitor);
517
533GLFWAPI struct wl_surface* glfwGetWaylandWindow(GLFWwindow* window);
534#endif
535
536#if defined(GLFW_EXPOSE_NATIVE_EGL)
554GLFWAPI EGLDisplay glfwGetEGLDisplay(void);
555
571GLFWAPI EGLContext glfwGetEGLContext(GLFWwindow* window);
572
588GLFWAPI EGLSurface glfwGetEGLSurface(GLFWwindow* window);
589#endif
590
591#if defined(GLFW_EXPOSE_NATIVE_OSMESA)
614GLFWAPI int glfwGetOSMesaColorBuffer(GLFWwindow* window, int* width, int* height, int* format, void** buffer);
615
638GLFWAPI int glfwGetOSMesaDepthBuffer(GLFWwindow* window, int* width, int* height, int* bytesPerValue, void** buffer);
639
655GLFWAPI OSMesaContext glfwGetOSMesaContext(GLFWwindow* window);
656#endif
657
658#ifdef __cplusplus
659}
660#endif
661
662#endif /* _glfw3_native_h_ */
663
struct GLFWmonitor GLFWmonitor
Opaque monitor object.
Definition glfw3.h:1391
RRCrtc glfwGetX11Adapter(GLFWmonitor *monitor)
Returns the RRCrtc of the specified monitor.
EGLDisplay glfwGetEGLDisplay(void)
Returns the EGLDisplay used by GLFW.
GLXWindow glfwGetGLXWindow(GLFWwindow *window)
Returns the GLXWindow of the specified window.
EGLSurface glfwGetEGLSurface(GLFWwindow *window)
Returns the EGLSurface of the specified window.
int glfwGetOSMesaColorBuffer(GLFWwindow *window, int *width, int *height, int *format, void **buffer)
Retrieves the color buffer associated with the specified window.
struct wl_output * glfwGetWaylandMonitor(GLFWmonitor *monitor)
Returns the struct wl_output* of the specified monitor.
id glfwGetNSGLContext(GLFWwindow *window)
Returns the NSOpenGLContext of the specified window.
void glfwSetX11SelectionString(const char *string)
Sets the current primary selection to the specified string.
struct wl_surface * glfwGetWaylandWindow(GLFWwindow *window)
Returns the main struct wl_surface* of the specified window.
GLXContext glfwGetGLXContext(GLFWwindow *window)
Returns the GLXContext of the specified window.
EGLContext glfwGetEGLContext(GLFWwindow *window)
Returns the EGLContext of the specified window.
int glfwGetOSMesaDepthBuffer(GLFWwindow *window, int *width, int *height, int *bytesPerValue, void **buffer)
Retrieves the depth buffer associated with the specified window.
Display * glfwGetX11Display(void)
Returns the Display used by GLFW.
id glfwGetCocoaView(GLFWwindow *window)
Returns the NSView of the specified window.
Window glfwGetX11Window(GLFWwindow *window)
Returns the Window of the specified window.
OSMesaContext glfwGetOSMesaContext(GLFWwindow *window)
Returns the OSMesaContext of the specified window.
RROutput glfwGetX11Monitor(GLFWmonitor *monitor)
Returns the RROutput of the specified monitor.
id glfwGetCocoaWindow(GLFWwindow *window)
Returns the NSWindow of the specified window.
const char * glfwGetWin32Monitor(GLFWmonitor *monitor)
Returns the display device name of the specified monitor.
struct wl_display * glfwGetWaylandDisplay(void)
Returns the struct wl_display* used by GLFW.
const char * glfwGetWin32Adapter(GLFWmonitor *monitor)
Returns the adapter device name of the specified monitor.
HGLRC glfwGetWGLContext(GLFWwindow *window)
Returns the HGLRC of the specified window.
const char * glfwGetX11SelectionString(void)
Returns the contents of the current primary selection as a string.
CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor *monitor)
Returns the CGDirectDisplayID of the specified monitor.
HWND glfwGetWin32Window(GLFWwindow *window)
Returns the HWND of the specified window.
struct GLFWwindow GLFWwindow
Opaque window object.
Definition glfw3.h:1403