VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/7.0/X11/extensions/multibufst.h@ 17234

最後變更 在這個檔案從17234是 17234,由 vboxsync 提交於 16 年 前

Additions/x11/x11include: blast! Corrected svn:keywords property on all files as per http://linserv.germany/vbox/wiki/SvnKeywords

  • 屬性 svn:eol-style 設為 native
檔案大小: 18.5 KB
 
1/*
2 * $Xorg: multibufst.h,v 1.4 2001/02/09 02:03:24 xorgcvs Exp $
3 *
4Copyright 1989, 1998 The Open Group
5
6Permission to use, copy, modify, distribute, and sell this software and its
7documentation for any purpose is hereby granted without fee, provided that
8the above copyright notice appear in all copies and that both that
9copyright notice and this permission notice appear in supporting
10documentation.
11
12The above copyright notice and this permission notice shall be included in
13all copies or substantial portions of the Software.
14
15THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
19AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
22Except as contained in this notice, the name of The Open Group shall not be
23used in advertising or otherwise to promote the sale, use or other dealings
24in this Software without prior written authorization from The Open Group.
25 */
26
27/* $XFree86: xc/include/extensions/multibufst.h,v 3.8 2001/12/19 21:37:29 dawes Exp $ */
28
29#ifndef _MULTIBUFST_H_
30#define _MULTIBUFST_H_
31
32/*
33 * Protocol requests constants and alignment values
34 */
35
36#include "multibuf.h"
37#ifdef _MULTIBUF_SERVER_
38#include "inputstr.h"
39#endif
40
41#if !defined(UNIXCPP) || defined(ANSICPP)
42#define MbufGetReq(name,req,info) GetReq (name, req); \
43 req->reqType = info->codes->major_opcode; \
44 req->mbufReqType = X_##name;
45#else
46#define MbufGetReq(name,req,info) GetReq (name, req); \
47 req->reqType = info->codes->major_opcode; \
48 req->mbufReqType = X_/**/name;
49#endif
50
51#define Window CARD32
52#define Drawable CARD32
53#define VisualID CARD32
54#define Multibuffer CARD32
55
56typedef struct xMbufBufferInfo {
57 CARD32 visualID B32; /* associated visual */
58 CARD16 maxBuffers B16; /* maximum supported buffers */
59 CARD8 depth; /* depth of visual (redundant) */
60 CARD8 unused;
61} xMbufBufferInfo;
62#define sz_xMbufBufferInfo 8
63
64typedef struct {
65 BYTE type;
66 BYTE unused;
67 CARD16 sequenceNumber B16;
68 CARD32 buffer B32; /* affected buffer */
69 BYTE state; /* current status */
70 CARD8 unused1;
71 CARD16 unused2 B16;
72 CARD32 unused3 B32;
73 CARD32 unused4 B32;
74 CARD32 unused5 B32;
75 CARD32 unused6 B32;
76 CARD32 unused7 B32;
77} xMbufClobberNotifyEvent;
78
79typedef struct {
80 BYTE type;
81 BYTE unused;
82 CARD16 sequenceNumber B16;
83 CARD32 buffer B32; /* affected buffer */
84 CARD32 timeStamp B32; /* update time */
85 CARD32 unused1 B32;
86 CARD32 unused2 B32;
87 CARD32 unused3 B32;
88 CARD32 unused4 B32;
89 CARD32 unused5 B32;
90 CARD32 unused6 B32;
91} xMbufUpdateNotifyEvent;
92
93typedef struct {
94 CARD8 reqType; /* always codes->major_opcode */
95 CARD8 mbufReqType; /* always X_MbufGetBufferVersion */
96 CARD16 length B16;
97} xMbufGetBufferVersionReq;
98#define sz_xMbufGetBufferVersionReq 4
99
100typedef struct {
101 BYTE type; /* X_Reply */
102 CARD8 unused; /* not used */
103 CARD16 sequenceNumber B16;
104 CARD32 length B32;
105 CARD8 majorVersion; /* major version of Multi-Buffering protocol */
106 CARD8 minorVersion; /* minor version of Multi-Buffering protocol */
107 CARD16 pad1 B16;
108 CARD32 pad2 B32;
109 CARD32 pad3 B32;
110 CARD32 pad4 B32;
111 CARD32 pad5 B32;
112 CARD32 pad6 B32;
113} xMbufGetBufferVersionReply;
114#define sz_xMbufGetBufferVersionReply 32
115
116typedef struct {
117 CARD8 reqType; /* always codes->major_opcode */
118 CARD8 mbufReqType; /* always X_MbufCreateImageBuffers */
119 CARD16 length B16;
120 CARD32 window B32; /* associated window */
121 CARD8 updateAction; /* action at update */
122 CARD8 updateHint; /* hint as to frequency of updates */
123 CARD16 unused;
124} xMbufCreateImageBuffersReq; /* followed by buffer ids */
125#define sz_xMbufCreateImageBuffersReq 12
126
127typedef struct {
128 BYTE type; /* X_Reply */
129 CARD8 unused; /* not used */
130 CARD16 sequenceNumber B16;
131 CARD32 length B32;
132 CARD16 numberBuffer B16; /* number successfully allocated */
133 CARD16 unused1 B16;
134 CARD32 unused2 B32;
135 CARD32 unused3 B32;
136 CARD32 unused4 B32;
137 CARD32 unused5 B32;
138 CARD32 unused6 B32;
139} xMbufCreateImageBuffersReply;
140#define sz_xMbufCreateImageBuffersReply 32
141
142typedef struct {
143 CARD8 reqType; /* always codes->major_opcode */
144 CARD8 mbufReqType; /* always X_MbufDestroyImageBuffers */
145 CARD16 length B16;
146 CARD32 window B32; /* associated window */
147} xMbufDestroyImageBuffersReq;
148#define sz_xMbufDestroyImageBuffersReq 8
149
150typedef struct {
151 CARD8 reqType; /* always codes->major_opcode */
152 CARD8 mbufReqType; /* always X_MbufDisplayImageBuffers */
153 CARD16 length B16;
154 CARD16 minDelay B16; /* minimum time between last update and now */
155 CARD16 maxDelay B16; /* maximum time between last update and now */
156} xMbufDisplayImageBuffersReq; /* followed by list of buffers */
157#define sz_xMbufDisplayImageBuffersReq 8
158
159typedef struct {
160 CARD8 reqType; /* always codes->major_opcode */
161 CARD8 mbufReqType; /* always X_MbufSetMBufferAttributes */
162 CARD16 length B16;
163 CARD32 window B32; /* associated window */
164 CARD32 valueMask B32; /* modified entries */
165} xMbufSetMBufferAttributesReq; /* followed by values */
166#define sz_xMbufSetMBufferAttributesReq 12
167
168typedef struct {
169 CARD8 reqType; /* always codes->major_opcode */
170 CARD8 mbufReqType; /* always X_MbufGetMBufferAttributes */
171 CARD16 length B16;
172 CARD32 window B32; /* associated window */
173} xMbufGetMBufferAttributesReq;
174#define sz_xMbufGetMBufferAttributesReq 8
175
176typedef struct {
177 BYTE type; /* X_Reply */
178 CARD8 unused; /* not used */
179 CARD16 sequenceNumber B16;
180 CARD32 length B32;
181 CARD16 displayedBuffer B16; /* currently visible buffer */
182 CARD8 updateAction;
183 CARD8 updateHint;
184 CARD8 windowMode;
185 CARD8 unused0;
186 CARD16 unused1 B16;
187 CARD32 unused2 B32;
188 CARD32 unused3 B32;
189 CARD32 unused4 B32;
190 CARD32 unused5 B32;
191} xMbufGetMBufferAttributesReply;
192#define sz_xMbufGetMBufferAttributesReply 32
193
194typedef struct {
195 CARD8 reqType; /* always codes->major_opcode */
196 CARD8 mbufReqType; /* always X_MbufSetBufferAttributes */
197 CARD16 length B16;
198 CARD32 buffer B32;
199 CARD32 valueMask B32;
200} xMbufSetBufferAttributesReq; /* followed by values */
201#define sz_xMbufSetBufferAttributesReq 12
202
203typedef struct {
204 CARD8 reqType; /* always codes->major_opcode */
205 CARD8 mbufReqType; /* always X_MbufGetBufferAttributes */
206 CARD16 length B16;
207 CARD32 buffer B32;
208} xMbufGetBufferAttributesReq;
209#define sz_xMbufGetBufferAttributesReq 8
210
211typedef struct {
212 BYTE type; /* X_Reply */
213 CARD8 unused; /* not used */
214 CARD16 sequenceNumber B16;
215 CARD32 length B32;
216 CARD32 window B32;
217 CARD32 eventMask B32;
218 CARD16 bufferIndex B16;
219 CARD8 side;
220 CARD8 unused0;
221 CARD32 unused1 B32;
222 CARD32 unused2 B32;
223 CARD32 unused3 B32;
224} xMbufGetBufferAttributesReply;
225#define sz_xMbufGetBufferAttributesReply 32
226
227typedef struct {
228 CARD8 reqType; /* always codes->major_opcode */
229 CARD8 mbufReqType; /* always X_MbufGetBufferInfo */
230 CARD16 length B16;
231 Drawable drawable B32;
232} xMbufGetBufferInfoReq;
233#define sz_xMbufGetBufferInfoReq 8
234
235typedef struct {
236 BYTE type; /* X_Reply */
237 CARD8 unused; /* not used */
238 CARD16 sequenceNumber B16;
239 CARD32 length B32;
240 CARD16 normalInfo B16;
241 CARD16 stereoInfo B16;
242 CARD32 unused1 B32;
243 CARD32 unused2 B32;
244 CARD32 unused3 B32;
245 CARD32 unused4 B32;
246 CARD32 unused5 B32;
247} xMbufGetBufferInfoReply; /* followed by buffer infos */
248#define sz_xMbufGetBufferInfoReply 32
249
250
251typedef struct {
252 CARD8 reqType; /* always codes->major_opcode */
253 CARD8 mbufReqType; /* always X_MbufCreateStereoWindow */
254 CARD16 length B16;
255 CARD8 unused0;
256 CARD8 unused1;
257 CARD8 unused2;
258 CARD8 depth;
259 Window wid B32;
260 Window parent B32;
261 Multibuffer left B32; /* associated buffers */
262 Multibuffer right B32;
263 INT16 x B16;
264 INT16 y B16;
265 CARD16 width B16;
266 CARD16 height B16;
267 CARD16 borderWidth B16;
268#if defined(__cplusplus) || defined(c_plusplus)
269 CARD16 c_class B16;
270#else
271 CARD16 class B16;
272#endif
273 VisualID visual B32;
274 CARD32 mask B32;
275} xMbufCreateStereoWindowReq; /* followed by value list */
276#define sz_xMbufCreateStereoWindowReq 44
277
278typedef struct {
279 CARD8 reqType; /* always codes->major_opcode */
280 CARD8 mbufReqType; /* always X_MbufClearImageBufferArea */
281 CARD16 length B16;
282 Multibuffer buffer B32;
283 INT16 x B16;
284 INT16 y B16;
285 CARD16 width B16;
286 CARD16 height B16;
287 CARD8 unused0;
288 CARD8 unused1;
289 CARD8 unused2;
290 BOOL exposures;
291} xMbufClearImageBufferAreaReq;
292#define sz_xMbufClearImageBufferAreaReq 20
293
294#undef Window
295#undef Drawable
296#undef VisualID
297#undef Multibuffer
298
299
300#ifdef _MULTIBUF_SERVER_
301/* Macros for wrapping and unwrapping functions */
302
303#define SWAP_FUNC_VECTOR(pSTRUCT1,pSTRUCT2,DATA_TYPE,FUNC_NAME) \
304{ \
305 DATA_TYPE (* tmpFn)(); \
306 \
307 tmpFn = pSTRUCT1->FUNC_NAME; \
308 pSTRUCT1->FUNC_NAME = pSTRUCT2->FUNC_NAME; \
309 pSTRUCT2->FUNC_NAME = tmpFn; \
310}
311
312#if !defined(UNIXCPP) || defined(ANSICPP)
313#define WRAP_SCREEN_FUNC(pSCREEN,pPRIV,FUNC_NAME, PRIV_FUNC_NAME) \
314{ \
315 if ((pPRIV->funcsWrapped & FUNC_NAME##Mask) == 0) \
316 { \
317 pPRIV->FUNC_NAME = pSCREEN->FUNC_NAME; \
318 pSCREEN->FUNC_NAME = PRIV_FUNC_NAME; \
319 pPRIV->funcsWrapped |= FUNC_NAME##Mask; \
320 } \
321}
322
323#define UNWRAP_SCREEN_FUNC(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME) \
324{ \
325 SWAP_FUNC_VECTOR(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME); \
326 pPRIV->funcsWrapped &= ~(FUNC_NAME##Mask); \
327}
328
329#define REWRAP_SCREEN_FUNC(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME) \
330{ \
331 if (MB_SCREEN_PRIV(pSCREEN)->mbufWindowCount) \
332 { \
333 SWAP_FUNC_VECTOR(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME); \
334 pPRIV->funcsWrapped |= FUNC_NAME##Mask; \
335 } \
336}
337#else
338#define WRAP_SCREEN_FUNC(pSCREEN,pPRIV,FUNC_NAME, PRIV_FUNC_NAME) \
339{ \
340 if ((pPRIV->funcsWrapped & FUNC_NAME/**/Mask) == 0) \
341 { \
342 pPRIV->FUNC_NAME = pSCREEN->FUNC_NAME; \
343 pSCREEN->FUNC_NAME = PRIV_FUNC_NAME; \
344 pPRIV->funcsWrapped |= FUNC_NAME/**/Mask; \
345 } \
346}
347
348#define UNWRAP_SCREEN_FUNC(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME) \
349{ \
350 SWAP_FUNC_VECTOR(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME); \
351 pPRIV->funcsWrapped &= ~(FUNC_NAME/**/Mask); \
352}
353
354#define REWRAP_SCREEN_FUNC(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME) \
355{ \
356 if (MB_SCREEN_PRIV(pSCREEN)->mbufWindowCount) \
357 { \
358 SWAP_FUNC_VECTOR(pSCREEN,pPRIV,DATA_TYPE,FUNC_NAME); \
359 pPRIV->funcsWrapped |= FUNC_NAME/**/Mask; \
360 } \
361}
362#endif
363
364/* The _Multibuffer and _Multibuffers structures below refer to each other,
365 * so we need this forward declaration
366 */
367typedef struct _Multibuffers *MultibuffersPtr;
368
369/*
370 * per-Multibuffer data
371 */
372
373typedef struct _Multibuffer {
374 MultibuffersPtr pMultibuffers; /* associated window data */
375 Mask eventMask; /* MultibufferClobberNotifyMask|ExposureMask|MultibufferUpdateNotifyMask */
376 Mask otherEventMask; /* mask of all other clients event masks */
377 OtherClients *otherClients; /* other clients that want events */
378 int number; /* index of this buffer into array */
379 int side; /* always Mono */
380 int clobber; /* Unclobbered, PartiallyClobbered, FullClobbered */
381 PixmapPtr pPixmap; /* associated pixmap */
382} MultibufferRec, *MultibufferPtr;
383
384/*
385 * per-window data
386 */
387
388typedef struct _Multibuffers {
389 WindowPtr pWindow; /* associated window */
390 int numMultibuffer; /* count of buffers */
391 int refcnt; /* ref count for delete */
392 int displayedMultibuffer; /* currently active buffer */
393 int updateAction; /* Undefined, Background, Untouched, Copied */
394 int updateHint; /* Frequent, Intermittent, Static */
395 int windowMode; /* always Mono */
396
397 TimeStamp lastUpdate; /* time of last update */
398
399 unsigned short width, height; /* last known window size */
400 short x, y; /* for static gravity */
401
402 MultibufferPtr buffers; /* array of numMultibuffer buffers */
403} MultibuffersRec;
404
405/*
406 * per-screen data
407 */
408typedef struct _MultibufferScreen {
409 PositionWindowProcPtr PositionWindow; /* pWin, x,y */
410} MultibufferScreenRec, *MultibufferScreenPtr;
411
412/*
413 * per display-image-buffers request data.
414 */
415
416typedef struct _DisplayRequest {
417 struct _DisplayRequest *next;
418 TimeStamp activateTime;
419 ClientPtr pClient;
420 XID id;
421} DisplayRequestRec, *DisplayRequestPtr;
422
423#define DestroyWindowMask (1L<<0)
424#define PositionWindowMask (1L<<1)
425#define PostValidateTreeMask (1L<<2)
426#define ClipNotifyMask (1L<<3)
427#define WindowExposuresMask (1L<<4)
428#define CopyWindowMask (1L<<5)
429#define ClearToBackgroundMask (1L<<6)
430#define ChangeWindowAttributesMask (1L<<7)
431
432extern int MultibufferScreenIndex;
433extern int MultibufferWindowIndex;
434
435extern RESTYPE MultibufferDrawableResType;
436
437extern void MultibufferUpdate( /* pMbuffer, time */
438 MultibufferPtr /* pMultibuffer */,
439 CARD32 /* time */
440 );
441extern void MultibufferExpose( /* pMbuffer, pRegion */
442 MultibufferPtr /* pMultibuffer */,
443 RegionPtr /* pRegion */
444 );
445extern void MultibufferClobber( /* pMbuffer */
446 MultibufferPtr /* pMultibuffer */
447 );
448
449typedef struct _mbufWindow *mbufWindowPtr;
450
451/*
452 * per-buffer data
453 */
454
455#define MB_DISPLAYED_BUFFER(pMBWindow) \
456 ((pMBWindow)->buffers + (pMBWindow)->displayedMultibuffer)
457
458typedef struct _mbufBuffer {
459 mbufWindowPtr pMBWindow; /* associated window data */
460 Mask eventMask; /* client event mask */
461 Mask otherEventMask; /* union of other clients' event masks */
462 OtherClientsPtr otherClients; /* other clients that want events */
463 int number; /* index of this buffer into array */
464 int side; /* stero side: always Mono */
465 int clobber; /* clober state */
466 DrawablePtr pDrawable; /* associated drawable */
467} mbufBufferRec, *mbufBufferPtr;
468
469
470/*
471 * per-window data
472 */
473
474#define MB_WINDOW_PRIV(pWin) \
475 ((mbufWindowPtr)((pWin)->devPrivates[MultibufferWindowIndex].ptr))
476
477typedef struct _mbufWindow {
478 WindowPtr pWindow; /* associated window */
479 int numMultibuffer; /* count of buffers */
480 mbufBufferPtr buffers; /* array of (numMultibuffer) buffers */
481 int displayedMultibuffer; /* currently active buffer */
482 int updateAction; /* Undefined, Background,
483 Untouched, Copied */
484 int updateHint; /* Frequent, Intermittent, Static */
485 int windowMode; /* always Mono */
486 TimeStamp lastUpdate; /* time of last update */
487 short x, y; /* for static gravity */
488 unsigned short width, height; /* last known window size */
489 DevUnion devPrivate;
490} mbufWindowRec;
491
492
493/*
494 * per-screen data
495 */
496
497#define MB_SCREEN_PRIV(pScreen) \
498 ((mbufScreenPtr)((pScreen)->devPrivates[MultibufferScreenIndex].ptr))
499
500typedef struct _mbufScreen {
501 long mbufWindowCount; /* count of multibuffered windows */
502
503 /* Wrap pScreen->DestroyWindow */
504 DestroyWindowProcPtr DestroyWindow;
505 long funcsWrapped; /* flags which functions are wrapped */
506
507 /* Initialized by device-dependent section */
508 int nInfo; /* number of buffer info rec's */
509 xMbufBufferInfo *pInfo; /* buffer info (for Normal buffers) */
510
511 int (* CreateImageBuffers)(
512 WindowPtr /* pWin */,
513 int /* nbuf */,
514 XID * /* ids */,
515 int /* action */,
516 int /* hint */
517 );
518 void (* DestroyImageBuffers)(
519 WindowPtr /* pWin */
520 );
521 void (* DisplayImageBuffers)(
522 ScreenPtr /* pScreen */,
523 mbufBufferPtr * /* ppMBBuffer */,
524 mbufWindowPtr * /* ppMBWindow */,
525 int /* nbuf */
526 );
527 void (* ClearImageBufferArea)(
528 mbufBufferPtr /* pMBBuffer */,
529 short /* x */,
530 short /* y */,
531 unsigned short /* width */,
532 unsigned short /* height */,
533 Bool /* exposures */
534 );
535 Bool (* ChangeMBufferAttributes)( /* pMBWindow, vmask */
536 /* FIXME */
537 );
538 Bool (* ChangeBufferAttributes)( /* pMBBuffer, vmask */
539 /* FIXME */
540 );
541 void (* DeleteBufferDrawable)(
542 DrawablePtr /* pDrawable */
543 );
544 void (* WrapScreenFuncs)(
545 ScreenPtr /* pScreen */
546 );
547 void (* ResetProc)(
548 ScreenPtr /* pScreen */
549 );
550 DevUnion devPrivate;
551} mbufScreenRec, *mbufScreenPtr;
552
553
554/* Privates to mbufScreenRec */
555
556#ifdef _MULTIBUF_PIXMAP_
557#define MB_SCREEN_PRIV_PIXMAP(pScreen) \
558 ((mbufPixmapPrivPtr) MB_SCREEN_PRIV((pScreen))->devPrivate.ptr)
559
560typedef struct _mbufPixmapPriv
561{
562 /* Pointers to wrapped functions */
563 PositionWindowProcPtr PositionWindow; /* pWin, x,y */
564 long funcsWrapped; /* flags which functions are wrapped */
565} mbufPixmapPrivRec, *mbufPixmapPrivPtr;
566#endif /* _MULTIBUF_PIXMAP_ */
567
568
569#ifdef _MULTIBUF_BUFFER_
570
571extern int frameWindowPrivateIndex;
572
573#define MB_SCREEN_PRIV_BUFFER(pScreen) \
574 ((mbufBufferPrivPtr) MB_SCREEN_PRIV((pScreen))->devPrivate.ptr)
575
576typedef struct _mbufBufferPriv
577{
578 DevUnion *frameBuffer; /* Array of screen framebuffers */
579 DevUnion selectPlane; /* Plane(s) that select displayed buffer */
580
581 /*
582 * Note: subtractRgn and unionRgn may overlap. subtractRgn is a union
583 * of all the old clipLists of the windows that are displaying
584 * the backbuffer. unionRgn is the union of all the new clipLists
585 * of the same windows.
586 */
587
588 RegionRec backBuffer; /* Area of screen displaying back buffer */
589 RegionRec subtractRgn; /* Regions lost to backBuffer */
590 RegionRec unionRgn; /* Regions gained by backBuffer */
591 Bool rgnChanged; /* TRUE if "backBuffer" needs to be updated */
592
593 void (* CopyBufferBits)(); /* pMBWindow, srcBufferNum, dstBufferNum */
594 void (* DrawSelectPlane)(); /* pScreen, selectPlane, pRegion, bufferNum */
595
596 /* Pointers to wrapped functions */
597 PostValidateTreeProcPtr PostValidateTree; /* pParent, pChild, kind */
598 ClipNotifyProcPtr ClipNotify; /* pWin, dx, dy */
599 WindowExposuresProcPtr WindowExposures; /* pWin, pRegion */
600 CopyWindowProcPtr CopyWindow; /* pWin, oldPt, pOldRegion */
601 ClearToBackgroundProcPtr ClearToBackground; /* pWin, x,y,w,h, sendExpose */
602 ChangeWindowAttributesProcPtr ChangeWindowAttributes; /* pWin, vmask */
603 long funcsWrapped; /* flags which functions are wrapped */
604 unsigned inClearToBackground:1; /* used by WindowExposure */
605} mbufBufferPrivRec, *mbufBufferPrivPtr;
606#endif /* _MULTIBUF_BUFFER_ */
607
608#endif /* _MULTIBUF_SERVER_ */
609#endif /* _MULTIBUFST_H_ */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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