summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Xext/xres.c96
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,