summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2003-11-05 05:39:58 +0000
committerKeith Packard <keithp@keithp.com>2003-11-05 05:39:58 +0000
commit0b7b69d3b678f584062ca352f60382325057d9f1 (patch)
tree0c41a4db4e446bf067e5ae4a47a3aec24b0f28b6
parent5113df7e49393afb5d9199f030b6f4e025a54039 (diff)
Change name from Apportion to Composite Clarify that root cannot be redirected. Add more error values.
-rw-r--r--COPYING4
-rw-r--r--ChangeLog15
-rw-r--r--INSTALL2
-rw-r--r--Makefile.am18
-rw-r--r--README8
-rw-r--r--composite.h30
-rw-r--r--compositeext.pc.in6
-rw-r--r--compositeproto.h50
-rw-r--r--configure.ac8
-rw-r--r--protocol37
10 files changed, 104 insertions, 74 deletions
diff --git a/COPYING b/COPYING
index 5b08aa7..4fbf9af 100644
--- a/COPYING
+++ b/COPYING
@@ -1,6 +1,6 @@
-$Id: COPYING,v 1.1 2003-10-30 04:31:19 keithp Exp $
+$Id: COPYING,v 1.2 2003-11-05 05:39:58 keithp Exp $
-Copyright © 2001,2003 Keith Packard
+Copyright © 2003 Keith Packard
Permission to use, copy, modify, distribute, and sell this software and its
documentation for any purpose is hereby granted without fee, provided that
diff --git a/ChangeLog b/ChangeLog
index 5884363..ae57758 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2003-11-04 Keith Packard <keithp@keithp.com>
+
+ * COPYING:
+ * INSTALL:
+ * Makefile.am:
+ * README:
+ * composite.h:
+ * compositeext.pc.in:
+ * compositeproto.h:
+ * configure.ac:
+ * protocol:
+ Change name from Apportion to Composite
+ Clarify that root cannot be redirected.
+ Add more error values.
+
2003-10-29 Keith Packard <keithp@keithp.com>
* COPYING:
diff --git a/INSTALL b/INSTALL
index b94098a..64b284c 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,4 +1,4 @@
-Render is built with the traditional configure script:
+CompositeExt is built with the traditional configure script:
$ ./configure --prefix=/usr/X11R6
diff --git a/Makefile.am b/Makefile.am
index f30b0e6..62c2a96 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
#
-# $Id: Makefile.am,v 1.1 2003-10-30 04:31:19 keithp Exp $
+# $Id: Makefile.am,v 1.2 2003-11-05 05:39:58 keithp Exp $
#
# Copyright © 2003 Keith Packard, Noah Levitt
#
@@ -21,17 +21,17 @@
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-apportionextincludedir = $(includedir)/X11/extensions
+compositeextincludedir = $(includedir)/X11/extensions
-apportionextinclude_HEADERS = \
- apportionproto.h \
- apportion.h
+compositeextinclude_HEADERS = \
+ compositeproto.h \
+ composite.h
-apportionextdocdir = $(datadir)/doc/apportionext
-apportionextdoc_DATA = protocol
+compositeextdocdir = $(datadir)/doc/compositeext
+compositeextdoc_DATA = protocol
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = apportionext.pc
+pkgconfig_DATA = compositeext.pc
-EXTRA_DIST = autogen.sh apportionext.pc.in $(apportionextdoc_DATA)
+EXTRA_DIST = autogen.sh compositeext.pc.in $(compositeextdoc_DATA)
diff --git a/README b/README
index 6b27bbc..9c03568 100644
--- a/README
+++ b/README
@@ -1,8 +1,8 @@
- Apportion X Extension
- Version 0.1
- 2003-10-29
+ Composite Extension
+ Version 0.1
+ 2003-11-04
-This package contains header files and documentation for the apportion X
+This package contains header files and documentation for the composite
extension. Library and server implementations are separate.
Keith Packard
diff --git a/composite.h b/composite.h
index a80eb33..a6e1fc6 100644
--- a/composite.h
+++ b/composite.h
@@ -1,5 +1,5 @@
/*
- * $Id: composite.h,v 1.1 2003-10-30 04:31:19 keithp Exp $
+ * $Id: composite.h,v 1.2 2003-11-05 05:39:58 keithp Exp $
*
* Copyright © 2003 Keith Packard
*
@@ -22,23 +22,23 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-#ifndef _APPORTION_H_
-#define _APPORTION_H_
+#ifndef _COMPOSITE_H_
+#define _COMPOSITE_H_
#include <X11/extensions/xfixeswire.h>
-#define APPORTION_NAME "Apportion"
-#define APPORTION_MAJOR 0
-#define APPORTION_MINOR 1
+#define COMPOSITE_NAME "Composite"
+#define COMPOSITE_MAJOR 0
+#define COMPOSITE_MINOR 1
-#define ApportionRedirectAutomatic 0
-#define ApportionRedirectManual 1
+#define CompositeRedirectAutomatic 0
+#define CompositeRedirectManual 1
-#define X_ApportionQueryVersion 0
-#define X_ApportionRedirectWindow 1
-#define X_ApportionRedirectSubwindows 2
-#define X_ApportionUnredirectWindow 3
-#define X_ApportionUnredirectSubwindows 4
-#define X_ApportionCreateRegionFromBorderClip 5
+#define X_CompositeQueryVersion 0
+#define X_CompositeRedirectWindow 1
+#define X_CompositeRedirectSubwindows 2
+#define X_CompositeUnredirectWindow 3
+#define X_CompositeUnredirectSubwindows 4
+#define X_CompositeCreateRegionFromBorderClip 5
-#endif /* _APPORTION_H_ */
+#endif /* _COMPOSITE_H_ */
diff --git a/compositeext.pc.in b/compositeext.pc.in
index bf2297a..6e53f0b 100644
--- a/compositeext.pc.in
+++ b/compositeext.pc.in
@@ -3,7 +3,7 @@ exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
-Name: ApportionExt
-Description: Apportion X extension headers
+Name: CompositeExt
+Description: Composite extension headers
Version: @PACKAGE_VERSION@
-Cflags: -I${includedir} @APPORTIONEXT_CFLAGS@
+Cflags: -I${includedir} @COMPOSITEEXT_CFLAGS@
diff --git a/compositeproto.h b/compositeproto.h
index 0cec4e1..005a371 100644
--- a/compositeproto.h
+++ b/compositeproto.h
@@ -1,5 +1,5 @@
/*
- * $Id: compositeproto.h,v 1.1 2003-10-30 04:31:19 keithp Exp $
+ * $Id: compositeproto.h,v 1.2 2003-11-05 05:39:58 keithp Exp $
*
* Copyright © 2003 Keith Packard
*
@@ -22,11 +22,11 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-#ifndef _APPORTIONPROTO_H_
-#define _APPORTIONPROTO_H_
+#ifndef _COMPOSITEPROTO_H_
+#define _COMPOSITEPROTO_H_
#include <X11/Xmd.h>
-#include <X11/extensions/apportion.h>
+#include <X11/extensions/composite.h>
#define Window CARD32
#define Region CARD32
@@ -36,13 +36,13 @@
*/
typedef struct {
CARD8 reqType;
- CARD8 apportionReqType;
+ CARD8 compositeReqType;
CARD16 length B16;
CARD32 majorVersion B32;
CARD32 minorVersion B32;
-} xApportionQueryVersionReq;
+} xCompositeQueryVersionReq;
-#define sz_xApportionQueryVersionReq 12
+#define sz_xCompositeQueryVersionReq 12
typedef struct {
BYTE type; /* X_Reply */
@@ -55,63 +55,63 @@ typedef struct {
CARD32 pad3 B32;
CARD32 pad4 B32;
CARD32 pad5 B32;
-} xApportionQueryVersionReply;
+} xCompositeQueryVersionReply;
-#define sz_xApportionQueryVersionReply 32
+#define sz_xCompositeQueryVersionReply 32
typedef struct {
CARD8 reqType;
- CARD8 apportionReqType;
+ CARD8 compositeReqType;
CARD16 length B16;
Window window B32;
CARD8 update;
CARD8 pad1;
CARD16 pad2 B16;
-} xApportionRedirectWindowReq;
+} xCompositeRedirectWindowReq;
-#define sz_xApportionRedirectWindowReq 12
+#define sz_xCompositeRedirectWindowReq 12
typedef struct {
CARD8 reqType;
- CARD8 apportionReqType;
+ CARD8 compositeReqType;
CARD16 length B16;
Window window B32;
CARD8 update;
CARD8 pad1;
CARD16 pad2 B16;
-} xApportionRedirectWindowsReq;
+} xCompositeRedirectWindowsReq;
-#define sz_xApportionRedirectWindowsReq 12
+#define sz_xCompositeRedirectWindowsReq 12
typedef struct {
CARD8 reqType;
- CARD8 apportionReqType;
+ CARD8 compositeReqType;
CARD16 length B16;
Window window B32;
-} xApportionUnredirectWindowReq;
+} xCompositeUnredirectWindowReq;
-#define sz_xApportionUnredirectWindowReq 8
+#define sz_xCompositeUnredirectWindowReq 8
typedef struct {
CARD8 reqType;
- CARD8 apportionReqType;
+ CARD8 compositeReqType;
CARD16 length B16;
Window window B32;
-} xApportionUnredirectWindowsReq;
+} xCompositeUnredirectWindowsReq;
-#define sz_xApportionUnredirectWindowsReq 8
+#define sz_xCompositeUnredirectWindowsReq 8
typedef struct {
CARD8 reqType;
- CARD8 apportionReqType;
+ CARD8 compositeReqType;
CARD16 length B16;
Region region B32;
Window window B32;
-} xApportionCreateRegionFromBorderClipReq;
+} xCompositeCreateRegionFromBorderClipReq;
-#define sz_xApportionCreateRegionFromBorderClipReq 12
+#define sz_xCompositeCreateRegionFromBorderClipReq 12
#undef Window
#undef Region
-#endif /* _APPORTIONPROTO_H_ */
+#endif /* _COMPOSITEPROTO_H_ */
diff --git a/configure.ac b/configure.ac
index ce4be88..afc855a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
dnl
-dnl $Id: configure.ac,v 1.1 2003-10-30 04:31:19 keithp Exp $
+dnl $Id: configure.ac,v 1.2 2003-11-05 05:39:58 keithp Exp $
dnl
dnl Copyright © 2003 Keith Packard, Noah Levitt
dnl
@@ -24,12 +24,12 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ([2.57])
-AC_INIT([apportionext], [2.0], [keithp@keithp.com], apportionext)
+AC_INIT([compositeext], [2.0], [keithp@keithp.com], compositeext)
AM_INIT_AUTOMAKE([dist-bzip2])
AM_MAINTAINER_MODE
-PKG_CHECK_MODULES(APPORTIONEXT, xextensions fixesext)
+PKG_CHECK_MODULES(COMPOSITEEXT, xextensions fixesext)
AC_OUTPUT([Makefile
- apportionext.pc])
+ compositeext.pc])
diff --git a/protocol b/protocol
index a130225..f338feb 100644
--- a/protocol
+++ b/protocol
@@ -1,6 +1,6 @@
- Apportion X Extension (Axe)
- Version 0.0
- 2003-10-24
+ Composite Extension
+ Version 0.1
+ 2003-11-04
Keith Packard
keithp@keithp.com
@@ -20,14 +20,18 @@ both early prototypes and the final design include:
+ Bill Haneman for motivating the ability to magnify occluded windows
with his work on accessibility
+ + Carsten Haitzler for Enlightenment, the original eye-candy window
+ manager which demonstrated that clever hacks are an awfully
+ close substitute for changes in the underlying system.
+
+ Jim Gettys for key insights into the relationship between damage
events and per-window pixmap usage
- + Mike Harris for the name
+ + Mike Harris and Owen Taylor for figuring out what to call it.
3. Architecture
-The apportion extension provides two related mechanisms:
+The composite extension provides two related mechanisms:
1. Per-hierarchy storage. The rendering of an entire hierarchy of windows
is redirected to off-screen storage. The pixels of that hierarchy
@@ -64,7 +68,7 @@ other applications. In any of these cases, it should be easy to ensure that
rendering has no effect on any non-redirected windows.
Instead of attempting to define new clipping modes for rendering, the
-Apportion extension instead defines ClipByChildren rendering to the parent
+Composite extension instead defines ClipByChildren rendering to the parent
to exclude regions occupied by redirected windows (either automatic or
manual). The CreateRegionFromBorderClip request can be used along with
IncludeInferiors clipping modes to restrict manual shadow updates to the
@@ -75,7 +79,7 @@ network latency should not adversely affect update latency.
4. Errors
-The apportion extension does not define any new errors.
+The composite extension does not define any new errors.
5. Types
@@ -83,7 +87,7 @@ The apportion extension does not define any new errors.
6. Events
-The apportion extension does not define any new events.
+The composite extension does not define any new events.
7. Extension Initialization
@@ -117,7 +121,7 @@ operations other than QueryVersion.
window: Window
update: UPDATETYPE
- errors: Window, Access
+ errors: Window, Access, Match
The hierarchy starting at 'window' is directed to off-screen
storage. 'automatic-update' specifies whether the contents
@@ -126,6 +130,9 @@ operations other than QueryVersion.
Access error. When all clients enabling redirection terminate,
the redirection will automatically be disabled.
+ The root window may not be redirected. Doing so results in a Match
+ error.
+
RedirectSubwindows
window: Window
@@ -140,13 +147,21 @@ operations other than QueryVersion.
window: Window
- Redirection of the specified window will be terminated
+ errors: Window, Value
+
+ Redirection of the specified window will be terminated. If
+ the specified window was not selected for redirection by the
+ current client, a 'Value' error results.
UnredirectWindows:
window: Window
- Redirection of all children of window will be terminated
+ errors: Window, Value
+
+ Redirection of all children of window will be terminated. If
+ the specified window was not selected for sub-redirection by the
+ current client, a 'Value' error results.
9. Clip lists