Wise&mystical  1.0
Project about Europe
Loading...
Searching...
No Matches
glx_context.h
Go to the documentation of this file.
1//========================================================================
2// GLFW 3.4 GLX - www.glfw.org
3//------------------------------------------------------------------------
4// Copyright (c) 2002-2006 Marcus Geelnard
5// Copyright (c) 2006-2017 Camilla Löwy <elmindreda@glfw.org>
6//
7// This software is provided 'as-is', without any express or implied
8// warranty. In no event will the authors be held liable for any damages
9// arising from the use of this software.
10//
11// Permission is granted to anyone to use this software for any purpose,
12// including commercial applications, and to alter it and redistribute it
13// freely, subject to the following restrictions:
14//
15// 1. The origin of this software must not be misrepresented; you must not
16// claim that you wrote the original software. If you use this software
17// in a product, an acknowledgment in the product documentation would
18// be appreciated but is not required.
19//
20// 2. Altered source versions must be plainly marked as such, and must not
21// be misrepresented as being the original software.
22//
23// 3. This notice may not be removed or altered from any source
24// distribution.
25//
26//========================================================================
27
28#define GLX_VENDOR 1
29#define GLX_RGBA_BIT 0x00000001
30#define GLX_WINDOW_BIT 0x00000001
31#define GLX_DRAWABLE_TYPE 0x8010
32#define GLX_RENDER_TYPE 0x8011
33#define GLX_RGBA_TYPE 0x8014
34#define GLX_DOUBLEBUFFER 5
35#define GLX_STEREO 6
36#define GLX_AUX_BUFFERS 7
37#define GLX_RED_SIZE 8
38#define GLX_GREEN_SIZE 9
39#define GLX_BLUE_SIZE 10
40#define GLX_ALPHA_SIZE 11
41#define GLX_DEPTH_SIZE 12
42#define GLX_STENCIL_SIZE 13
43#define GLX_ACCUM_RED_SIZE 14
44#define GLX_ACCUM_GREEN_SIZE 15
45#define GLX_ACCUM_BLUE_SIZE 16
46#define GLX_ACCUM_ALPHA_SIZE 17
47#define GLX_SAMPLES 0x186a1
48#define GLX_VISUAL_ID 0x800b
49
50#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20b2
51#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001
52#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
53#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
54#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
55#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
56#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
57#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
58#define GLX_CONTEXT_FLAGS_ARB 0x2094
59#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
60#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
61#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252
62#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
63#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261
64#define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097
65#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0
66#define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098
67#define GLX_CONTEXT_OPENGL_NO_ERROR_ARB 0x31b3
68
69typedef XID GLXWindow;
70typedef XID GLXDrawable;
71typedef struct __GLXFBConfig* GLXFBConfig;
72typedef struct __GLXcontext* GLXContext;
73typedef void (*__GLXextproc)(void);
74
75typedef int (*PFNGLXGETFBCONFIGATTRIBPROC)(Display*,GLXFBConfig,int,int*);
76typedef const char* (*PFNGLXGETCLIENTSTRINGPROC)(Display*,int);
77typedef Bool (*PFNGLXQUERYEXTENSIONPROC)(Display*,int*,int*);
78typedef Bool (*PFNGLXQUERYVERSIONPROC)(Display*,int*,int*);
79typedef void (*PFNGLXDESTROYCONTEXTPROC)(Display*,GLXContext);
81typedef void (*PFNGLXSWAPBUFFERSPROC)(Display*,GLXDrawable);
82typedef const char* (*PFNGLXQUERYEXTENSIONSSTRINGPROC)(Display*,int);
83typedef GLXFBConfig* (*PFNGLXGETFBCONFIGSPROC)(Display*,int,int*);
85typedef __GLXextproc (* PFNGLXGETPROCADDRESSPROC)(const GLubyte *procName);
86typedef void (*PFNGLXSWAPINTERVALEXTPROC)(Display*,GLXDrawable,int);
87typedef XVisualInfo* (*PFNGLXGETVISUALFROMFBCONFIGPROC)(Display*,GLXFBConfig);
88typedef GLXWindow (*PFNGLXCREATEWINDOWPROC)(Display*,GLXFBConfig,Window,const int*);
89typedef void (*PFNGLXDESTROYWINDOWPROC)(Display*,GLXWindow);
90
91typedef int (*PFNGLXSWAPINTERVALMESAPROC)(int);
92typedef int (*PFNGLXSWAPINTERVALSGIPROC)(int);
94
95// libGL.so function pointer typedefs
96#define glXGetFBConfigs _glfw.glx.GetFBConfigs
97#define glXGetFBConfigAttrib _glfw.glx.GetFBConfigAttrib
98#define glXGetClientString _glfw.glx.GetClientString
99#define glXQueryExtension _glfw.glx.QueryExtension
100#define glXQueryVersion _glfw.glx.QueryVersion
101#define glXDestroyContext _glfw.glx.DestroyContext
102#define glXMakeCurrent _glfw.glx.MakeCurrent
103#define glXSwapBuffers _glfw.glx.SwapBuffers
104#define glXQueryExtensionsString _glfw.glx.QueryExtensionsString
105#define glXCreateNewContext _glfw.glx.CreateNewContext
106#define glXGetVisualFromFBConfig _glfw.glx.GetVisualFromFBConfig
107#define glXCreateWindow _glfw.glx.CreateWindow
108#define glXDestroyWindow _glfw.glx.DestroyWindow
109
110#define _GLFW_PLATFORM_CONTEXT_STATE _GLFWcontextGLX glx
111#define _GLFW_PLATFORM_LIBRARY_CONTEXT_STATE _GLFWlibraryGLX glx
112
113
114// GLX-specific per-context data
115//
116typedef struct _GLFWcontextGLX
117{
120
122
123// GLX-specific global data
124//
125typedef struct _GLFWlibraryGLX
126{
130
131 // dlopen handle for libGL.so.1
132 void* handle;
133
134 // GLX 1.3 functions
148
149 // GLX 1.4 and extension functions
168
170
172void _glfwTerminateGLX(void);
174 const _GLFWctxconfig* ctxconfig,
175 const _GLFWfbconfig* fbconfig);
178 const _GLFWctxconfig* ctxconfig,
179 const _GLFWfbconfig* fbconfig,
180 Visual** visual, int* depth);
181
khronos_uint8_t GLubyte
Definition: glad.h:2308
int(* PFNGLXGETFBCONFIGATTRIBPROC)(Display *, GLXFBConfig, int, int *)
Definition: glx_context.h:75
XVisualInfo *(* PFNGLXGETVISUALFROMFBCONFIGPROC)(Display *, GLXFBConfig)
Definition: glx_context.h:87
GLXContext(* PFNGLXCREATECONTEXTATTRIBSARBPROC)(Display *, GLXFBConfig, GLXContext, Bool, const int *)
Definition: glx_context.h:93
GLFWbool _glfwCreateContextGLX(_GLFWwindow *window, const _GLFWctxconfig *ctxconfig, const _GLFWfbconfig *fbconfig)
Definition: glx_context.c:446
void _glfwTerminateGLX(void)
Definition: glx_context.c:425
void(* PFNGLXDESTROYCONTEXTPROC)(Display *, GLXContext)
Definition: glx_context.h:79
__GLXextproc(* PFNGLXGETPROCADDRESSPROC)(const GLubyte *procName)
Definition: glx_context.h:85
void(* PFNGLXSWAPBUFFERSPROC)(Display *, GLXDrawable)
Definition: glx_context.h:81
struct __GLXcontext * GLXContext
Definition: glx_context.h:72
void(* __GLXextproc)(void)
Definition: glx_context.h:73
GLFWbool _glfwChooseVisualGLX(const _GLFWwndconfig *wndconfig, const _GLFWctxconfig *ctxconfig, const _GLFWfbconfig *fbconfig, Visual **visual, int *depth)
Definition: glx_context.c:637
GLXWindow(* PFNGLXCREATEWINDOWPROC)(Display *, GLXFBConfig, Window, const int *)
Definition: glx_context.h:88
Bool(* PFNGLXQUERYVERSIONPROC)(Display *, int *, int *)
Definition: glx_context.h:78
GLXContext(* PFNGLXCREATENEWCONTEXTPROC)(Display *, GLXFBConfig, int, GLXContext, Bool)
Definition: glx_context.h:84
const char *(* PFNGLXQUERYEXTENSIONSSTRINGPROC)(Display *, int)
Definition: glx_context.h:82
XID GLXWindow
Definition: glx_context.h:69
XID GLXDrawable
Definition: glx_context.h:70
Bool(* PFNGLXQUERYEXTENSIONPROC)(Display *, int *, int *)
Definition: glx_context.h:77
GLXFBConfig *(* PFNGLXGETFBCONFIGSPROC)(Display *, int, int *)
Definition: glx_context.h:83
struct __GLXFBConfig * GLXFBConfig
Definition: glx_context.h:71
GLFWbool _glfwInitGLX(void)
Definition: glx_context.c:254
int(* PFNGLXSWAPINTERVALMESAPROC)(int)
Definition: glx_context.h:91
int(* PFNGLXSWAPINTERVALSGIPROC)(int)
Definition: glx_context.h:92
void(* PFNGLXSWAPINTERVALEXTPROC)(Display *, GLXDrawable, int)
Definition: glx_context.h:86
const char *(* PFNGLXGETCLIENTSTRINGPROC)(Display *, int)
Definition: glx_context.h:76
void _glfwDestroyContextGLX(_GLFWwindow *window)
void(* PFNGLXDESTROYWINDOWPROC)(Display *, GLXWindow)
Definition: glx_context.h:89
Bool(* PFNGLXMAKECURRENTPROC)(Display *, GLXDrawable, GLXContext)
Definition: glx_context.h:80
int GLFWbool
Definition: internal.h:61
GLXContext handle
Definition: glx_context.h:118
GLXWindow window
Definition: glx_context.h:119
PFNGLXGETFBCONFIGSPROC GetFBConfigs
Definition: glx_context.h:135
PFNGLXCREATECONTEXTATTRIBSARBPROC CreateContextAttribsARB
Definition: glx_context.h:155
PFNGLXQUERYEXTENSIONSSTRINGPROC QueryExtensionsString
Definition: glx_context.h:143
GLFWbool ARB_context_flush_control
Definition: glx_context.h:167
GLFWbool ARB_create_context_robustness
Definition: glx_context.h:164
PFNGLXGETVISUALFROMFBCONFIGPROC GetVisualFromFBConfig
Definition: glx_context.h:145
GLFWbool ARB_multisample
Definition: glx_context.h:159
GLFWbool ARB_framebuffer_sRGB
Definition: glx_context.h:160
GLFWbool ARB_create_context_no_error
Definition: glx_context.h:166
GLFWbool ARB_create_context
Definition: glx_context.h:162
PFNGLXGETFBCONFIGATTRIBPROC GetFBConfigAttrib
Definition: glx_context.h:136
GLFWbool EXT_create_context_es2_profile
Definition: glx_context.h:165
PFNGLXSWAPINTERVALMESAPROC SwapIntervalMESA
Definition: glx_context.h:154
GLFWbool EXT_framebuffer_sRGB
Definition: glx_context.h:161
PFNGLXQUERYVERSIONPROC QueryVersion
Definition: glx_context.h:139
PFNGLXSWAPINTERVALSGIPROC SwapIntervalSGI
Definition: glx_context.h:152
PFNGLXDESTROYCONTEXTPROC DestroyContext
Definition: glx_context.h:140
PFNGLXQUERYEXTENSIONPROC QueryExtension
Definition: glx_context.h:138
GLFWbool MESA_swap_control
Definition: glx_context.h:158
GLFWbool EXT_swap_control
Definition: glx_context.h:157
PFNGLXMAKECURRENTPROC MakeCurrent
Definition: glx_context.h:141
GLFWbool SGI_swap_control
Definition: glx_context.h:156
PFNGLXDESTROYWINDOWPROC DestroyWindow
Definition: glx_context.h:147
PFNGLXSWAPINTERVALEXTPROC SwapIntervalEXT
Definition: glx_context.h:153
PFNGLXGETPROCADDRESSPROC GetProcAddress
Definition: glx_context.h:150
PFNGLXGETPROCADDRESSPROC GetProcAddressARB
Definition: glx_context.h:151
PFNGLXCREATENEWCONTEXTPROC CreateNewContext
Definition: glx_context.h:144
PFNGLXGETCLIENTSTRINGPROC GetClientString
Definition: glx_context.h:137
GLFWbool ARB_create_context_profile
Definition: glx_context.h:163
PFNGLXCREATEWINDOWPROC CreateWindow
Definition: glx_context.h:146
PFNGLXSWAPBUFFERSPROC SwapBuffers
Definition: glx_context.h:142