diff options
-rw-r--r-- | Xext/xres.c | 96 |
1 files changed, 2 insertions, 94 deletions
diff --git a/Xext/xres.c b/Xext/xres.c index 83cc6913a..ae779dfe8 100644 --- a/Xext/xres.c +++ b/Xext/xres.c @@ -349,21 +349,6 @@ ProcXResQueryClientResources(ClientPtr client) return Success; } -static unsigned long -ResGetApproxPixmapBytes(PixmapPtr pix) -{ - unsigned long nPixels; - float bytesPerPixel; - - bytesPerPixel = (float)pix->drawable.bitsPerPixel / 8.0; - nPixels = pix->drawable.width * pix->drawable.height; - - /* Divide by refcnt as pixmap could be shared between clients, - * so total pixmap mem is shared between these. - */ - return (nPixels * bytesPerPixel) / pix->refcnt; -} - static void ResFindResourcePixmaps(void *value, XID id, RESTYPE type, void *cdata) { @@ -375,57 +360,6 @@ ResFindResourcePixmaps(void *value, XID id, RESTYPE type, void *cdata) *bytes += size.pixmapRefSize; } -static void -ResFindPixmaps(void *value, XID id, void *cdata) -{ - unsigned long *bytes = (unsigned long *) cdata; - PixmapPtr pix = (PixmapPtr) value; - - *bytes += ResGetApproxPixmapBytes(pix); -} - -static void -ResFindWindowPixmaps(void *value, XID id, void *cdata) -{ - unsigned long *bytes = (unsigned long *) cdata; - WindowPtr pWin = (WindowPtr) value; - - if (pWin->backgroundState == BackgroundPixmap) - *bytes += ResGetApproxPixmapBytes(pWin->background.pixmap); - - if (pWin->border.pixmap != NULL && !pWin->borderIsPixel) - *bytes += ResGetApproxPixmapBytes(pWin->border.pixmap); -} - -static void -ResFindGCPixmaps(void *value, XID id, void *cdata) -{ - unsigned long *bytes = (unsigned long *) cdata; - GCPtr pGC = (GCPtr) value; - - if (pGC->stipple != NULL) - *bytes += ResGetApproxPixmapBytes(pGC->stipple); - - if (pGC->tile.pixmap != NULL && !pGC->tileIsPixel) - *bytes += ResGetApproxPixmapBytes(pGC->tile.pixmap); -} - -#ifdef RENDER -static void -ResFindPicturePixmaps(void *value, XID id, void *cdata) -{ - ResFindResourcePixmaps(value, id, PictureType, cdata); -} -#endif - -#ifdef COMPOSITE -static void -ResFindCompositeClientWindowPixmaps (void *value, XID id, void *cdata) -{ - ResFindResourcePixmaps(value, id, CompositeClientWindowType, cdata); -} -#endif - static int ProcXResQueryClientPixmapBytes(ClientPtr client) { @@ -445,34 +379,8 @@ ProcXResQueryClientPixmapBytes(ClientPtr client) bytes = 0; - FindClientResourcesByType(clients[clientID], RT_PIXMAP, ResFindPixmaps, - (void *) (&bytes)); - - /* - * Make sure win background pixmaps also held to account. - */ - FindClientResourcesByType(clients[clientID], RT_WINDOW, - ResFindWindowPixmaps, (void *) (&bytes)); - - /* - * GC Tile & Stipple pixmaps too. - */ - FindClientResourcesByType(clients[clientID], RT_GC, - ResFindGCPixmaps, (void *) (&bytes)); - -#ifdef RENDER - /* Render extension picture pixmaps. */ - FindClientResourcesByType(clients[clientID], PictureType, - ResFindPicturePixmaps, - (void *)(&bytes)); -#endif - -#ifdef COMPOSITE - /* Composite extension client window pixmaps. */ - FindClientResourcesByType(clients[clientID], CompositeClientWindowType, - ResFindCompositeClientWindowPixmaps, - (void *)(&bytes)); -#endif + FindAllClientResources(clients[clientID], ResFindResourcePixmaps, + (void *) (&bytes)); rep = (xXResQueryClientPixmapBytesReply) { .type = X_Reply, |