VirtualBox

source: vbox/trunk/include/VBox/HostServices/glxext.h@ 79497

Last change on this file since 79497 was 76585, checked in by vboxsync, 6 years ago

*: scm --fix-header-guard-endif

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
File size: 32.0 KB
Line 
1
2#ifndef VBOX_INCLUDED_HostServices_glxext_h
3#define VBOX_INCLUDED_HostServices_glxext_h
4#ifndef RT_WITHOUT_PRAGMA_ONCE
5# pragma once
6#endif
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12/*
13** Copyright (c) 2007 The Khronos Group Inc.
14**
15** Permission is hereby granted, free of charge, to any person obtaining a
16** copy of this software and/or associated documentation files (the
17** "Materials"), to deal in the Materials without restriction, including
18** without limitation the rights to use, copy, modify, merge, publish,
19** distribute, sublicense, and/or sell copies of the Materials, and to
20** permit persons to whom the Materials are furnished to do so, subject to
21** the following conditions:
22**
23** The above copyright notice and this permission notice shall be included
24** in all copies or substantial portions of the Materials.
25**
26** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
27** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
29** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
30** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
31** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
32** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
33*/
34
35#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
36#define WIN32_LEAN_AND_MEAN 1
37#include <iprt/win/windows.h>
38#endif
39
40#ifndef APIENTRY
41#define APIENTRY
42#endif
43#ifndef APIENTRYP
44#define APIENTRYP APIENTRY *
45#endif
46#ifndef GLAPI
47#define GLAPI extern
48#endif
49
50/*************************************************************/
51
52/* Header file version number, required by OpenGL ABI for Linux */
53/* glxext.h last updated 2007/04/21 */
54/* Current version at http://www.opengl.org/registry/ */
55#define GLX_GLXEXT_VERSION 19
56
57#ifndef GLX_VERSION_1_3
58#define GLX_WINDOW_BIT 0x00000001
59#define GLX_PIXMAP_BIT 0x00000002
60#define GLX_PBUFFER_BIT 0x00000004
61#define GLX_RGBA_BIT 0x00000001
62#define GLX_COLOR_INDEX_BIT 0x00000002
63#define GLX_PBUFFER_CLOBBER_MASK 0x08000000
64#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
65#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
66#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
67#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
68#define GLX_AUX_BUFFERS_BIT 0x00000010
69#define GLX_DEPTH_BUFFER_BIT 0x00000020
70#define GLX_STENCIL_BUFFER_BIT 0x00000040
71#define GLX_ACCUM_BUFFER_BIT 0x00000080
72#define GLX_CONFIG_CAVEAT 0x20
73#define GLX_X_VISUAL_TYPE 0x22
74#define GLX_TRANSPARENT_TYPE 0x23
75#define GLX_TRANSPARENT_INDEX_VALUE 0x24
76#define GLX_TRANSPARENT_RED_VALUE 0x25
77#define GLX_TRANSPARENT_GREEN_VALUE 0x26
78#define GLX_TRANSPARENT_BLUE_VALUE 0x27
79#define GLX_TRANSPARENT_ALPHA_VALUE 0x28
80#define GLX_DONT_CARE 0xFFFFFFFF
81#define GLX_NONE 0x8000
82#define GLX_SLOW_CONFIG 0x8001
83#define GLX_TRUE_COLOR 0x8002
84#define GLX_DIRECT_COLOR 0x8003
85#define GLX_PSEUDO_COLOR 0x8004
86#define GLX_STATIC_COLOR 0x8005
87#define GLX_GRAY_SCALE 0x8006
88#define GLX_STATIC_GRAY 0x8007
89#define GLX_TRANSPARENT_RGB 0x8008
90#define GLX_TRANSPARENT_INDEX 0x8009
91#define GLX_VISUAL_ID 0x800B
92#define GLX_SCREEN 0x800C
93#define GLX_NON_CONFORMANT_CONFIG 0x800D
94#define GLX_DRAWABLE_TYPE 0x8010
95#define GLX_RENDER_TYPE 0x8011
96#define GLX_X_RENDERABLE 0x8012
97#define GLX_FBCONFIG_ID 0x8013
98#define GLX_RGBA_TYPE 0x8014
99#define GLX_COLOR_INDEX_TYPE 0x8015
100#define GLX_MAX_PBUFFER_WIDTH 0x8016
101#define GLX_MAX_PBUFFER_HEIGHT 0x8017
102#define GLX_MAX_PBUFFER_PIXELS 0x8018
103#define GLX_PRESERVED_CONTENTS 0x801B
104#define GLX_LARGEST_PBUFFER 0x801C
105#define GLX_WIDTH 0x801D
106#define GLX_HEIGHT 0x801E
107#define GLX_EVENT_MASK 0x801F
108#define GLX_DAMAGED 0x8020
109#define GLX_SAVED 0x8021
110#define GLX_WINDOW 0x8022
111#define GLX_PBUFFER 0x8023
112#define GLX_PBUFFER_HEIGHT 0x8040
113#define GLX_PBUFFER_WIDTH 0x8041
114#endif
115
116#ifndef GLX_VERSION_1_4
117#define GLX_SAMPLE_BUFFERS 100000
118#define GLX_SAMPLES 100001
119#endif
120
121#ifndef GLX_ARB_get_proc_address
122#endif
123
124#ifndef GLX_ARB_multisample
125#define GLX_SAMPLE_BUFFERS_ARB 100000
126#define GLX_SAMPLES_ARB 100001
127#endif
128
129#ifndef GLX_ARB_fbconfig_float
130#define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9
131#define GLX_RGBA_FLOAT_BIT_ARB 0x00000004
132#endif
133
134#ifndef GLX_SGIS_multisample
135#define GLX_SAMPLE_BUFFERS_SGIS 100000
136#define GLX_SAMPLES_SGIS 100001
137#endif
138
139#ifndef GLX_EXT_visual_info
140#define GLX_X_VISUAL_TYPE_EXT 0x22
141#define GLX_TRANSPARENT_TYPE_EXT 0x23
142#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
143#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
144#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
145#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
146#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
147#define GLX_NONE_EXT 0x8000
148#define GLX_TRUE_COLOR_EXT 0x8002
149#define GLX_DIRECT_COLOR_EXT 0x8003
150#define GLX_PSEUDO_COLOR_EXT 0x8004
151#define GLX_STATIC_COLOR_EXT 0x8005
152#define GLX_GRAY_SCALE_EXT 0x8006
153#define GLX_STATIC_GRAY_EXT 0x8007
154#define GLX_TRANSPARENT_RGB_EXT 0x8008
155#define GLX_TRANSPARENT_INDEX_EXT 0x8009
156#endif
157
158#ifndef GLX_SGI_swap_control
159#endif
160
161#ifndef GLX_SGI_video_sync
162#endif
163
164#ifndef GLX_SGI_make_current_read
165#endif
166
167#ifndef GLX_SGIX_video_source
168#endif
169
170#ifndef GLX_EXT_visual_rating
171#define GLX_VISUAL_CAVEAT_EXT 0x20
172#define GLX_SLOW_VISUAL_EXT 0x8001
173#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
174/* reuse GLX_NONE_EXT */
175#endif
176
177#ifndef GLX_EXT_import_context
178#define GLX_SHARE_CONTEXT_EXT 0x800A
179#define GLX_VISUAL_ID_EXT 0x800B
180#define GLX_SCREEN_EXT 0x800C
181#endif
182
183#ifndef GLX_SGIX_fbconfig
184#define GLX_WINDOW_BIT_SGIX 0x00000001
185#define GLX_PIXMAP_BIT_SGIX 0x00000002
186#define GLX_RGBA_BIT_SGIX 0x00000001
187#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
188#define GLX_DRAWABLE_TYPE_SGIX 0x8010
189#define GLX_RENDER_TYPE_SGIX 0x8011
190#define GLX_X_RENDERABLE_SGIX 0x8012
191#define GLX_FBCONFIG_ID_SGIX 0x8013
192#define GLX_RGBA_TYPE_SGIX 0x8014
193#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
194/* reuse GLX_SCREEN_EXT */
195#endif
196
197#ifndef GLX_SGIX_pbuffer
198#define GLX_PBUFFER_BIT_SGIX 0x00000004
199#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000
200#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001
201#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002
202#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004
203#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008
204#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010
205#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020
206#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040
207#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080
208#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100
209#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016
210#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017
211#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018
212#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019
213#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A
214#define GLX_PRESERVED_CONTENTS_SGIX 0x801B
215#define GLX_LARGEST_PBUFFER_SGIX 0x801C
216#define GLX_WIDTH_SGIX 0x801D
217#define GLX_HEIGHT_SGIX 0x801E
218#define GLX_EVENT_MASK_SGIX 0x801F
219#define GLX_DAMAGED_SGIX 0x8020
220#define GLX_SAVED_SGIX 0x8021
221#define GLX_WINDOW_SGIX 0x8022
222#define GLX_PBUFFER_SGIX 0x8023
223#endif
224
225#ifndef GLX_SGI_cushion
226#endif
227
228#ifndef GLX_SGIX_video_resize
229#define GLX_SYNC_FRAME_SGIX 0x00000000
230#define GLX_SYNC_SWAP_SGIX 0x00000001
231#endif
232
233#ifndef GLX_SGIX_dmbuffer
234#define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024
235#endif
236
237#ifndef GLX_SGIX_swap_group
238#endif
239
240#ifndef GLX_SGIX_swap_barrier
241#endif
242
243#ifndef GLX_SGIS_blended_overlay
244#define GLX_BLENDED_RGBA_SGIS 0x8025
245#endif
246
247#ifndef GLX_SGIS_shared_multisample
248#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
249#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
250#endif
251
252#ifndef GLX_SUN_get_transparent_index
253#endif
254
255#ifndef GLX_3DFX_multisample
256#define GLX_SAMPLE_BUFFERS_3DFX 0x8050
257#define GLX_SAMPLES_3DFX 0x8051
258#endif
259
260#ifndef GLX_MESA_copy_sub_buffer
261#endif
262
263#ifndef GLX_MESA_pixmap_colormap
264#endif
265
266#ifndef GLX_MESA_release_buffers
267#endif
268
269#ifndef GLX_MESA_set_3dfx_mode
270#define GLX_3DFX_WINDOW_MODE_MESA 0x1
271#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
272#endif
273
274#ifndef GLX_SGIX_visual_select_group
275#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028
276#endif
277
278#ifndef GLX_OML_swap_method
279#define GLX_SWAP_METHOD_OML 0x8060
280#define GLX_SWAP_EXCHANGE_OML 0x8061
281#define GLX_SWAP_COPY_OML 0x8062
282#define GLX_SWAP_UNDEFINED_OML 0x8063
283#endif
284
285#ifndef GLX_OML_sync_control
286#endif
287
288#ifndef GLX_NV_float_buffer
289#define GLX_FLOAT_COMPONENTS_NV 0x20B0
290#endif
291
292#ifndef GLX_SGIX_hyperpipe
293#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
294#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
295#define GLX_BAD_HYPERPIPE_SGIX 92
296#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
297#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
298#define GLX_PIPE_RECT_SGIX 0x00000001
299#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
300#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003
301#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
302#define GLX_HYPERPIPE_ID_SGIX 0x8030
303#endif
304
305#ifndef GLX_MESA_agp_offset
306#endif
307
308#ifndef GLX_EXT_fbconfig_packed_float
309#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
310#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
311#endif
312
313#ifndef GLX_EXT_framebuffer_sRGB
314#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
315#endif
316
317#ifndef GLX_EXT_texture_from_pixmap
318#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
319#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
320#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
321#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
322#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
323#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
324#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
325#define GLX_Y_INVERTED_EXT 0x20D4
326#define GLX_TEXTURE_FORMAT_EXT 0x20D5
327#define GLX_TEXTURE_TARGET_EXT 0x20D6
328#define GLX_MIPMAP_TEXTURE_EXT 0x20D7
329#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
330#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
331#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
332#define GLX_TEXTURE_1D_EXT 0x20DB
333#define GLX_TEXTURE_2D_EXT 0x20DC
334#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
335#define GLX_FRONT_LEFT_EXT 0x20DE
336#define GLX_FRONT_RIGHT_EXT 0x20DF
337#define GLX_BACK_LEFT_EXT 0x20E0
338#define GLX_BACK_RIGHT_EXT 0x20E1
339#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT
340#define GLX_BACK_EXT GLX_BACK_LEFT_EXT
341#define GLX_AUX0_EXT 0x20E2
342#define GLX_AUX1_EXT 0x20E3
343#define GLX_AUX2_EXT 0x20E4
344#define GLX_AUX3_EXT 0x20E5
345#define GLX_AUX4_EXT 0x20E6
346#define GLX_AUX5_EXT 0x20E7
347#define GLX_AUX6_EXT 0x20E8
348#define GLX_AUX7_EXT 0x20E9
349#define GLX_AUX8_EXT 0x20EA
350#define GLX_AUX9_EXT 0x20EB
351#endif
352
353
354/*************************************************************/
355
356#ifndef GLX_ARB_get_proc_address
357typedef void (*__GLXextFuncPtr)(void);
358#endif
359
360#ifndef GLX_SGIX_video_source
361typedef XID GLXVideoSourceSGIX;
362#endif
363
364#ifndef GLX_SGIX_fbconfig
365typedef XID GLXFBConfigIDSGIX;
366typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
367#endif
368
369#ifndef GLX_SGIX_pbuffer
370typedef XID GLXPbufferSGIX;
371typedef struct {
372 int type;
373 unsigned long serial; /* # of last request processed by server */
374 Bool send_event; /* true if this came for SendEvent request */
375 Display *display; /* display the event was read from */
376 GLXDrawable drawable; /* i.d. of Drawable */
377 int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
378 int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
379 unsigned int mask; /* mask indicating which buffers are affected*/
380 int x, y;
381 int width, height;
382 int count; /* if nonzero, at least this many more */
383} GLXBufferClobberEventSGIX;
384#endif
385
386#ifndef GLEXT_64_TYPES_DEFINED
387/* This code block is duplicated in glxext.h, so must be protected */
388#define GLEXT_64_TYPES_DEFINED
389/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
390/* (as used in the GLX_OML_sync_control extension). */
391#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
392#include <inttypes.h>
393#elif defined(__sun__) || defined(__digital__)
394#include <inttypes.h>
395#if defined(__STDC__)
396#if defined(__arch64__)
397typedef long int int64_t;
398typedef unsigned long int uint64_t;
399#else
400typedef long long int int64_t;
401typedef unsigned long long int uint64_t;
402#endif /* __arch64__ */
403#endif /* __STDC__ */
404#elif defined( __VMS )
405#include <inttypes.h>
406#elif defined(__SCO__) || defined(__USLC__)
407#include <stdint.h>
408#elif defined(__UNIXOS2__) || defined(__SOL64__)
409typedef long int int32_t;
410typedef long long int int64_t;
411typedef unsigned long long int uint64_t;
412#elif defined(_WIN32) && defined(__GNUC__)
413#include <stdint.h>
414#elif defined(_WIN32)
415typedef __int32 int32_t;
416typedef __int64 int64_t;
417typedef unsigned __int64 uint64_t;
418#else
419#include <inttypes.h> /* Fallback option */
420#endif
421#endif
422
423#ifndef GLX_VERSION_1_3
424#define GLX_VERSION_1_3 1
425#ifdef GLX_GLXEXT_PROTOTYPES
426extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *);
427extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *);
428extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *);
429extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig);
430extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *);
431extern void glXDestroyWindow (Display *, GLXWindow);
432extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *);
433extern void glXDestroyPixmap (Display *, GLXPixmap);
434extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *);
435extern void glXDestroyPbuffer (Display *, GLXPbuffer);
436extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *);
437extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool);
438extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext);
439extern GLXDrawable glXGetCurrentReadDrawable (void);
440extern Display * glXGetCurrentDisplay (void);
441extern int glXQueryContext (Display *, GLXContext, int, int *);
442extern void glXSelectEvent (Display *, GLXDrawable, unsigned long);
443extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *);
444#endif /* GLX_GLXEXT_PROTOTYPES */
445typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
446typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
447typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
448typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
449typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
450typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
451typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
452typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
453typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
454typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
455typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
456typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
457typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
458typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
459typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void);
460typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
461typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
462typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
463#endif
464
465#ifndef GLX_VERSION_1_4
466#define GLX_VERSION_1_4 1
467#ifdef GLX_GLXEXT_PROTOTYPES
468extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *);
469#endif /* GLX_GLXEXT_PROTOTYPES */
470typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName);
471#endif
472
473#ifndef GLX_ARB_get_proc_address
474#define GLX_ARB_get_proc_address 1
475#ifdef GLX_GLXEXT_PROTOTYPES
476extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *);
477#endif /* GLX_GLXEXT_PROTOTYPES */
478typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName);
479#endif
480
481#ifndef GLX_ARB_multisample
482#define GLX_ARB_multisample 1
483#endif
484
485#ifndef GLX_ARB_fbconfig_float
486#define GLX_ARB_fbconfig_float 1
487#endif
488
489#ifndef GLX_SGIS_multisample
490#define GLX_SGIS_multisample 1
491#endif
492
493#ifndef GLX_EXT_visual_info
494#define GLX_EXT_visual_info 1
495#endif
496
497#ifndef GLX_SGI_swap_control
498#define GLX_SGI_swap_control 1
499#ifdef GLX_GLXEXT_PROTOTYPES
500extern int glXSwapIntervalSGI (int);
501#endif /* GLX_GLXEXT_PROTOTYPES */
502typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval);
503#endif
504
505#ifndef GLX_SGI_video_sync
506#define GLX_SGI_video_sync 1
507#ifdef GLX_GLXEXT_PROTOTYPES
508extern int glXGetVideoSyncSGI (unsigned int *);
509extern int glXWaitVideoSyncSGI (int, int, unsigned int *);
510#endif /* GLX_GLXEXT_PROTOTYPES */
511typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count);
512typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count);
513#endif
514
515#ifndef GLX_SGI_make_current_read
516#define GLX_SGI_make_current_read 1
517#ifdef GLX_GLXEXT_PROTOTYPES
518extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext);
519extern GLXDrawable glXGetCurrentReadDrawableSGI (void);
520#endif /* GLX_GLXEXT_PROTOTYPES */
521typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
522typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void);
523#endif
524
525#ifndef GLX_SGIX_video_source
526#define GLX_SGIX_video_source 1
527#ifdef _VL_H
528#ifdef GLX_GLXEXT_PROTOTYPES
529extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode);
530extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX);
531#endif /* GLX_GLXEXT_PROTOTYPES */
532typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode);
533typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource);
534#endif /* _VL_H */
535#endif
536
537#ifndef GLX_EXT_visual_rating
538#define GLX_EXT_visual_rating 1
539#endif
540
541#ifndef GLX_EXT_import_context
542#define GLX_EXT_import_context 1
543#ifdef GLX_GLXEXT_PROTOTYPES
544extern Display * glXGetCurrentDisplayEXT (void);
545extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *);
546extern GLXContextID glXGetContextIDEXT (const GLXContext);
547extern GLXContext glXImportContextEXT (Display *, GLXContextID);
548extern void glXFreeContextEXT (Display *, GLXContext);
549#endif /* GLX_GLXEXT_PROTOTYPES */
550typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void);
551typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value);
552typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
553typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID);
554typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context);
555#endif
556
557#ifndef GLX_SGIX_fbconfig
558#define GLX_SGIX_fbconfig 1
559#ifdef GLX_GLXEXT_PROTOTYPES
560extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *);
561extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *);
562extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap);
563extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool);
564extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX);
565extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *);
566#endif /* GLX_GLXEXT_PROTOTYPES */
567typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
568typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements);
569typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap);
570typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
571typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config);
572typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis);
573#endif
574
575#ifndef GLX_SGIX_pbuffer
576#define GLX_SGIX_pbuffer 1
577#ifdef GLX_GLXEXT_PROTOTYPES
578extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *);
579extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX);
580extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *);
581extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long);
582extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *);
583#endif /* GLX_GLXEXT_PROTOTYPES */
584typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list);
585typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf);
586typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
587typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask);
588typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask);
589#endif
590
591#ifndef GLX_SGI_cushion
592#define GLX_SGI_cushion 1
593#ifdef GLX_GLXEXT_PROTOTYPES
594extern void glXCushionSGI (Display *, Window, float);
595#endif /* GLX_GLXEXT_PROTOTYPES */
596typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion);
597#endif
598
599#ifndef GLX_SGIX_video_resize
600#define GLX_SGIX_video_resize 1
601#ifdef GLX_GLXEXT_PROTOTYPES
602extern int glXBindChannelToWindowSGIX (Display *, int, int, Window);
603extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int);
604extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *);
605extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *);
606extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum);
607#endif /* GLX_GLXEXT_PROTOTYPES */
608typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window);
609typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h);
610typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
611typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
612typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype);
613#endif
614
615#ifndef GLX_SGIX_dmbuffer
616#define GLX_SGIX_dmbuffer 1
617#ifdef _DM_BUFFER_H_
618#ifdef GLX_GLXEXT_PROTOTYPES
619extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer);
620#endif /* GLX_GLXEXT_PROTOTYPES */
621typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer);
622#endif /* _DM_BUFFER_H_ */
623#endif
624
625#ifndef GLX_SGIX_swap_group
626#define GLX_SGIX_swap_group 1
627#ifdef GLX_GLXEXT_PROTOTYPES
628extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable);
629#endif /* GLX_GLXEXT_PROTOTYPES */
630typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member);
631#endif
632
633#ifndef GLX_SGIX_swap_barrier
634#define GLX_SGIX_swap_barrier 1
635#ifdef GLX_GLXEXT_PROTOTYPES
636extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int);
637extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *);
638#endif /* GLX_GLXEXT_PROTOTYPES */
639typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier);
640typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max);
641#endif
642
643#ifndef GLX_SUN_get_transparent_index
644#define GLX_SUN_get_transparent_index 1
645#ifdef GLX_GLXEXT_PROTOTYPES
646extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *);
647#endif /* GLX_GLXEXT_PROTOTYPES */
648typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex);
649#endif
650
651#ifndef GLX_MESA_copy_sub_buffer
652#define GLX_MESA_copy_sub_buffer 1
653#ifdef GLX_GLXEXT_PROTOTYPES
654extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int);
655#endif /* GLX_GLXEXT_PROTOTYPES */
656typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
657#endif
658
659#ifndef GLX_MESA_pixmap_colormap
660#define GLX_MESA_pixmap_colormap 1
661#ifdef GLX_GLXEXT_PROTOTYPES
662extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap);
663#endif /* GLX_GLXEXT_PROTOTYPES */
664typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
665#endif
666
667#ifndef GLX_MESA_release_buffers
668#define GLX_MESA_release_buffers 1
669#ifdef GLX_GLXEXT_PROTOTYPES
670extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable);
671#endif /* GLX_GLXEXT_PROTOTYPES */
672typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable);
673#endif
674
675#ifndef GLX_MESA_set_3dfx_mode
676#define GLX_MESA_set_3dfx_mode 1
677#ifdef GLX_GLXEXT_PROTOTYPES
678extern Bool glXSet3DfxModeMESA (int);
679#endif /* GLX_GLXEXT_PROTOTYPES */
680typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode);
681#endif
682
683#ifndef GLX_SGIX_visual_select_group
684#define GLX_SGIX_visual_select_group 1
685#endif
686
687#ifndef GLX_OML_swap_method
688#define GLX_OML_swap_method 1
689#endif
690
691#ifndef GLX_OML_sync_control
692#define GLX_OML_sync_control 1
693#ifdef GLX_GLXEXT_PROTOTYPES
694extern Bool glXGetSyncValuesOML (Display *, GLXDrawable, int64_t *, int64_t *, int64_t *);
695extern Bool glXGetMscRateOML (Display *, GLXDrawable, int32_t *, int32_t *);
696extern int64_t glXSwapBuffersMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t);
697extern Bool glXWaitForMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *);
698extern Bool glXWaitForSbcOML (Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *);
699#endif /* GLX_GLXEXT_PROTOTYPES */
700typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
701typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
702typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
703typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc);
704typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
705#endif
706
707#ifndef GLX_NV_float_buffer
708#define GLX_NV_float_buffer 1
709#endif
710
711#ifndef GLX_SGIX_hyperpipe
712#define GLX_SGIX_hyperpipe 1
713
714typedef struct {
715 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
716 int networkId;
717} GLXHyperpipeNetworkSGIX;
718
719typedef struct {
720 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
721 int channel;
722 unsigned int
723 participationType;
724 int timeSlice;
725} GLXHyperpipeConfigSGIX;
726
727typedef struct {
728 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
729 int srcXOrigin, srcYOrigin, srcWidth, srcHeight;
730 int destXOrigin, destYOrigin, destWidth, destHeight;
731} GLXPipeRect;
732
733typedef struct {
734 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
735 int XOrigin, YOrigin, maxHeight, maxWidth;
736} GLXPipeRectLimits;
737
738#ifdef GLX_GLXEXT_PROTOTYPES
739extern GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *, int *);
740extern int glXHyperpipeConfigSGIX (Display *, int, int, GLXHyperpipeConfigSGIX *, int *);
741extern GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *, int, int *);
742extern int glXDestroyHyperpipeConfigSGIX (Display *, int);
743extern int glXBindHyperpipeSGIX (Display *, int);
744extern int glXQueryHyperpipeBestAttribSGIX (Display *, int, int, int, void *, void *);
745extern int glXHyperpipeAttribSGIX (Display *, int, int, int, void *);
746extern int glXQueryHyperpipeAttribSGIX (Display *, int, int, int, void *);
747#endif /* GLX_GLXEXT_PROTOTYPES */
748typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes);
749typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId);
750typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes);
751typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId);
752typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId);
753typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList);
754typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList);
755typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList);
756#endif
757
758#ifndef GLX_MESA_agp_offset
759#define GLX_MESA_agp_offset 1
760#ifdef GLX_GLXEXT_PROTOTYPES
761extern unsigned int glXGetAGPOffsetMESA (const void *);
762#endif /* GLX_GLXEXT_PROTOTYPES */
763typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer);
764#endif
765
766#ifndef GLX_EXT_fbconfig_packed_float
767#define GLX_EXT_fbconfig_packed_float 1
768#endif
769
770#ifndef GLX_EXT_framebuffer_sRGB
771#define GLX_EXT_framebuffer_sRGB 1
772#endif
773
774#ifndef GLX_EXT_texture_from_pixmap
775#define GLX_EXT_texture_from_pixmap 1
776#ifdef GLX_GLXEXT_PROTOTYPES
777extern void glXBindTexImageEXT (Display *, GLXDrawable, int, const int *);
778extern void glXReleaseTexImageEXT (Display *, GLXDrawable, int);
779#endif /* GLX_GLXEXT_PROTOTYPES */
780typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list);
781typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer);
782#endif
783
784
785#ifdef __cplusplus
786}
787#endif
788
789#endif /* !VBOX_INCLUDED_HostServices_glxext_h */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette