VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/xorg-server-1.6.5/glxscreens.h@ 68495

Last change on this file since 68495 was 49174, checked in by vboxsync, 11 years ago

Additions/x11: replace header files for X.Org Server 1.6.0 with those for version 1.6.5 due to an ABI bump in-between.

  • Property svn:eol-style set to native
File size: 5.3 KB
Line 
1#ifdef HAVE_DIX_CONFIG_H
2#include <dix-config.h>
3#endif
4
5#ifndef _GLX_screens_h_
6#define _GLX_screens_h_
7
8/*
9 * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
10 * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
11 *
12 * Permission is hereby granted, free of charge, to any person obtaining a
13 * copy of this software and associated documentation files (the "Software"),
14 * to deal in the Software without restriction, including without limitation
15 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16 * and/or sell copies of the Software, and to permit persons to whom the
17 * Software is furnished to do so, subject to the following conditions:
18 *
19 * The above copyright notice including the dates of first publication and
20 * either this permission notice or a reference to
21 * http://oss.sgi.com/projects/FreeB/
22 * shall be included in all copies or substantial portions of the Software.
23 *
24 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
25 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
27 * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
28 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
29 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30 * SOFTWARE.
31 *
32 * Except as contained in this notice, the name of Silicon Graphics, Inc.
33 * shall not be used in advertising or otherwise to promote the sale, use or
34 * other dealings in this Software without prior written authorization from
35 * Silicon Graphics, Inc.
36 */
37
38typedef struct {
39 void * (* queryHyperpipeNetworkFunc)(int, int *, int *);
40 void * (* queryHyperpipeConfigFunc)(int, int, int *, int *);
41 int (* destroyHyperpipeConfigFunc)(int, int);
42 void * (* hyperpipeConfigFunc)(int, int, int *, int *, void *);
43} __GLXHyperpipeExtensionFuncs;
44
45typedef struct {
46 int (* bindSwapBarrierFunc)(int, XID, int);
47 int (* queryMaxSwapBarriersFunc)(int);
48} __GLXSwapBarrierExtensionFuncs;
49
50void __glXHyperpipeInit(int screen, __GLXHyperpipeExtensionFuncs *funcs);
51void __glXSwapBarrierInit(int screen, __GLXSwapBarrierExtensionFuncs *funcs);
52
53typedef struct __GLXconfig __GLXconfig;
54struct __GLXconfig {
55 __GLXconfig *next;
56 GLuint doubleBufferMode;
57 GLuint stereoMode;
58
59 GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */
60 GLuint redMask, greenMask, blueMask, alphaMask;
61 GLint rgbBits; /* total bits for rgb */
62 GLint indexBits; /* total bits for colorindex */
63
64 GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits;
65 GLint depthBits;
66 GLint stencilBits;
67
68 GLint numAuxBuffers;
69
70 GLint level;
71
72 GLint pixmapMode;
73
74 /* GLX */
75 GLint visualID;
76 GLint visualType; /**< One of the GLX X visual types. (i.e.,
77 * \c GLX_TRUE_COLOR, etc.)
78 */
79
80 /* EXT_visual_rating / GLX 1.2 */
81 GLint visualRating;
82
83 /* EXT_visual_info / GLX 1.2 */
84 GLint transparentPixel;
85 /* colors are floats scaled to ints */
86 GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha;
87 GLint transparentIndex;
88
89 /* ARB_multisample / SGIS_multisample */
90 GLint sampleBuffers;
91 GLint samples;
92
93 /* SGIX_fbconfig / GLX 1.3 */
94 GLint drawableType;
95 GLint renderType;
96 GLint xRenderable;
97 GLint fbconfigID;
98
99 /* SGIX_pbuffer / GLX 1.3 */
100 GLint maxPbufferWidth;
101 GLint maxPbufferHeight;
102 GLint maxPbufferPixels;
103 GLint optimalPbufferWidth; /* Only for SGIX_pbuffer. */
104 GLint optimalPbufferHeight; /* Only for SGIX_pbuffer. */
105
106 /* SGIX_visual_select_group */
107 GLint visualSelectGroup;
108
109 /* OML_swap_method */
110 GLint swapMethod;
111
112 GLint screen;
113
114 /* EXT_texture_from_pixmap */
115 GLint bindToTextureRgb;
116 GLint bindToTextureRgba;
117 GLint bindToMipmapTexture;
118 GLint bindToTextureTargets;
119 GLint yInverted;
120};
121
122GLint glxConvertToXVisualType(int visualType);
123
124/*
125** Screen dependent data. These methods are the interface between the DIX
126** and DDX layers of the GLX server extension. The methods provide an
127** interface for context management on a screen.
128*/
129typedef struct __GLXscreen __GLXscreen;
130struct __GLXscreen {
131 void (*destroy) (__GLXscreen *screen);
132
133 __GLXcontext *(*createContext) (__GLXscreen *screen,
134 __GLXconfig *modes,
135 __GLXcontext *shareContext);
136
137 __GLXdrawable *(*createDrawable)(__GLXscreen *context,
138 DrawablePtr pDraw,
139 int type,
140 XID drawId,
141 __GLXconfig *modes);
142 int (*swapInterval) (__GLXdrawable *drawable,
143 int interval);
144
145 __GLXHyperpipeExtensionFuncs *hyperpipeFuncs;
146 __GLXSwapBarrierExtensionFuncs *swapBarrierFuncs;
147
148 ScreenPtr pScreen;
149
150 /* Linked list of valid fbconfigs for this screen. */
151 __GLXconfig *fbconfigs;
152 int numFBConfigs;
153
154 /* Subset of fbconfigs that are exposed as GLX visuals. */
155 __GLXconfig **visuals;
156 GLint numVisuals;
157
158 char *GLextensions;
159
160 char *GLXvendor;
161 char *GLXversion;
162 char *GLXextensions;
163
164 Bool (*CloseScreen)(int index, ScreenPtr pScreen);
165};
166
167
168void __glXScreenInit(__GLXscreen *screen, ScreenPtr pScreen);
169void __glXScreenDestroy(__GLXscreen *screen);
170
171#endif /* !__GLX_screens_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