From 03a86978665548d1ddbdaf30a9fc57778893cb14 Mon Sep 17 00:00:00 2001 From: Nicolas F Date: Thu, 21 Feb 2019 16:22:22 +0100 Subject: [PATCH] Fix C extension build warnings Today in "why did we ever do this?", we discover we've vendored code from PIL/Pillow, but PIL/Pillow moved some macro definitions around, so now our vendored code conflicted with their macros that they included in the headers we're including. The solution is to throw out our vendored macros and update the semantics in our vendored Draw.c. I'm not sure why we vendored it, but we seemingly did remove some stuff from it to avoid having to pull in all of PIL/Pillow. --- overviewer_core/src/Draw.c | 23 ++++++++--------------- overviewer_core/src/overviewer.h | 7 +------ 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/overviewer_core/src/Draw.c b/overviewer_core/src/Draw.c index fca0518..c31a299 100644 --- a/overviewer_core/src/Draw.c +++ b/overviewer_core/src/Draw.c @@ -64,13 +64,6 @@ #define INK8(ink) (*(UINT8*)ink) #define INK32(ink) (*(INT32*)ink) -/* like (a * b + 127) / 255), but much faster on most platforms */ -#define MULDIV255(a, b, tmp)\ - (tmp = (a) * (b) + 128, ((((tmp) >> 8) + (tmp)) >> 8)) - -#define BLEND(mask, in1, in2, tmp1, tmp2)\ - (MULDIV255(in1, 255 - mask, tmp1) + MULDIV255(in2, mask, tmp2)) - /* -------------------------------------------------------------------- */ /* Primitives */ /* -------------------------------------------------------------------- */ @@ -100,14 +93,14 @@ point32(Imaging im, int x, int y, int ink) static inline void point32rgba(Imaging im, int x, int y, int ink) { - unsigned int tmp1, tmp2; + unsigned int tmp1; if (x >= 0 && x < im->xsize && y >= 0 && y < im->ysize) { UINT8* out = (UINT8*) im->image[y]+x*4; UINT8* in = (UINT8*) &ink; - out[0] = BLEND(in[3], out[0], in[0], tmp1, tmp2); - out[1] = BLEND(in[3], out[1], in[1], tmp1, tmp2); - out[2] = BLEND(in[3], out[2], in[2], tmp1, tmp2); + out[0] = BLEND(in[3], out[0], in[0], tmp1); + out[1] = BLEND(in[3], out[1], in[1], tmp1); + out[2] = BLEND(in[3], out[2], in[2], tmp1); } } @@ -159,7 +152,7 @@ static inline void hline32rgba(Imaging im, int x0, int y0, int x1, int ink) { int tmp; - unsigned int tmp1, tmp2; + unsigned int tmp1; if (y0 >= 0 && y0 < im->ysize) { if (x0 > x1) @@ -176,9 +169,9 @@ hline32rgba(Imaging im, int x0, int y0, int x1, int ink) UINT8* out = (UINT8*) im->image[y0]+x0*4; UINT8* in = (UINT8*) &ink; while (x0 <= x1) { - out[0] = BLEND(in[3], out[0], in[0], tmp1, tmp2); - out[1] = BLEND(in[3], out[1], in[1], tmp1, tmp2); - out[2] = BLEND(in[3], out[2], in[2], tmp1, tmp2); + out[0] = BLEND(in[3], out[0], in[0], tmp1); + out[1] = BLEND(in[3], out[1], in[1], tmp1); + out[2] = BLEND(in[3], out[2], in[2], tmp1); x0++; out += 4; } } diff --git a/overviewer_core/src/overviewer.h b/overviewer_core/src/overviewer.h index 83734a2..c5fd035 100644 --- a/overviewer_core/src/overviewer.h +++ b/overviewer_core/src/overviewer.h @@ -33,7 +33,7 @@ // increment this value if you've made a change to the c extesion // and want to force users to rebuild -#define OVERVIEWER_EXTENSION_VERSION 54 +#define OVERVIEWER_EXTENSION_VERSION 55 /* Python PIL, and numpy headers */ #include @@ -42,11 +42,6 @@ /* Fix Pillow on mingw-w64 which includes windows.h in Imaging.h */ #undef TRANSPARENT -/* like (a * b + 127) / 255), but much faster on most platforms - from PIL's _imaging.c */ -#define MULDIV255(a, b, tmp) \ - (tmp = (a) * (b) + 128, ((((tmp) >> 8) + (tmp)) >> 8)) - /* macro for getting a value out of various numpy arrays the 3D arrays have interesting, swizzled coordinates because minecraft (anvil) stores blocks in y/z/x order for 3D, z/x order for 2D */