diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2019-11-15 12:15:48 +0100 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2019-11-15 12:15:48 +0100 |
commit | 1664e1051faed62cd1e8d4e6b6feec6bf1be7b49 (patch) | |
tree | 7e5cd9bfe1ddb474b169930a52b19afb110b58b2 /nx-X11/programs/Xserver/hw/nxagent/Pixmap.c | |
parent | db74c07e6b0dfceb789f4a0c5b7116f9078104ad (diff) | |
parent | bc42d11f9eb8ca83d7d0c9b8b9e218c2c7f8ac41 (diff) | |
download | nx-libs-1664e1051faed62cd1e8d4e6b6feec6bf1be7b49.tar.gz nx-libs-1664e1051faed62cd1e8d4e6b6feec6bf1be7b49.tar.bz2 nx-libs-1664e1051faed62cd1e8d4e6b6feec6bf1be7b49.zip |
Merge branch 'uli42-pr/simplify_pixmap' into 3.6.x
Attributes GH PR #867: https://github.com/ArcticaProject/nx-libs/pull/867
Diffstat (limited to 'nx-X11/programs/Xserver/hw/nxagent/Pixmap.c')
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Pixmap.c | 417 |
1 files changed, 143 insertions, 274 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c b/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c index f8241d4d7..695d14618 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Pixmap.c @@ -99,11 +99,6 @@ struct nxagentPixmapPair PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, int depth, unsigned usage_hint) { - nxagentPrivPixmapPtr pPixmapPriv, pVirtualPriv; - - PixmapPtr pPixmap; - PixmapPtr pVirtual; - #ifdef DEBUG fprintf(stderr, "nxagentCreatePixmap: Creating pixmap with width [%d] " "height [%d] depth [%d] and allocation hint [%d].\n", @@ -111,11 +106,11 @@ PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, #endif /* - * Create the pixmap structure but do - * not allocate memory for the data. + * Create the pixmap structure but do not allocate memory for the + * data. */ - pPixmap = AllocatePixmap(pScreen, 0); + PixmapPtr pPixmap = AllocatePixmap(pScreen, 0); if (!pPixmap) { @@ -152,7 +147,7 @@ PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, * Initialize the privates of the real picture. */ - pPixmapPriv = nxagentPixmapPriv(pPixmap); + nxagentPrivPixmapPtr pPixmapPriv = nxagentPixmapPriv(pPixmap); pPixmapPriv -> isVirtual = False; pPixmapPriv -> isShared = nxagentShmPixmapTrap; @@ -164,12 +159,7 @@ PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, if (pPixmapPriv -> isShared == 1) { - BoxRec box; - - box.x1 = 0; - box.y1 = 0; - box.x2 = width; - box.y2 = height; + BoxRec box = { .x1 = 0, .y1 = 0, .x2 = width, .y2 = height }; pPixmapPriv -> corruptedRegion = RegionCreate(&box, 1); } @@ -184,16 +174,13 @@ PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, pPixmapPriv -> containTrapezoids = 0; /* - * The lazy encoding policy generally does - * not send on remote X server the off-screen - * images, by preferring to synchronize the - * windows content. Anyway this behaviour may - * be inadvisable if a pixmap is used, for - * example, for multiple copy areas on screen. - * This counter serves the purpose, taking in- - * to account the number of times the pixmap - * has been used as source for a deferred - * operation. + * The lazy encoding policy generally does not send on remote X + * server the off-screen images, by preferring to synchronize the + * windows content. Anyway this behaviour may be inadvisable if a + * pixmap is used, for example, for multiple copy areas on screen. + * This counter serves the purpose, taking into account the number + * of times the pixmap has been used as source for a deferred + * operation. */ pPixmapPriv -> usageCounter = 0; @@ -210,11 +197,10 @@ PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, pPixmapPriv -> isBackingPixmap = 0; /* - * Create the pixmap based on the default - * windows. The proxy knows this and uses - * this information to optimize encode the - * create pixmap message by including the - * id of the drawable in the checksum. + * Create the pixmap based on the default windows. The proxy knows + * this and uses this information to optimize encode the create + * pixmap message by including the id of the drawable in the + * checksum. */ if (width != 0 && height != 0 && nxagentGCTrap == 0) @@ -245,7 +231,7 @@ PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, * Create the pixmap in the virtual framebuffer. */ - pVirtual = fbCreatePixmap(pScreen, width, height, depth, usage_hint); + PixmapPtr pVirtual = fbCreatePixmap(pScreen, width, height, depth, usage_hint); if (pVirtual == NULL) { @@ -261,7 +247,7 @@ PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, } #ifdef TEST - fprintf(stderr,"nxagentCreatePixmap: Allocated memory for the Virtual %sPixmap %p of real Pixmap %p (%dx%d),", + fprintf(stderr, "nxagentCreatePixmap: Allocated memory for the Virtual %sPixmap %p of real Pixmap %p (%dx%d),", "allocation hint [%d].\n", nxagentShmPixmapTrap ? "Shm " : "", (void *) pVirtual, (void *) pPixmap, width, height, usage_hint); #endif @@ -269,15 +255,14 @@ PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, pPixmapPriv -> pVirtualPixmap = pVirtual; /* - * Initialize the privates of the virtual picture. We - * could avoid to use a flag and just check the pointer - * to the virtual pixmap that, if the pixmap is actually - * virtual, will be NULL. Unfortunately the flag can be - * changed in nxagentValidateGC(). That code should be - * removed in future. + * Initialize the privates of the virtual picture. We could avoid to + * use a flag and just check the pointer to the virtual pixmap that, + * if the pixmap is actually virtual, will be NULL. Unfortunately + * the flag can be changed in nxagentValidateGC(). That code should + * be removed in future. */ - pVirtualPriv = nxagentPixmapPriv(pVirtual); + nxagentPrivPixmapPtr pVirtualPriv = nxagentPixmapPriv(pVirtual); pVirtualPriv -> isVirtual = True; pVirtualPriv -> isShared = nxagentShmPixmapTrap; @@ -301,19 +286,17 @@ PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, pVirtualPriv -> splitResource = NULL; /* - * We might distinguish real and virtual pixmaps by - * checking the pointers to pVirtualPixmap. We should - * also remove the copy of id and use the one of the - * real pixmap. + * We might distinguish real and virtual pixmaps by checking the + * pointers to pVirtualPixmap. We should also remove the copy of id + * and use the one of the real pixmap. */ pVirtualPriv -> id = pPixmapPriv -> id; pVirtualPriv -> mid = 0; /* - * Storing a pointer back to the real pixmap is - * silly. Unfortunately this is the way it has - * been originally implemented. See also the + * Storing a pointer back to the real pixmap is silly. Unfortunately + * this is the way it has been originally implemented. See also the * comment in destroy of the pixmap. */ @@ -332,10 +315,6 @@ PixmapPtr nxagentCreatePixmap(ScreenPtr pScreen, int width, int height, Bool nxagentDestroyPixmap(PixmapPtr pPixmap) { - PixmapPtr pVirtual; - - nxagentPrivPixmapPtr pPixmapPriv; - if (!pPixmap) { #ifdef PANIC @@ -346,9 +325,9 @@ Bool nxagentDestroyPixmap(PixmapPtr pPixmap) return False; } - pPixmapPriv = nxagentPixmapPriv(pPixmap); + nxagentPrivPixmapPtr pPixmapPriv = nxagentPixmapPriv(pPixmap); - pVirtual = pPixmapPriv -> pVirtualPixmap; + PixmapPtr pVirtual = pPixmapPriv -> pVirtualPixmap; #ifdef TEST fprintf(stderr, "nxagentDestroyPixmap: Destroying pixmap at [%p] with virtual at [%p].\n", @@ -357,16 +336,13 @@ Bool nxagentDestroyPixmap(PixmapPtr pPixmap) if (pPixmapPriv -> isVirtual) { - int refcnt; - /* * For some pixmaps we receive the destroy only for the - * virtual. Infact to draw in the framebuffer we can use - * the virtual pixmap instead of the pointer to the real - * one. As the virtual pixmap can collect references, we - * must transfer those references to the real pixmap so - * we can continue as the destroy had been requested for - * it. + * virtual. Infact to draw in the framebuffer we can use the + * virtual pixmap instead of the pointer to the real one. As the + * virtual pixmap can collect references, we must transfer those + * references to the real pixmap so we can continue as the destroy + * had been requested for it. */ pVirtual = pPixmap; @@ -375,11 +351,11 @@ Bool nxagentDestroyPixmap(PixmapPtr pPixmap) pPixmapPriv = nxagentPixmapPriv(pPixmap); /* - * Move the references accumulated by the virtual - * pixmap into the references of the real one. + * Move the references accumulated by the virtual pixmap into the + * references of the real one. */ - refcnt = pVirtual -> refcnt - 1; + int refcnt = pVirtual -> refcnt - 1; #ifdef TEST fprintf(stderr, "nxagentDestroyPixmap: Adding [%d] references to pixmap at [%p].\n", @@ -412,7 +388,6 @@ Bool nxagentDestroyPixmap(PixmapPtr pPixmap) } #ifdef TEST - fprintf(stderr, "nxagentDestroyPixmap: Managing to destroy the pixmap at [%p]\n", (void *) pPixmap); #endif @@ -473,10 +448,7 @@ Bool nxagentDestroyPixmap(PixmapPtr pPixmap) Bool nxagentDestroyVirtualPixmap(PixmapPtr pPixmap) { - PixmapPtr pVirtual; - nxagentPrivPixmapPtr pVirtualPriv; - - pVirtual = nxagentPixmapPriv(pPixmap) -> pVirtualPixmap; + PixmapPtr pVirtual = nxagentPixmapPriv(pPixmap) -> pVirtualPixmap; /* * Force the routine to get rid of the virtual @@ -487,7 +459,7 @@ Bool nxagentDestroyVirtualPixmap(PixmapPtr pPixmap) { pVirtual -> refcnt = 1; - pVirtualPriv = nxagentPixmapPriv(pVirtual); + nxagentPrivPixmapPtr pVirtualPriv = nxagentPixmapPriv(pVirtual); if (pVirtualPriv -> corruptedRegion != NullRegion) { @@ -515,13 +487,10 @@ RegionPtr nxagentPixmapToRegion(PixmapPtr pPixmap) Bool nxagentModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int depth, int bitsPerPixel, int devKind, void * pPixData) { - PixmapPtr pVirtualPixmap; - /* - * See miModifyPixmapHeader() in miscrinit.c. This - * function is used to recycle the scratch pixmap - * for this screen. We let it refer to the virtual - * pixmap. + * See miModifyPixmapHeader() in miscrinit.c. This function is used + * to recycle the scratch pixmap for this screen. We let it refer to + * the virtual pixmap. */ if (!pPixmap) @@ -539,7 +508,7 @@ Bool nxagentModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int dep FatalError("nxagentModifyPixmapHeader: PANIC! Pixmap is virtual."); } - pVirtualPixmap = nxagentVirtualPixmap(pPixmap); + PixmapPtr pVirtualPixmap = nxagentVirtualPixmap(pPixmap); #ifdef TEST fprintf(stderr, "nxagentModifyPixmapHeader: Pixmap at [%p] Virtual at [%p].\n", @@ -555,89 +524,18 @@ Bool nxagentModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int dep bitsPerPixel, devKind, (void *) pPixData); #endif - if ((width > 0) && (height > 0) && (depth > 0) && - (bitsPerPixel > 0) && (devKind > 0) && pPixData) - { - pPixmap->drawable.depth = depth; - pPixmap->drawable.bitsPerPixel = bitsPerPixel; - pPixmap->drawable.id = 0; - pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER; - pPixmap->drawable.x = 0; - pPixmap->drawable.y = 0; - pPixmap->drawable.width = width; - pPixmap->drawable.height = height; - pPixmap->devKind = devKind; - pPixmap->refcnt = 1; - pPixmap->devPrivate.ptr = pPixData; - - pVirtualPixmap->drawable.depth = depth; - pVirtualPixmap->drawable.bitsPerPixel = bitsPerPixel; - pVirtualPixmap->drawable.id = 0; - pVirtualPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER; - pVirtualPixmap->drawable.x = 0; - pVirtualPixmap->drawable.y = 0; - pVirtualPixmap->drawable.width = width; - pVirtualPixmap->drawable.height = height; - pVirtualPixmap->devKind = devKind; - pVirtualPixmap->refcnt = 1; - pVirtualPixmap->devPrivate.ptr = pPixData; - } - else - { - if (width > 0) - pPixmap->drawable.width = width; - - if (height > 0) - pPixmap->drawable.height = height; - - if (depth > 0) - pPixmap->drawable.depth = depth; - - if (bitsPerPixel > 0) - pPixmap->drawable.bitsPerPixel = bitsPerPixel; - else if ((bitsPerPixel < 0) && (depth > 0)) - pPixmap->drawable.bitsPerPixel = BitsPerPixel(depth); - - if (devKind > 0) - pPixmap->devKind = devKind; - else if ((devKind < 0) && ((width > 0) || (depth > 0))) - pPixmap->devKind = PixmapBytePad(pPixmap->drawable.width, - pPixmap->drawable.depth); - - if (pPixData) - pPixmap->devPrivate.ptr = pPixData; - - /* - * XXX This was the previous assignment: - * - * pVirtualPixmap->devPrivate.ptr = pPixData; - */ - - if (width > 0) - pVirtualPixmap->drawable.width = width; - - if (height > 0) - pVirtualPixmap->drawable.height = height; - - if (depth > 0) - pVirtualPixmap->drawable.depth = depth; - - if (bitsPerPixel > 0) - pVirtualPixmap->drawable.bitsPerPixel = bitsPerPixel; - else if ((bitsPerPixel < 0) && (depth > 0)) - pVirtualPixmap->drawable.bitsPerPixel = BitsPerPixel(depth); - - if (devKind > 0) - pVirtualPixmap->devKind = devKind; - else if ((devKind < 0) && ((width > 0) || (depth > 0))) - pVirtualPixmap->devKind = PixmapBytePad(pVirtualPixmap->drawable.width, - pVirtualPixmap->drawable.depth); + /* + * ignore return code, because the only case where this will return + * FALSE is pPixmap == NULL, which we have already caught above. + */ + miModifyPixmapHeader(pPixmap, width, height, depth, bitsPerPixel, devKind, pPixData); + miModifyPixmapHeader(pVirtualPixmap, width, height, depth, bitsPerPixel, devKind, pPixData); - if (pPixData) - pVirtualPixmap->devPrivate.ptr = pPixData; - - #ifdef PANIC + #ifdef PANIC + if (!((width > 0) && (height > 0) && (depth > 0) && (bitsPerPixel > 0) && + (devKind > 0) && pPixData)) + { if (pPixmap->drawable.x != 0 || pPixmap->drawable.y != 0) { fprintf(stderr, "nxagentModifyPixmapHeader: PANIC! Pixmap at [%p] has x [%d] and y [%d].\n", @@ -645,9 +543,8 @@ Bool nxagentModifyPixmapHeader(PixmapPtr pPixmap, int width, int height, int dep FatalError("nxagentModifyPixmapHeader: PANIC! Pixmap has x or y greater than zero."); } - - #endif } + #endif return True; } @@ -665,15 +562,15 @@ static void nxagentPixmapMatchID(void *p0, XID x1, void *p2) PixmapPtr nxagentPixmapPtr(Pixmap pixmap) { - struct nxagentPixmapPair pair; - if (pixmap == None) { return NULL; } - pair.pixmap = pixmap; - pair.pMap = NULL; + struct nxagentPixmapPair pair = { + .pixmap = pixmap, + .pMap = NULL + }; FindClientResourcesByType(clients[serverClient -> index], RT_NX_PIXMAP, nxagentPixmapMatchID, &pair); @@ -731,9 +628,7 @@ void nxagentDisconnectPixmap(void *p0, XID x1, void *p2) PixmapPtr pPixmap = (PixmapPtr) p0; #ifdef TEST - Bool *pBool; - - pBool = (Bool*) p2; + Bool *pBool = (Bool*) p2; fprintf(stderr, "nxagentDisconnectPixmap: Called with bool [%d] and pixmap at [%p].\n", *pBool, (void *) pPixmap); @@ -754,7 +649,6 @@ void nxagentDisconnectPixmap(void *p0, XID x1, void *p2) Bool nxagentDisconnectAllPixmaps(void) { - int i; int r = 1; #ifdef TEST @@ -762,15 +656,16 @@ Bool nxagentDisconnectAllPixmaps(void) #endif /* - * The RT_NX_PIXMAP resource type is allocated - * only on the server client, so we don't need - * to find it through the other clients too. + * The RT_NX_PIXMAP resource type is allocated only on the server + * client, so we don't need to find it through the other clients + * too. */ FindClientResourcesByType(clients[serverClient -> index], RT_NX_PIXMAP, nxagentDisconnectPixmap, &r); #ifdef WARNING + /* Note: nxagentDisconnectPixmap() does not modify r - so this check can never succeed */ if (r == 0) { fprintf(stderr, "nxagentDisconnectAllPixmaps: WARNING! Failed to disconnect " @@ -779,7 +674,7 @@ Bool nxagentDisconnectAllPixmaps(void) #endif - for (i = 0, r = 1; i < MAXCLIENTS; r = 1, i++) + for (int i = 0, r = 1; i < MAXCLIENTS; r = 1, i++) { if (clients[i]) { @@ -791,6 +686,7 @@ Bool nxagentDisconnectAllPixmaps(void) #ifdef WARNING + /* Note: nxagentDisconnectPixmap() does not modify r - so this check can never succeed */ if (r == 0) { fprintf(stderr, "nxagentDisconnectAllPixmaps: WARNING! Failed to disconnect " @@ -801,16 +697,6 @@ Bool nxagentDisconnectAllPixmaps(void) } } - #ifdef WARNING - - if (r == 0) - { - fprintf(stderr, "nxagentDisconnectAllPixmaps: WARNING! Failed to disconnect " - "pixmap for client [%d].\n", i); - } - - #endif - #ifdef TEST fprintf(stderr, "nxagentDisconnectAllPixmaps: Pixmaps disconnection completed.\n"); #endif @@ -822,7 +708,6 @@ void nxagentReconnectPixmap(void *p0, XID x1, void *p2) { PixmapPtr pPixmap = (PixmapPtr) p0; Bool *pBool = (Bool*) p2; - nxagentPrivPixmapPtr pPixmapPriv; if (!*pBool || pPixmap == NULL || NXDisplayError(nxagentDisplay) == 1) @@ -839,9 +724,8 @@ void nxagentReconnectPixmap(void *p0, XID x1, void *p2) else if (pPixmap == nxagentDefaultScreen -> pScratchPixmap) { /* - * Every time the scratch pixmap is used its - * data is changed, so we don't need to recon- - * nect it. + * Every time the scratch pixmap is used its data is changed, so + * we don't need to reconnect it. */ #ifdef TEST @@ -861,7 +745,7 @@ void nxagentReconnectPixmap(void *p0, XID x1, void *p2) (void *) nxagentPixmapPriv(pPixmap) -> pPicture); #endif - pPixmapPriv = nxagentPixmapPriv(pPixmap); + nxagentPrivPixmapPtr pPixmapPriv = nxagentPixmapPriv(pPixmap); if (pPixmap -> drawable.width && pPixmap -> drawable.height) { @@ -936,9 +820,9 @@ Bool nxagentReconnectAllPixmaps(void *p0) nxagentResetAlphaCache(); /* - * The RT_NX_PIXMAP resource type is allocated - * only on the server client, so we don't need - * to find it through the other clients too. + * The RT_NX_PIXMAP resource type is allocated only on the server + * client, so we don't need to find it through the other clients + * too. */ FindClientResourcesByType(clients[serverClient -> index], RT_NX_PIXMAP, nxagentReconnectPixmap, &result); @@ -962,11 +846,10 @@ Bool nxagentReconnectAllPixmaps(void *p0) #endif /* - * Let the pixmap be reconnected as it was an - * image request issued by the client owning - * the resource. The client index is used as - * a subscript by the image routines to cache - * the data per-client. + * Let the pixmap be reconnected as it was an image request + * issued by the client owning the resource. The client index is + * used as a subscript by the image routines to cache the data + * per-client. */ FindClientResourcesByType(clients[i], RT_PIXMAP, nxagentReconnectPixmap, &result); @@ -1028,30 +911,26 @@ static void nxagentCheckOnePixmapIntegrity(void *p0, XID x1, void *p2) Bool nxagentCheckPixmapIntegrity(PixmapPtr pPixmap) { Bool integrity = True; - XImage *image; - char *data; - int format; unsigned long plane_mask = AllPlanes; - unsigned int width, height, length, depth; PixmapPtr pVirtual = nxagentVirtualPixmap(pPixmap); - width = pPixmap -> drawable.width; - height = pPixmap -> drawable.height; - depth = pPixmap -> drawable.depth; - format = (depth == 1) ? XYPixmap : ZPixmap; + unsigned int width = pPixmap -> drawable.width; + unsigned int height = pPixmap -> drawable.height; + unsigned int depth = pPixmap -> drawable.depth; + int format = (depth == 1) ? XYPixmap : ZPixmap; if (width && height) { - length = nxagentImageLength(width, height, format, 0, depth); + unsigned int length = nxagentImageLength(width, height, format, 0, depth); - data = malloc(length); + char *data = malloc(length); if (data == NULL) { FatalError("nxagentCheckPixmapIntegrity: Failed to allocate a buffer of size %d.\n", length); } - image = XGetImage(nxagentDisplay, nxagentPixmap(pPixmap), 0, 0, + XImage *image = XGetImage(nxagentDisplay, nxagentPixmap(pPixmap), 0, 0, width, height, plane_mask, format); if (image == NULL) { @@ -1099,10 +978,10 @@ Bool nxagentCheckPixmapIntegrity(PixmapPtr pPixmap) if (!integrity) { + char *p = image -> data; + char *q = data; - char *p, *q; - - for (int i = 0, p = image -> data, q = data; i < length; i++) + for (int i = 0; i < length; i++) { if (p[i] != q[i]) { @@ -1179,14 +1058,6 @@ Bool nxagentCheckAllPixmapIntegrity(void) void nxagentSynchronizeShmPixmap(DrawablePtr pDrawable, int xPict, int yPict, int wPict, int hPict) { - GCPtr pGC; - char *data; - int width, height; - int depth, length, format; - CARD32 attributes[3]; - - int saveTrap; - if (pDrawable -> type == DRAWABLE_PIXMAP && nxagentIsShmPixmap((PixmapPtr) pDrawable) == 1) { @@ -1195,7 +1066,9 @@ void nxagentSynchronizeShmPixmap(DrawablePtr pDrawable, int xPict, int yPict, (void *) pDrawable); #endif - pGC = nxagentGetScratchGC(pDrawable -> depth, pDrawable -> pScreen); + GCPtr pGC = nxagentGetScratchGC(pDrawable -> depth, pDrawable -> pScreen); + + CARD32 attributes[3]; attributes[0] = 0x228b22; attributes[1] = 0xffffff; @@ -1205,16 +1078,16 @@ void nxagentSynchronizeShmPixmap(DrawablePtr pDrawable, int xPict, int yPict, ValidateGC(pDrawable, pGC); - width = (wPict != 0 && wPict <= pDrawable -> width) ? wPict : pDrawable -> width; - height = (hPict != 0 && hPict <= pDrawable -> height) ? hPict : pDrawable -> height; + int width = (wPict != 0 && wPict <= pDrawable -> width) ? wPict : pDrawable -> width; + int height = (hPict != 0 && hPict <= pDrawable -> height) ? hPict : pDrawable -> height; - depth = pDrawable -> depth; + int depth = pDrawable -> depth; - format = (depth == 1) ? XYPixmap : ZPixmap; + int format = (depth == 1) ? XYPixmap : ZPixmap; - length = nxagentImageLength(width, height, format, 0, depth); + int length = nxagentImageLength(width, height, format, 0, depth); - saveTrap = nxagentGCTrap; + int saveTrap = nxagentGCTrap; nxagentGCTrap = 0; @@ -1222,7 +1095,9 @@ void nxagentSynchronizeShmPixmap(DrawablePtr pDrawable, int xPict, int yPict, nxagentFBTrap = 1; - if ((data = malloc(length)) != NULL) + char *data = malloc(length); + + if (data) { fbGetImage(nxagentVirtualDrawable(pDrawable), xPict, yPict, width, height, format, 0xffffffff, data); @@ -1270,13 +1145,6 @@ Bool nxagentPixmapOnShadowDisplay(PixmapPtr pMap) static int length; static unsigned int format; - XlibGC gc; - XGCValues value; - XImage *image; - Visual *pVisual; - char *data = NULL; - - if (init) { if (pMap == NULL) @@ -1344,7 +1212,9 @@ FIXME: If the pixmap has a different depth from the window, the length = nxagentImageLength(width, height, format, 0, depth); - if ((data = malloc(length)) == NULL) + char * data = malloc(length); + + if (data == NULL) { #ifdef WARNING fprintf(stderr, "nxagentPixmapOnShadowDisplay: WARNING! Failed to allocate memory for the operation.\n"); @@ -1356,7 +1226,7 @@ FIXME: If the pixmap has a different depth from the window, the fbGetImage((DrawablePtr) nxagentVirtualPixmap(pPixmap), 0, 0, width, height, format, AllPlanes, data); - pVisual = nxagentImageVisual((DrawablePtr) pPixmap, depth); + Visual *pVisual = nxagentImageVisual((DrawablePtr) pPixmap, depth); if (pVisual == NULL) { @@ -1367,10 +1237,10 @@ FIXME: If the pixmap has a different depth from the window, the pVisual = nxagentVisuals[nxagentDefaultVisualIndex].visual; } - image = XCreateImage(nxagentDisplay, pVisual, - depth, format, 0, (char *) data, - width, height, BitmapPad(nxagentDisplay), - nxagentImagePad(width, format, 0, depth)); + XImage *image = XCreateImage(nxagentDisplay, pVisual, + depth, format, 0, (char *) data, + width, height, BitmapPad(nxagentDisplay), + nxagentImagePad(width, format, 0, depth)); if (image == NULL) { @@ -1383,13 +1253,15 @@ FIXME: If the pixmap has a different depth from the window, the return False; } - value.foreground = 0xff0000; - value.background = 0x000000; - value.plane_mask = 0xffffff; - value.fill_style = FillSolid; + XGCValues value = { + .foreground = 0xff0000, + .background = 0x000000, + .plane_mask = 0xffffff, + .fill_style = FillSolid + }; - gc = XCreateGC(shadow, win, GCBackground | - GCForeground | GCFillStyle | GCPlaneMask, &value); + XlibGC gc = XCreateGC(shadow, win, GCBackground | + GCForeground | GCFillStyle | GCPlaneMask, &value); NXCleanImage(image); @@ -1413,15 +1285,7 @@ Bool nxagentFbOnShadowDisplay(void) static int showTime; static int prevWidth, prevHeight; - XlibGC gc; - XGCValues value; - XImage *image; - Visual *pVisual; WindowPtr pWin = screenInfo.screens[0]->root; - unsigned int format; - int depth, width, height, length; - char *data = NULL; - if (pWin == NULL) { @@ -1432,10 +1296,10 @@ Bool nxagentFbOnShadowDisplay(void) return False; } - depth = pWin -> drawable.depth; - width = pWin -> drawable.width; - height = pWin -> drawable.height; - format = (depth == 1) ? XYPixmap : ZPixmap; + int depth = pWin -> drawable.depth; + int width = pWin -> drawable.width; + int height = pWin -> drawable.height; + unsigned int format = (depth == 1) ? XYPixmap : ZPixmap; if (init) { @@ -1491,19 +1355,22 @@ Bool nxagentFbOnShadowDisplay(void) if (prevWidth != width || prevHeight != height) { - XWindowChanges values; - prevWidth = width; prevHeight = height; - values.width = width; - values.height = height; + XWindowChanges values = { + .width = width, + .height = height + }; + XConfigureWindow(shadow, win, CWWidth | CWHeight, &values); } - length = nxagentImageLength(width, height, format, 0, depth); + int length = nxagentImageLength(width, height, format, 0, depth); - if ((data = malloc(length)) == NULL) + char *data = malloc(length); + + if (data == NULL) { #ifdef WARNING fprintf(stderr, "nxagentFbOnShadowDisplay: WARNING! Failed to allocate memory for the operation.\n"); @@ -1515,7 +1382,7 @@ Bool nxagentFbOnShadowDisplay(void) fbGetImage((DrawablePtr)pWin, 0, 0, width, height, format, AllPlanes, data); - pVisual = nxagentImageVisual((DrawablePtr) pWin, depth); + Visual *pVisual = nxagentImageVisual((DrawablePtr) pWin, depth); if (pVisual == NULL) { @@ -1526,10 +1393,10 @@ Bool nxagentFbOnShadowDisplay(void) pVisual = nxagentVisuals[nxagentDefaultVisualIndex].visual; } - image = XCreateImage(nxagentDisplay, pVisual, - depth, format, 0, (char *) data, - width, height, BitmapPad(nxagentDisplay), - nxagentImagePad(width, format, 0, depth)); + XImage *image = XCreateImage(nxagentDisplay, pVisual, + depth, format, 0, (char *) data, + width, height, BitmapPad(nxagentDisplay), + nxagentImagePad(width, format, 0, depth)); if (image == NULL) { @@ -1542,13 +1409,15 @@ Bool nxagentFbOnShadowDisplay(void) return False; } - value.foreground = 0xff0000; - value.background = 0x000000; - value.plane_mask = 0xffffff; - value.fill_style = FillSolid; + XGCValues value = { + .foreground = 0xff0000, + .background = 0x000000, + .plane_mask = 0xffffff, + .fill_style = FillSolid + }; - gc = XCreateGC(shadow, win, GCBackground | - GCForeground | GCFillStyle | GCPlaneMask, &value); + XlibGC gc = XCreateGC(shadow, win, GCBackground | + GCForeground | GCFillStyle | GCPlaneMask, &value); NXCleanImage(image); @@ -1589,14 +1458,14 @@ void nxagentPrintResourcePredicate(void *value, XID id, XID type, void *cdata) void nxagentPrintResources(void) { - Bool result; - nxagentPrintResourceTypes(); for (int i = 0; i < MAXCLIENTS; i++) { if (clients[i]) { + Bool result; + fprintf(stderr, "nxagentPrintResources: Printing resources for client [%d]:\n", i); |