1d4401354Smrg<?xml version="1.0" encoding="utf-8"?>
2d4401354Smrg<!--
3d4401354SmrgCopyright (C) 2004 Josh Triplett.  All Rights Reserved.
4d4401354Smrg
5d4401354SmrgPermission is hereby granted, free of charge, to any person obtaining a copy
6d4401354Smrgof this software and associated documentation files (the "Software"), to deal
7d4401354Smrgin the Software without restriction, including without limitation the rights
8d4401354Smrgto use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9d4401354Smrgcopies of the Software, and to permit persons to whom the Software is
10d4401354Smrgfurnished to do so, subject to the following conditions:
11d4401354Smrg
12d4401354SmrgThe above copyright notice and this permission notice shall be included in all
13d4401354Smrgcopies or substantial portions of the Software.
14d4401354Smrg
15d4401354SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16d4401354SmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17d4401354SmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18d4401354SmrgAUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19d4401354SmrgACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20d4401354SmrgWITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21d4401354Smrg
22d4401354SmrgExcept as contained in this notice, the names of the authors or their
23d4401354Smrginstitutions shall not be used in advertising or otherwise to promote the
24d4401354Smrgsale, use or other dealings in this Software without prior written
25d4401354Smrgauthorization from the authors.
2618ea056eSmrg
2718ea056eSmrgCopyright (c) 2006, Oracle and/or its affiliates.
2818ea056eSmrg
2918ea056eSmrgPermission is hereby granted, free of charge, to any person obtaining a
3018ea056eSmrgcopy of this software and associated documentation files (the "Software"),
3118ea056eSmrgto deal in the Software without restriction, including without limitation
3218ea056eSmrgthe rights to use, copy, modify, merge, publish, distribute, sublicense,
3318ea056eSmrgand/or sell copies of the Software, and to permit persons to whom the
3418ea056eSmrgSoftware is furnished to do so, subject to the following conditions:
3518ea056eSmrg
3618ea056eSmrgThe above copyright notice and this permission notice (including the next
3718ea056eSmrgparagraph) shall be included in all copies or substantial portions of the
3818ea056eSmrgSoftware.
3918ea056eSmrg
4018ea056eSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4118ea056eSmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
4218ea056eSmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
4318ea056eSmrgTHE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
4418ea056eSmrgLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
4518ea056eSmrgFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
4618ea056eSmrgDEALINGS IN THE SOFTWARE.
4718ea056eSmrg
4818ea056eSmrgCopyright © 2003 Keith Packard
4918ea056eSmrg
5018ea056eSmrgPermission to use, copy, modify, distribute, and sell this software and its
5118ea056eSmrgdocumentation for any purpose is hereby granted without fee, provided that
5218ea056eSmrgthe above copyright notice appear in all copies and that both that
5318ea056eSmrgcopyright notice and this permission notice appear in supporting
5418ea056eSmrgdocumentation, and that the name of Keith Packard not be used in
5518ea056eSmrgadvertising or publicity pertaining to distribution of the software without
5618ea056eSmrgspecific, written prior permission.  Keith Packard makes no
5718ea056eSmrgrepresentations about the suitability of this software for any purpose.  It
5818ea056eSmrgis provided "as is" without express or implied warranty.
5918ea056eSmrg
6018ea056eSmrgKEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
6118ea056eSmrgINCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
6218ea056eSmrgEVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
6318ea056eSmrgCONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
6418ea056eSmrgDATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
6518ea056eSmrgTORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
6618ea056eSmrgPERFORMANCE OF THIS SOFTWARE.
6718ea056eSmrg
68d4401354Smrg-->
69d4401354Smrg<!-- This file describes version 0.3 of COMPOSITE. -->
70d4401354Smrg<xcb header="composite" extension-xname="Composite" extension-name="Composite"
71f591e195Smrg    major-version="0" minor-version="4">
72d4401354Smrg
73d4401354Smrg  <import>xproto</import>
74d4401354Smrg  <import>xfixes</import>
75d4401354Smrg
76d4401354Smrg  <enum name="Redirect">
77f591e195Smrg    <item name="Automatic"> <value>0</value> </item>
78f591e195Smrg    <item name="Manual">    <value>1</value> </item>
79d4401354Smrg  </enum>
80d4401354Smrg
81d4401354Smrg  <request name="QueryVersion" opcode="0">
82d4401354Smrg    <field type="CARD32" name="client_major_version" />
83d4401354Smrg    <field type="CARD32" name="client_minor_version" />
84d4401354Smrg    <reply>
85d4401354Smrg      <pad bytes="1" />
86d4401354Smrg      <field type="CARD32" name="major_version" />
87d4401354Smrg      <field type="CARD32" name="minor_version" />
88d4401354Smrg      <pad bytes="16" />
8918ea056eSmrg      <doc>
9018ea056eSmrg	<brief>The negotiated version of Composite</brief>
9118ea056eSmrg	<description>
9218ea056eSmrgThis indicates the version of Composite chosen by the server.  It will always be
9318ea056eSmrgless than or equal to the version offered by the client.
9418ea056eSmrg	</description>
9518ea056eSmrg	<field name="major_version">The major version chosen by the server.</field>
9618ea056eSmrg	<field name="minor_version">The minor version chosen by the server.</field>
9718ea056eSmrg      </doc>
98d4401354Smrg    </reply>
9918ea056eSmrg    <doc>
10018ea056eSmrg      <brief>Negotiate the version of Composite</brief>
10118ea056eSmrg      <description>
10218ea056eSmrgThis negotiates the version of the Composite extension.  It must be precede all
10318ea056eSmrgother requests using Composite.  Failure to do so will cause a BadRequest error.
10418ea056eSmrg      </description>
10518ea056eSmrg      <field name="client_major_version">The major version supported by the client.</field>
10618ea056eSmrg      <field name="client_minor_version">The minor version supported by the client.</field>
10718ea056eSmrg    </doc>
108d4401354Smrg  </request>
109d4401354Smrg
110d4401354Smrg  <request name="RedirectWindow" opcode="1">
111d4401354Smrg    <field type="WINDOW" name="window" />
112d4401354Smrg    <field type="CARD8" name="update" enum="Redirect" />
113d4401354Smrg    <pad bytes="3" />
11418ea056eSmrg    <doc>
11518ea056eSmrg      <brief>Redirect the hierarchy starting at "window" to off-screen storage.</brief>
11618ea056eSmrg      <description>
11718ea056eSmrg	The hierarchy starting at 'window' is directed to off-screen
11818ea056eSmrg	storage.  When all clients enabling redirection terminate,
11918ea056eSmrg	the redirection will automatically be disabled.
12018ea056eSmrg
12118ea056eSmrg	The root window may not be redirected. Doing so results in a Match
12218ea056eSmrg	error.
12318ea056eSmrg      </description>
12418ea056eSmrg      <field name="window">The root of the hierarchy to redirect to off-screen storage.</field>
12518ea056eSmrg      <field name="update">
12618ea056eSmrg	Whether contents are automatically mirrored to the parent window.  If one client
12718ea056eSmrg	already specifies an update type of Manual, any attempt by another to specify a
12818ea056eSmrg	mode of Manual so will result in an Access error.
12918ea056eSmrg      </field>
13018ea056eSmrg    </doc>
131d4401354Smrg  </request>
132d4401354Smrg
133d4401354Smrg  <request name="RedirectSubwindows" opcode="2">
134d4401354Smrg    <field type="WINDOW" name="window" />
135d4401354Smrg    <field type="CARD8" name="update" enum="Redirect" />
136d4401354Smrg    <pad bytes="3" />
13718ea056eSmrg    <doc>
13818ea056eSmrg      <brief>Redirect all current and future children of ‘window’</brief>
13918ea056eSmrg      <description>
14018ea056eSmrg	Hierarchies starting at all current and future children of window
14118ea056eSmrg	will be redirected as in RedirectWindow. If update is Manual,
14218ea056eSmrg	then painting of the window background during window manipulation
14318ea056eSmrg	and ClearArea requests is inhibited.
14418ea056eSmrg      </description>
14518ea056eSmrg      <field name="window">The root of the hierarchy to redirect to off-screen storage.</field>
14618ea056eSmrg      <field name="update">
14718ea056eSmrg	Whether contents are automatically mirrored to the parent window.  If one client
14818ea056eSmrg	already specifies an update type of Manual, any attempt by another to specify a
14918ea056eSmrg	mode of Manual so will result in an Access error.
15018ea056eSmrg      </field>
15118ea056eSmrg    </doc>
152d4401354Smrg  </request>
153d4401354Smrg
154d4401354Smrg  <request name="UnredirectWindow" opcode="3">
155d4401354Smrg    <field type="WINDOW" name="window" />
156d4401354Smrg    <field type="CARD8" name="update" enum="Redirect" />
157d4401354Smrg    <pad bytes="3" />
15818ea056eSmrg    <doc>
15918ea056eSmrg      <brief>Terminate redirection of the specified window.</brief>
16018ea056eSmrg      <description>
16118ea056eSmrg	Redirection of the specified window will be terminated.  This cannot be
16218ea056eSmrg	used if the window was redirected with RedirectSubwindows.
16318ea056eSmrg      </description>
16418ea056eSmrg      <field name="window">
16518ea056eSmrg	The window to terminate redirection of.  Must be redirected by the
16618ea056eSmrg	current client, or a Value error results.
16718ea056eSmrg      </field>
16818ea056eSmrg      <field name="update">
16918ea056eSmrg	The update type passed to RedirectWindows.  If this does not match the
17018ea056eSmrg	previously requested update type, a Value error results.
17118ea056eSmrg      </field>
17218ea056eSmrg    </doc>
173d4401354Smrg  </request>
174d4401354Smrg
175d4401354Smrg  <request name="UnredirectSubwindows" opcode="4">
176d4401354Smrg    <field type="WINDOW" name="window" />
177d4401354Smrg    <field type="CARD8" name="update" enum="Redirect" />
178d4401354Smrg    <pad bytes="3" />
17918ea056eSmrg    <doc>
18018ea056eSmrg      <brief>Terminate redirection of the specified window’s children</brief>
18118ea056eSmrg      <description>
18218ea056eSmrg	Redirection of all children of window will be terminated.
18318ea056eSmrg      </description>
18418ea056eSmrg      <field name="window">
18518ea056eSmrg	The window to terminate redirection of.  Must have previously been
18618ea056eSmrg	selected for sub-redirection by the current client, or a Value error
18718ea056eSmrg	results.
18818ea056eSmrg      </field>
18918ea056eSmrg      <field name="update">
19018ea056eSmrg	The update type passed to RedirectSubWindows.  If this does not match
19118ea056eSmrg	the previously requested update type, a Value error results.
19218ea056eSmrg      </field>
19318ea056eSmrg    </doc>
194d4401354Smrg  </request>
195d4401354Smrg
196d4401354Smrg  <request name="CreateRegionFromBorderClip" opcode="5">
197d4401354Smrg    <field type="REGION" name="region" />
198d4401354Smrg    <field type="WINDOW" name="window" />
199d4401354Smrg  </request>
200d4401354Smrg
201d4401354Smrg  <request name="NameWindowPixmap" opcode="6">
202d4401354Smrg    <field type="WINDOW" name="window" />
203d4401354Smrg    <field type="PIXMAP" name="pixmap" />
204d4401354Smrg  </request>
205d4401354Smrg  
206d4401354Smrg  <!-- new in version 0.3 -->
207d4401354Smrg  
208d4401354Smrg  <request name="GetOverlayWindow" opcode="7">
209d4401354Smrg    <field type="WINDOW" name="window" />
210d4401354Smrg    <reply>
211d4401354Smrg      <pad bytes="1" />
212d4401354Smrg      <field type="WINDOW" name="overlay_win" />
213d4401354Smrg      <pad bytes="20" />
214d4401354Smrg    </reply>
215d4401354Smrg  </request>
216d4401354Smrg
217d4401354Smrg  <request name="ReleaseOverlayWindow" opcode="8">
218d4401354Smrg    <field type="WINDOW" name="window" />
219d4401354Smrg  </request>
220d4401354Smrg</xcb>
221