117ca54c3Smrg/*
268872e7fSmrg * Copyright (c) 2006, Oracle and/or its affiliates.
317ca54c3Smrg *
417ca54c3Smrg * Permission is hereby granted, free of charge, to any person obtaining a
517ca54c3Smrg * copy of this software and associated documentation files (the "Software"),
617ca54c3Smrg * to deal in the Software without restriction, including without limitation
717ca54c3Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
817ca54c3Smrg * and/or sell copies of the Software, and to permit persons to whom the
917ca54c3Smrg * Software is furnished to do so, subject to the following conditions:
1017ca54c3Smrg *
1117ca54c3Smrg * The above copyright notice and this permission notice (including the next
1217ca54c3Smrg * paragraph) shall be included in all copies or substantial portions of the
1317ca54c3Smrg * Software.
1417ca54c3Smrg *
1517ca54c3Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1617ca54c3Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1717ca54c3Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
1817ca54c3Smrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1917ca54c3Smrg * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2017ca54c3Smrg * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
2117ca54c3Smrg * DEALINGS IN THE SOFTWARE.
2217ca54c3Smrg */
2317ca54c3Smrg/*
2417ca54c3Smrg * Copyright © 2003 Keith Packard
2517ca54c3Smrg *
2617ca54c3Smrg * Permission to use, copy, modify, distribute, and sell this software and its
2717ca54c3Smrg * documentation for any purpose is hereby granted without fee, provided that
2817ca54c3Smrg * the above copyright notice appear in all copies and that both that
2917ca54c3Smrg * copyright notice and this permission notice appear in supporting
3017ca54c3Smrg * documentation, and that the name of Keith Packard not be used in
3117ca54c3Smrg * advertising or publicity pertaining to distribution of the software without
3217ca54c3Smrg * specific, written prior permission.  Keith Packard makes no
3317ca54c3Smrg * representations about the suitability of this software for any purpose.  It
3417ca54c3Smrg * is provided "as is" without express or implied warranty.
3517ca54c3Smrg *
3617ca54c3Smrg * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
3717ca54c3Smrg * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
3817ca54c3Smrg * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
3917ca54c3Smrg * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
4017ca54c3Smrg * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
4117ca54c3Smrg * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
4217ca54c3Smrg * PERFORMANCE OF THIS SOFTWARE.
4317ca54c3Smrg */
4417ca54c3Smrg
4517ca54c3Smrg#ifndef _COMPOSITEPROTO_H_
4617ca54c3Smrg#define _COMPOSITEPROTO_H_
4717ca54c3Smrg
4817ca54c3Smrg#include <X11/Xmd.h>
4917ca54c3Smrg#include <X11/extensions/composite.h>
5017ca54c3Smrg
5117ca54c3Smrg#define Window CARD32
5217ca54c3Smrg#define Region CARD32
5317ca54c3Smrg#define Pixmap CARD32
5417ca54c3Smrg
55ea1d6981Smrg/*
5617ca54c3Smrg * requests and replies
5717ca54c3Smrg */
5817ca54c3Smrgtypedef struct {
5917ca54c3Smrg    CARD8   reqType;
6017ca54c3Smrg    CARD8   compositeReqType;
61ea1d6981Smrg    CARD16  length;
62ea1d6981Smrg    CARD32  majorVersion;
63ea1d6981Smrg    CARD32  minorVersion;
6417ca54c3Smrg} xCompositeQueryVersionReq;
6517ca54c3Smrg
6617ca54c3Smrg#define sz_xCompositeQueryVersionReq   12
6717ca54c3Smrg
6817ca54c3Smrgtypedef struct {
6917ca54c3Smrg    BYTE    type;   /* X_Reply */
7017ca54c3Smrg    BYTE    pad1;
71ea1d6981Smrg    CARD16  sequenceNumber;
72ea1d6981Smrg    CARD32  length;
73ea1d6981Smrg    CARD32  majorVersion;
74ea1d6981Smrg    CARD32  minorVersion;
75ea1d6981Smrg    CARD32  pad2;
76ea1d6981Smrg    CARD32  pad3;
77ea1d6981Smrg    CARD32  pad4;
78ea1d6981Smrg    CARD32  pad5;
7917ca54c3Smrg} xCompositeQueryVersionReply;
8017ca54c3Smrg
8117ca54c3Smrg#define sz_xCompositeQueryVersionReply	32
8217ca54c3Smrg
8317ca54c3Smrgtypedef struct {
8417ca54c3Smrg    CARD8   reqType;
8517ca54c3Smrg    CARD8   compositeReqType;
86ea1d6981Smrg    CARD16  length;
87ea1d6981Smrg    Window  window;
8817ca54c3Smrg    CARD8   update;
8917ca54c3Smrg    CARD8   pad1;
90ea1d6981Smrg    CARD16  pad2;
9117ca54c3Smrg} xCompositeRedirectWindowReq;
9217ca54c3Smrg
9317ca54c3Smrg#define sz_xCompositeRedirectWindowReq	12
9417ca54c3Smrg
9517ca54c3Smrgtypedef struct {
9617ca54c3Smrg    CARD8   reqType;
9717ca54c3Smrg    CARD8   compositeReqType;
98ea1d6981Smrg    CARD16  length;
99ea1d6981Smrg    Window  window;
10017ca54c3Smrg    CARD8   update;
10117ca54c3Smrg    CARD8   pad1;
102ea1d6981Smrg    CARD16  pad2;
10317ca54c3Smrg} xCompositeRedirectSubwindowsReq;
10417ca54c3Smrg
10517ca54c3Smrg#define sz_xCompositeRedirectSubwindowsReq	    12
10617ca54c3Smrg
10717ca54c3Smrgtypedef struct {
10817ca54c3Smrg    CARD8   reqType;
10917ca54c3Smrg    CARD8   compositeReqType;
110ea1d6981Smrg    CARD16  length;
111ea1d6981Smrg    Window  window;
11217ca54c3Smrg    CARD8   update;
11317ca54c3Smrg    CARD8   pad1;
114ea1d6981Smrg    CARD16  pad2;
11517ca54c3Smrg} xCompositeUnredirectWindowReq;
11617ca54c3Smrg
11717ca54c3Smrg#define sz_xCompositeUnredirectWindowReq    12
11817ca54c3Smrg
11917ca54c3Smrgtypedef struct {
12017ca54c3Smrg    CARD8   reqType;
12117ca54c3Smrg    CARD8   compositeReqType;
122ea1d6981Smrg    CARD16  length;
123ea1d6981Smrg    Window  window;
12417ca54c3Smrg    CARD8   update;
12517ca54c3Smrg    CARD8   pad1;
126ea1d6981Smrg    CARD16  pad2;
12717ca54c3Smrg} xCompositeUnredirectSubwindowsReq;
12817ca54c3Smrg
12917ca54c3Smrg#define sz_xCompositeUnredirectSubwindowsReq   12
13017ca54c3Smrg
13117ca54c3Smrgtypedef struct {
13217ca54c3Smrg    CARD8   reqType;
13317ca54c3Smrg    CARD8   compositeReqType;
134ea1d6981Smrg    CARD16  length;
135ea1d6981Smrg    Region  region;
136ea1d6981Smrg    Window  window;
13717ca54c3Smrg} xCompositeCreateRegionFromBorderClipReq;
13817ca54c3Smrg
13917ca54c3Smrg#define sz_xCompositeCreateRegionFromBorderClipReq  12
14017ca54c3Smrg
14117ca54c3Smrg/* Version 0.2 additions */
14217ca54c3Smrg
14317ca54c3Smrgtypedef struct {
14417ca54c3Smrg    CARD8   reqType;
14517ca54c3Smrg    CARD8   compositeReqType;
14617ca54c3Smrg    CARD16  length;
147ea1d6981Smrg    Window  window;
148ea1d6981Smrg    Pixmap  pixmap;
14917ca54c3Smrg} xCompositeNameWindowPixmapReq;
15017ca54c3Smrg
15117ca54c3Smrg#define sz_xCompositeNameWindowPixmapReq	    12
15217ca54c3Smrg
15317ca54c3Smrg/* Version 0.3 additions */
15417ca54c3Smrg
15517ca54c3Smrgtypedef struct {
15617ca54c3Smrg    CARD8   reqType;
15717ca54c3Smrg    CARD8   compositeReqType;
158ea1d6981Smrg    CARD16  length;
159ea1d6981Smrg    Window  window;
16017ca54c3Smrg} xCompositeGetOverlayWindowReq;
16117ca54c3Smrg
16217ca54c3Smrg#define sz_xCompositeGetOverlayWindowReq sizeof(xCompositeGetOverlayWindowReq)
16317ca54c3Smrg
16417ca54c3Smrgtypedef struct {
16517ca54c3Smrg    BYTE    type;   /* X_Reply */
16617ca54c3Smrg    BYTE    pad1;
167ea1d6981Smrg    CARD16  sequenceNumber;
168ea1d6981Smrg    CARD32  length;
169ea1d6981Smrg    Window  overlayWin;
170ea1d6981Smrg    CARD32  pad2;
171ea1d6981Smrg    CARD32  pad3;
172ea1d6981Smrg    CARD32  pad4;
173ea1d6981Smrg    CARD32  pad5;
174ea1d6981Smrg    CARD32  pad6;
17517ca54c3Smrg} xCompositeGetOverlayWindowReply;
17617ca54c3Smrg
17717ca54c3Smrg#define sz_xCompositeGetOverlayWindowReply sizeof(xCompositeGetOverlayWindowReply)
17817ca54c3Smrg
17917ca54c3Smrgtypedef struct {
18017ca54c3Smrg    CARD8   reqType;
18117ca54c3Smrg    CARD8   compositeReqType;
182ea1d6981Smrg    CARD16  length;
183ea1d6981Smrg    Window  window;
18417ca54c3Smrg} xCompositeReleaseOverlayWindowReq;
18517ca54c3Smrg
18617ca54c3Smrg#define sz_xCompositeReleaseOverlayWindowReq sizeof(xCompositeReleaseOverlayWindowReq)
18717ca54c3Smrg
18817ca54c3Smrg#undef Window
18917ca54c3Smrg#undef Region
19017ca54c3Smrg#undef Pixmap
19117ca54c3Smrg
19217ca54c3Smrg#endif /* _COMPOSITEPROTO_H_ */
193