xserver/composite compext.c,1.5,1.6

Keith Packard xserver-commit at pdx.freedesktop.org
Thu Jul 8 00:38:14 PDT 2004


Committed by: keithp

Update of /cvs/xserver/xserver/composite
In directory pdx:/tmp/cvs-serv768/composite

Modified Files:
	compext.c 
Log Message:
2004-07-08  Keith Packard  <keithp at keithp.com>

	* composite/compext.c: (ProcCompositeNameWindowPixmap),
	(CompositeNumberRequests), (SProcCompositeNameWindowPixmap):
	Add Composite 0.2 request (NameWindowPixmap)


Index: compext.c
===================================================================
RCS file: /cvs/xserver/xserver/composite/compext.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- compext.c	8 Jul 2004 06:53:59 -0000	1.5
+++ compext.c	8 Jul 2004 07:38:12 -0000	1.6
@@ -208,6 +208,40 @@
     return(client->noClientException);
 }
 
+static int
+ProcCompositeNameWindowPixmap (ClientPtr client)
+{
+    WindowPtr	    pWin;
+    CompWindowPtr   cw;
+    PixmapPtr	    pPixmap;
+    REQUEST(xCompositeNameWindowPixmapReq);
+
+    REQUEST_SIZE_MATCH(xCompositeNameWindowPixmapReq);
+    pWin = (WindowPtr) LookupIDByType (stuff->window, RT_WINDOW);
+    if (!pWin)
+    {
+	client->errorValue = stuff->window;
+	return BadWindow;
+    }
+    
+    LEGAL_NEW_RESOURCE (stuff->pixmap, client);
+    
+    cw = GetCompWindow (pWin);
+    if (!cw)
+	return BadMatch;
+
+    pPixmap = (*pWin->drawable.pScreen->GetWindowPixmap) (pWin);
+    if (!pPixmap)
+	return BadMatch;
+
+    ++pPixmap->refcnt;
+    
+    if (!AddResource (stuff->pixmap, RT_PIXMAP, (pointer) pPixmap))
+	return BadAlloc;
+
+    return(client->noClientException);
+}
+
 int (*ProcCompositeVector[CompositeNumberRequests])(ClientPtr) = {
     ProcCompositeQueryVersion,
     ProcCompositeRedirectWindow,
@@ -215,6 +249,7 @@
     ProcCompositeUnredirectWindow,
     ProcCompositeUnredirectSubwindows,
     ProcCompositeCreateRegionFromBorderClip,
+    ProcCompositeNameWindowPixmap,
 };
 
 static int
@@ -302,6 +337,19 @@
     return (*ProcCompositeVector[stuff->compositeReqType]) (client);
 }
 
+static int
+SProcCompositeNameWindowPixmap (ClientPtr client)
+{
+    int n;
+    REQUEST(xCompositeNameWindowPixmapReq);
+
+    swaps(&stuff->length, n);
+    REQUEST_SIZE_MATCH(xCompositeNameWindowPixmapReq);
+    swapl (&stuff->window, n);
+    swapl (&stuff->pixmap, n);
+    return (*ProcCompositeVector[stuff->compositeReqType]) (client);
+}
+
 int (*SProcCompositeVector[CompositeNumberRequests])(ClientPtr) = {
     SProcCompositeQueryVersion,
     SProcCompositeRedirectWindow,
@@ -309,6 +357,7 @@
     SProcCompositeUnredirectWindow,
     SProcCompositeUnredirectSubwindows,
     SProcCompositeCreateRegionFromBorderClip,
+    SProcCompositeNameWindowPixmap,
 };
 
 static int




More information about the xserver-commit mailing list