summaryrefslogtreecommitdiff
path: root/protocol
diff options
context:
space:
mode:
Diffstat (limited to 'protocol')
-rw-r--r--protocol32
1 files changed, 27 insertions, 5 deletions
diff --git a/protocol b/protocol
index 7d59e16..58e255b 100644
--- a/protocol
+++ b/protocol
@@ -1,11 +1,15 @@
The DAMAGE Extension
- Protocol Version 0.0
+ Protocol Version 1.1
Document Revision 1
- 2003-11-03
+ 2007-01-08
Keith Packard
keithp@keithp.com
+ Eric Anholt
+ eric@anholt.net
+ Open Source Technology Center
+ Intel Corporation
1. Introduction
Monitoring the regions affected by rendering has wide-spread use, from
@@ -63,10 +67,23 @@ within the bounds of the window. In a system with a single frame buffer
holding all windows, this means that damage will accumulate for all
rendering operations that lie within the visible part of the window.
-The precise reason for this architecture will be made clear in the XSPLITTREE
-extension which will provide multiple pixel storage areas for the screen
+The precise reason for this architecture is to enable the Composite
+extension which provides multiple pixel storage areas for the screen
contents.
+3.1 Additions in the 1.1 version of the protocol
+
+Damage is automatically computed by the X Server for X rendering operations,
+but direct rendering extensions have allowed clients to perform rendering
+outside of the control of the X Server. The 1.1 version of the protocol
+added a request to allow direct rendering clients to report damage to a
+drawable. Some direct rendering clients, due to architectural limitations,
+always perform rendering to the root window, even in when it should be
+performed to the backing pixmap in the Composite case. To provide
+less-incorrect rendering in this cases, the direct rendering client should
+translate its damage region to screen coordinates and report the damage against
+the root window rather than the drawable.
+
4. Data types
The "Damage" object holds any accumulated damage region and reflects the
@@ -196,4 +213,9 @@ DamagePost
Reports damage of the region within the given drawable. This may be
used by direct rendering clients to report damage that the server would
- otherwise be unaware of.
+ otherwise be unaware of. The damage region is relative to the origin
+ of the drawable.
+
+ Damage posted in this way will appear in DamageNotify events as normal,
+ and also in server internal damage tracking (for shadow framebuffer
+ updates, pixmap damage, and other uses).