VirtualBox

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

最後變更 在這個檔案從103415是 40349,由 vboxsync 提交於 13 年 前

Additions/xorg: support X.Org Server 1.12.

  • 屬性 svn:eol-style 設為 native
檔案大小: 8.8 KB
 
1/*
2 * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 * DEALINGS IN THE SOFTWARE.
22 *
23 * Copyright © 2003 Keith Packard
24 *
25 * Permission to use, copy, modify, distribute, and sell this software and its
26 * documentation for any purpose is hereby granted without fee, provided that
27 * the above copyright notice appear in all copies and that both that
28 * copyright notice and this permission notice appear in supporting
29 * documentation, and that the name of Keith Packard not be used in
30 * advertising or publicity pertaining to distribution of the software without
31 * specific, written prior permission. Keith Packard makes no
32 * representations about the suitability of this software for any purpose. It
33 * is provided "as is" without express or implied warranty.
34 *
35 * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
36 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
37 * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
38 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
39 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
40 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
41 * PERFORMANCE OF THIS SOFTWARE.
42 */
43
44#ifdef HAVE_DIX_CONFIG_H
45#include <dix-config.h>
46#endif
47
48#ifndef _COMPINT_H_
49#define _COMPINT_H_
50
51#include "misc.h"
52#include "scrnintstr.h"
53#include "os.h"
54#include "regionstr.h"
55#include "validate.h"
56#include "windowstr.h"
57#include "input.h"
58#include "resource.h"
59#include "colormapst.h"
60#include "cursorstr.h"
61#include "dixstruct.h"
62#include "gcstruct.h"
63#include "servermd.h"
64#include "dixevents.h"
65#include "globals.h"
66#include "picturestr.h"
67#include "extnsionst.h"
68#include "privates.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 ClipNotifyProcPtr ClipNotify;
129 /*
130 * Called from ConfigureWindow, these
131 * three track changes to the offscreen storage
132 * geometry
133 */
134 ConfigNotifyProcPtr ConfigNotify;
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 /*
149 * Fake backing store via automatic redirection
150 */
151 ChangeWindowAttributesProcPtr ChangeWindowAttributes;
152
153 ScreenBlockHandlerProcPtr BlockHandler;
154 CloseScreenProcPtr CloseScreen;
155 int numAlternateVisuals;
156 VisualID *alternateVisuals;
157
158 WindowPtr pOverlayWin;
159 Window overlayWid;
160 CompOverlayClientPtr pOverlayClients;
161
162 GetImageProcPtr GetImage;
163 SourceValidateProcPtr SourceValidate;
164} CompScreenRec, *CompScreenPtr;
165
166extern DevPrivateKeyRec CompScreenPrivateKeyRec;
167#define CompScreenPrivateKey (&CompScreenPrivateKeyRec)
168
169extern DevPrivateKeyRec CompWindowPrivateKeyRec;
170#define CompWindowPrivateKey (&CompWindowPrivateKeyRec)
171
172extern DevPrivateKeyRec CompSubwindowsPrivateKeyRec;
173#define CompSubwindowsPrivateKey (&CompSubwindowsPrivateKeyRec)
174
175#define GetCompScreen(s) ((CompScreenPtr) \
176 dixLookupPrivate(&(s)->devPrivates, CompScreenPrivateKey))
177#define GetCompWindow(w) ((CompWindowPtr) \
178 dixLookupPrivate(&(w)->devPrivates, CompWindowPrivateKey))
179#define GetCompSubwindows(w) ((CompSubwindowsPtr) \
180 dixLookupPrivate(&(w)->devPrivates, CompSubwindowsPrivateKey))
181
182extern RESTYPE CompositeClientWindowType;
183extern RESTYPE CompositeClientSubwindowsType;
184extern RESTYPE CompositeClientOverlayType;
185
186/*
187 * compalloc.c
188 */
189
190Bool
191compRedirectWindow (ClientPtr pClient, WindowPtr pWin, int update);
192
193void
194compFreeClientWindow (WindowPtr pWin, XID id);
195
196int
197compUnredirectWindow (ClientPtr pClient, WindowPtr pWin, int update);
198
199int
200compRedirectSubwindows (ClientPtr pClient, WindowPtr pWin, int update);
201
202void
203compFreeClientSubwindows (WindowPtr pWin, XID id);
204
205int
206compUnredirectSubwindows (ClientPtr pClient, WindowPtr pWin, int update);
207
208int
209compRedirectOneSubwindow (WindowPtr pParent, WindowPtr pWin);
210
211int
212compUnredirectOneSubwindow (WindowPtr pParent, WindowPtr pWin);
213
214Bool
215compAllocPixmap (WindowPtr pWin);
216
217void
218compSetParentPixmap (WindowPtr pWin);
219
220void
221compRestoreWindow (WindowPtr pWin, PixmapPtr pPixmap);
222
223Bool
224compReallocPixmap (WindowPtr pWin, int x, int y,
225 unsigned int w, unsigned int h, int bw);
226
227/*
228 * compext.c
229 */
230
231void
232CompositeExtensionInit (void);
233
234/*
235 * compinit.c
236 */
237
238Bool
239compScreenInit (ScreenPtr pScreen);
240
241/*
242 * compoverlay.c
243 */
244
245void
246compFreeOverlayClient (CompOverlayClientPtr pOcToDel);
247
248CompOverlayClientPtr
249compFindOverlayClient (ScreenPtr pScreen, ClientPtr pClient);
250
251CompOverlayClientPtr
252compCreateOverlayClient (ScreenPtr pScreen, ClientPtr pClient);
253
254Bool
255compCreateOverlayWindow (ScreenPtr pScreen);
256
257void
258compDestroyOverlayWindow (ScreenPtr pScreen);
259
260/*
261 * compwindow.c
262 */
263
264#ifdef COMPOSITE_DEBUG
265void
266compCheckTree (ScreenPtr pScreen);
267#else
268#define compCheckTree(s)
269#endif
270
271PictFormatPtr
272compWindowFormat (WindowPtr pWin);
273
274void
275compSetPixmap (WindowPtr pWin, PixmapPtr pPixmap);
276
277Bool
278compCheckRedirect (WindowPtr pWin);
279
280Bool
281compPositionWindow (WindowPtr pWin, int x, int y);
282
283Bool
284compRealizeWindow (WindowPtr pWin);
285
286Bool
287compUnrealizeWindow (WindowPtr pWin);
288
289void
290compClipNotify (WindowPtr pWin, int dx, int dy);
291
292void
293compMoveWindow (WindowPtr pWin, int x, int y, WindowPtr pSib, VTKind kind);
294
295void
296compResizeWindow (WindowPtr pWin, int x, int y,
297 unsigned int w, unsigned int h, WindowPtr pSib);
298
299void
300compChangeBorderWidth (WindowPtr pWin, unsigned int border_width);
301
302void
303compReparentWindow (WindowPtr pWin, WindowPtr pPriorParent);
304
305Bool
306compCreateWindow (WindowPtr pWin);
307
308Bool
309compDestroyWindow (WindowPtr pWin);
310
311void
312compSetRedirectBorderClip (WindowPtr pWin, RegionPtr pRegion);
313
314RegionPtr
315compGetRedirectBorderClip (WindowPtr pWin);
316
317void
318compCopyWindow (WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
319
320void
321compPaintChildrenToWindow (WindowPtr pWin);
322
323WindowPtr
324CompositeRealChildHead (WindowPtr pWin);
325
326int
327DeleteWindowNoInputDevices(pointer value, XID wid);
328
329int
330compConfigNotify(WindowPtr pWin, int x, int y, int w, int h,
331 int bw, WindowPtr pSib);
332
333void PanoramiXCompositeInit (void);
334void PanoramiXCompositeReset (void);
335
336#endif /* _COMPINT_H_ */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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