summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-01-09 10:42:31 -0800
committerEric Anholt <eric@anholt.net>2007-01-09 10:42:31 -0800
commitdd2133540f8dd0f0f66ecf24e01113184045af83 (patch)
tree0be916df31e5d7f26ffd12521e1256fb866cdc43
parentea2c1d120e58e3eb5f2d8eedb3c32b2cfa052366 (diff)
downloadxorg-proto-compositeproto-dd2133540f8dd0f0f66ecf24e01113184045af83.tar.gz
Update protocol spec for 0.3 -> 0.4 rename and new 0.3 request.
The original overlay window text was from Deron Johnson, but I moved it around to be where I understand the pieces of the description were meant to go.
-rw-r--r--compositeproto.txt78
1 files changed, 74 insertions, 4 deletions
diff --git a/compositeproto.txt b/compositeproto.txt
index aab857b..77b1b85 100644
--- a/compositeproto.txt
+++ b/compositeproto.txt
@@ -1,9 +1,14 @@
Composite Extension
- Version 0.3
- 2006-1-22
+ Version 0.4
+ 2006-2-24
Keith Packard
keithp@keithp.com
+ Version 0.3
+ 2006-5-13
+ Deron Johnson
+ deron.johnson@sun.com
+
1. Introduction
Many user interface operations would benefit from having pixel contents of
@@ -65,6 +70,8 @@ may be done with the Damage extension.
The off-screen storage includes the window contents, its borders and the
contents of all descendants.
+3.1 NameWindowPixmap
+
Version 0.2 of the protocol introduces a mechanism for associating an XID
with the off-screen pixmap used to store these contents. This can be used
to hold onto window contents after the window is unmapped (and hence animate
@@ -97,7 +104,37 @@ GrabServer/UngrabServer will permit atomic sequences that can update the
screen without artifact. As all of these operations are asynchronous,
network latency should not adversely affect update latency.
-Version 0.3 of the protocol adds the coordinate transformation redirection
+3.2 Composite Overlay Window
+
+Version 0.3 of the protocol adds the Composite Overlay Window, which
+provides compositing managers with a surface on which to draw without
+interference. This window is always above normal windows and is always
+below the screen saver window. It is an InputOutput window whose width
+and height are the screen dimensions. Its visual is the root visual
+and its border width is zero. Attempts to redirect it using the
+composite extension are ignored. This window does not appear in the
+reply of the QueryTree request. It is also an override redirect window.
+These last two features make it invisible to window managers and other X11
+clients. The only way to access the XID of this window is via the
+CompositeGetOverlayWindow request. Initially, the Composite Overlay
+Window is unmapped.
+
+CompositeGetOverlayWindow returns the XID of the Composite Overlay
+Window. If the window has not yet been mapped, it is mapped by this
+request. When all clients who have called this request have terminated
+their X11 connections the window is unmapped.
+
+Composite managers may render directly to the Composite Overlay
+Window, or they may reparent other windows to be children of this
+window and render to these. Multiple clients may render to the
+Composite Overlay Window, create child windows of it, reshape it, and
+redefine its input region, but the specific arbitration rules followed
+by these clients is not defined by this specification; these policies
+should be defined by the clients themselves.
+
+3.3 Coordinate transform redirection
+
+Version 0.4 of the protocol adds the coordinate transformation redirection
portions of the protocol which externalize the relationship between
parent and child positions with respect to pointer coordinates.
@@ -251,7 +288,40 @@ operations other than QueryVersion.
window contents. Generates a 'Match' error if 'window' is not
redirected or is not visible.
-11. External coordinate transformation (0.3 and later)
+11. Composite Overlay Window (0.3 and later)
+
+ CompositeGetOverlayWindow
+
+ window: Window
+
+ ->
+
+ overlayWin: Window
+
+ This request returns the XID of the Composite Overlay Window for
+ the screen specified by the argument 'window'. This request
+ indicates that the client wishes to use the Composite Overlay
+ Window of this screen. If this Composite Overlay Window has not
+ yet been mapped, it is mapped by this request.
+
+ The Composite Overlay Window for a particular screen will be
+ unmapped when all clients who have invoked this request have
+ also invoked CompositeReleaseOverlayWindow for that screen. Also,
+ CompositeReleaseOverlayWindow for a screen will be implicitly
+ called when a client using the Composite Overlay Window on that
+ screen terminates its X11 connection.
+
+
+ CompositeReleaseOverlayWindow
+
+ window: Window
+
+ This request specifies that the client is no longer using the
+ Composite Overlay Window on the screen specified by the
+ argument 'window'. A screen's Composite Overlay Window is
+ unmapped when there are no longer any clients using it.
+
+12. External coordinate transformation (0.4 and later)
RedirectCoordinate