Add NameWindowPixmap request. Bump protocol to 0.2

This commit is contained in:
Keith Packard 2004-07-08 07:20:55 +00:00
parent 19bb2c3837
commit 734331f433
4 changed files with 56 additions and 7 deletions

View file

@ -1,4 +1,12 @@
2004-06-27 root <set EMAIL_ADDRESS environment variable>
2004-07-08 Keith Packard <keithp@keithp.com>
* composite.h:
* compositeproto.h:
* protocol:
Add NameWindowPixmap request.
Bump protocol to 0.2
2004-06-27 Eric Anholt <anholt@freedesktop.org>
* protocol:
Fix some apostrophe issues.

View file

@ -1,5 +1,5 @@
/*
* $Id: composite.h,v 1.3 2003-11-07 04:21:01 keithp Exp $
* $Id: composite.h,v 1.4 2004-07-08 07:20:55 keithp Exp $
*
* Copyright © 2003 Keith Packard
*
@ -29,7 +29,7 @@
#define COMPOSITE_NAME "Composite"
#define COMPOSITE_MAJOR 0
#define COMPOSITE_MINOR 1
#define COMPOSITE_MINOR 2
#define CompositeRedirectAutomatic 0
#define CompositeRedirectManual 1
@ -40,7 +40,8 @@
#define X_CompositeUnredirectWindow 3
#define X_CompositeUnredirectSubwindows 4
#define X_CompositeCreateRegionFromBorderClip 5
#define X_CompositeNameWindowPixmap 6
#define CompositeNumberRequests (X_CompositeCreateRegionFromBorderClip + 1)
#define CompositeNumberRequests (X_CompositeNameWindowPixmap + 1)
#endif /* _COMPOSITE_H_ */

View file

@ -1,5 +1,5 @@
/*
* $Id: compositeproto.h,v 1.3 2003-11-07 04:21:01 keithp Exp $
* $Id: compositeproto.h,v 1.4 2004-07-08 07:20:55 keithp Exp $
*
* Copyright © 2003 Keith Packard
*
@ -117,6 +117,18 @@ typedef struct {
#define sz_xCompositeCreateRegionFromBorderClipReq 12
/* Version 0.2 additions */
typedef struct {
CARD8 reqType;
CARD8 compositeReqType;
CARD16 length;
Window window B32;
Pixmap pixmap B32;
} xCompositeNameWindowPixmapReq;
#define sz_xCompositeNameWindowPixmapReq 12
#undef Window
#undef Region

View file

@ -1,6 +1,6 @@
Composite Extension
Version 0.1
2003-11-04
Version 0.2
2004-7-8
Keith Packard
keithp@keithp.com
@ -56,6 +56,17 @@ may be done with the Damage extension.
The off-screen storage includes the window contents, its borders and the
contents of all descendants.
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
it's disappearance), and also to access the border of the window, which is
not reachable through the Window ID itself. A new pixmap is created each
time the window is mapped or resized; as these events are nicely signalled
with existing events, no additional notification is needed. The old pixmap
will remain allocated as long as the Pixmap ID is left valid, it is
important that the client use the FreePixmap request when it is done with
the contents and to create a new name for the newly allocated pixmap.
In automatic update mode, the X server is itself responsible for presenting
the child window contents within the parent. It seems reasonable, then, for
rendering to the parent window to be clipped so as not to interfere with any
@ -181,3 +192,20 @@ operations other than QueryVersion.
is copied at the moment the request is executed; future changes
to the window hierarchy will not be reflected in this region.
10. Associating a Pixmap ID with the off-screen storage (0.2 and later)
NameWindowPixmap
window: Window
pixmap: Pixmap
errors: Window, Match, IDChoice
This request makes 'pixmap' a reference to the off-screen storage
for 'window'. This pixmap will remain allocated until freed, even
if 'window' is unmapped, reconfigured or destroyed. However,
'window' will get a new pixmap allocated each time it is
mapped or resized, so this request will need to be reinvoked for
the client to continue to refer to the storage holding the current
window contents. Generates a 'Match' error if 'window' is not
redirected.