VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/xorg-server-1.3.0.0/compint.h@ 78406

Last change on this file since 78406 was 25078, checked in by vboxsync, 15 years ago

Additions/x11/x11include: exported and set eol-style on new headers

  • Property svn:eol-style set to native
File size: 8.1 KB
Line 
1/*
2 * $Id$
3 *
4 * Copyright © 2006 Sun Microsystems
5 *
6 * Permission to use, copy, modify, distribute, and sell this software and its
7 * documentation for any purpose is hereby granted without fee, provided that
8 * the above copyright notice appear in all copies and that both that
9 * copyright notice and this permission notice appear in supporting
10 * documentation, and that the name of Sun Microsystems not be used in
11 * advertising or publicity pertaining to distribution of the software without
12 * specific, written prior permission. Sun Microsystems makes no
13 * representations about the suitability of this software for any purpose. It
14 * is provided "as is" without express or implied warranty.
15 *
16 * SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
18 * EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
19 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
20 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
21 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
22 * PERFORMANCE OF THIS SOFTWARE.
23 *
24 * Copyright © 2003 Keith Packard
25 *
26 * Permission to use, copy, modify, distribute, and sell this software and its
27 * documentation for any purpose is hereby granted without fee, provided that
28 * the above copyright notice appear in all copies and that both that
29 * copyright notice and this permission notice appear in supporting
30 * documentation, and that the name of Keith Packard not be used in
31 * advertising or publicity pertaining to distribution of the software without
32 * specific, written prior permission. Keith Packard makes no
33 * representations about the suitability of this software for any purpose. It
34 * is provided "as is" without express or implied warranty.
35 *
36 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
37 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
38 * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
39 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
40 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
41 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
42 * PERFORMANCE OF THIS SOFTWARE.
43 */
44
45#ifdef HAVE_DIX_CONFIG_H
46#include <dix-config.h>
47#endif
48
49#ifndef _COMPINT_H_
50#define _COMPINT_H_
51
52#include "misc.h"
53#include "scrnintstr.h"
54#include "os.h"
55#include "regionstr.h"
56#include "validate.h"
57#include "windowstr.h"
58#include "input.h"
59#include "resource.h"
60#include "colormapst.h"
61#include "cursorstr.h"
62#include "dixstruct.h"
63#include "gcstruct.h"
64#include "servermd.h"
65#include "dixevents.h"
66#include "globals.h"
67#include "picturestr.h"
68#include "extnsionst.h"
69#include "mi.h"
70#include "damage.h"
71#include "damageextint.h"
72#include "xfixes.h"
73#include <X11/extensions/compositeproto.h>
74#include <assert.h>
75
76/*
77 * enable this for debugging
78
79 #define COMPOSITE_DEBUG
80 */
81
82typedef struct _CompClientWindow {
83 struct _CompClientWindow *next;
84 XID id;
85 int update;
86} CompClientWindowRec, *CompClientWindowPtr;
87
88typedef struct _CompWindow {
89 RegionRec borderClip;
90 DamagePtr damage; /* for automatic update mode */
91 Bool damageRegistered;
92 Bool damaged;
93 int update;
94 CompClientWindowPtr clients;
95 int oldx;
96 int oldy;
97 PixmapPtr pOldPixmap;
98 int borderClipX, borderClipY;
99} CompWindowRec, *CompWindowPtr;
100
101#define COMP_ORIGIN_INVALID 0x80000000
102
103typedef struct _CompSubwindows {
104 int update;
105 CompClientWindowPtr clients;
106} CompSubwindowsRec, *CompSubwindowsPtr;
107
108#ifndef COMP_INCLUDE_RGB24_VISUAL
109#define COMP_INCLUDE_RGB24_VISUAL 0
110#endif
111
112typedef struct _CompOverlayClientRec *CompOverlayClientPtr;
113
114typedef struct _CompOverlayClientRec {
115 CompOverlayClientPtr pNext;
116 ClientPtr pClient;
117 ScreenPtr pScreen;
118 XID resource;
119} CompOverlayClientRec;
120
121typedef struct _CompScreen {
122 PositionWindowProcPtr PositionWindow;
123 CopyWindowProcPtr CopyWindow;
124 CreateWindowProcPtr CreateWindow;
125 DestroyWindowProcPtr DestroyWindow;
126 RealizeWindowProcPtr RealizeWindow;
127 UnrealizeWindowProcPtr UnrealizeWindow;
128 PaintWindowProcPtr PaintWindowBackground;
129 ClipNotifyProcPtr ClipNotify;
130 /*
131 * Called from ConfigureWindow, these
132 * three track changes to the offscreen storage
133 * geometry
134 */
135 MoveWindowProcPtr MoveWindow;
136 ResizeWindowProcPtr ResizeWindow;
137 ChangeBorderWidthProcPtr ChangeBorderWidth;
138 /*
139 * Reparenting has an effect on Subwindows redirect
140 */
141 ReparentWindowProcPtr ReparentWindow;
142
143 /*
144 * Colormaps for new visuals better not get installed
145 */
146 InstallColormapProcPtr InstallColormap;
147
148 ScreenBlockHandlerProcPtr BlockHandler;
149 CloseScreenProcPtr CloseScreen;
150 Bool damaged;
151 int numAlternateVisuals;
152 VisualID *alternateVisuals;
153
154 WindowPtr pOverlayWin;
155 CompOverlayClientPtr pOverlayClients;
156
157} CompScreenRec, *CompScreenPtr;
158
159extern int CompScreenPrivateIndex;
160extern int CompWindowPrivateIndex;
161extern int CompSubwindowsPrivateIndex;
162
163#define GetCompScreen(s) ((CompScreenPtr) ((s)->devPrivates[CompScreenPrivateIndex].ptr))
164#define GetCompWindow(w) ((CompWindowPtr) ((w)->devPrivates[CompWindowPrivateIndex].ptr))
165#define GetCompSubwindows(w) ((CompSubwindowsPtr) ((w)->devPrivates[CompSubwindowsPrivateIndex].ptr))
166
167extern RESTYPE CompositeClientWindowType;
168extern RESTYPE CompositeClientSubwindowsType;
169
170/*
171 * compalloc.c
172 */
173
174void
175compReportDamage (DamagePtr pDamage, RegionPtr pRegion, void *closure);
176
177Bool
178compRedirectWindow (ClientPtr pClient, WindowPtr pWin, int update);
179
180void
181compFreeClientWindow (WindowPtr pWin, XID id);
182
183int
184compUnredirectWindow (ClientPtr pClient, WindowPtr pWin, int update);
185
186int
187compRedirectSubwindows (ClientPtr pClient, WindowPtr pWin, int update);
188
189void
190compFreeClientSubwindows (WindowPtr pWin, XID id);
191
192int
193compUnredirectSubwindows (ClientPtr pClient, WindowPtr pWin, int update);
194
195int
196compRedirectOneSubwindow (WindowPtr pParent, WindowPtr pWin);
197
198int
199compUnredirectOneSubwindow (WindowPtr pParent, WindowPtr pWin);
200
201Bool
202compAllocPixmap (WindowPtr pWin);
203
204void
205compFreePixmap (WindowPtr pWin);
206
207Bool
208compReallocPixmap (WindowPtr pWin, int x, int y,
209 unsigned int w, unsigned int h, int bw);
210
211/*
212 * compext.c
213 */
214
215void
216CompositeExtensionInit (void);
217
218/*
219 * compinit.c
220 */
221
222Bool
223CompositeRegisterAlternateVisuals (ScreenPtr pScreen,
224 VisualID *vids, int nVisuals);
225
226Bool
227compScreenInit (ScreenPtr pScreen);
228
229/*
230 * compwindow.c
231 */
232
233#ifdef COMPOSITE_DEBUG
234void
235compCheckTree (ScreenPtr pScreen);
236#else
237#define compCheckTree(s)
238#endif
239
240void
241compSetPixmap (WindowPtr pWin, PixmapPtr pPixmap);
242
243Bool
244compCheckRedirect (WindowPtr pWin);
245
246Bool
247compPositionWindow (WindowPtr pWin, int x, int y);
248
249Bool
250compRealizeWindow (WindowPtr pWin);
251
252Bool
253compUnrealizeWindow (WindowPtr pWin);
254
255void
256compPaintWindowBackground (WindowPtr pWin, RegionPtr pRegion, int what);
257
258void
259compClipNotify (WindowPtr pWin, int dx, int dy);
260
261void
262compMoveWindow (WindowPtr pWin, int x, int y, WindowPtr pSib, VTKind kind);
263
264void
265compResizeWindow (WindowPtr pWin, int x, int y,
266 unsigned int w, unsigned int h, WindowPtr pSib);
267
268void
269compChangeBorderWidth (WindowPtr pWin, unsigned int border_width);
270
271void
272compReparentWindow (WindowPtr pWin, WindowPtr pPriorParent);
273
274Bool
275compCreateWindow (WindowPtr pWin);
276
277Bool
278compDestroyWindow (WindowPtr pWin);
279
280void
281compSetRedirectBorderClip (WindowPtr pWin, RegionPtr pRegion);
282
283RegionPtr
284compGetRedirectBorderClip (WindowPtr pWin);
285
286void
287compCopyWindow (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
288
289void
290compWindowUpdate (WindowPtr pWin);
291
292void
293deleteCompOverlayClientsForScreen (ScreenPtr pScreen);
294
295int
296ProcCompositeGetOverlayWindow (ClientPtr client);
297
298int
299ProcCompositeReleaseOverlayWindow (ClientPtr client);
300
301int
302SProcCompositeGetOverlayWindow (ClientPtr client);
303
304int
305SProcCompositeReleaseOverlayWindow (ClientPtr client);
306
307WindowPtr
308CompositeRealChildHead (WindowPtr pWin);
309
310int
311DeleteWindowNoInputDevices(pointer value, XID wid);
312
313#endif /* _COMPINT_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