From: Krzysztof KosiƄski Date: Sun, 21 Nov 2010 12:22:08 +0000 (+0100) Subject: Patch from Lubomir Rintel to fix build with Poppler 0.15.1 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=8228583f70f63bd251b996f82b49c13ec83c1fa7;p=inkscape.git Patch from Lubomir Rintel to fix build with Poppler 0.15.1 --- diff --git a/configure.ac b/configure.ac index 9cb50b06e..5b66ddc2c 100644 --- a/configure.ac +++ b/configure.ac @@ -612,11 +612,12 @@ if test "x$popplernew" = "xyes"; then AC_DEFINE(POPPLER_NEW_GFXFONT, 1, [Use GfxFont from Poppler >= 0.8.3]) fi -AC_MSG_CHECKING(for new color space API in Poppler) ink_svd_CPPFLAGS=$CPPFLAGS ink_svd_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $POPPLER_CFLAGS" LIBS="$LIBS $POPPLER_LIBS" + +AC_MSG_CHECKING(for new color space API in Poppler) popplercolor="no" AC_COMPILE_IFELSE([ #include @@ -628,9 +629,6 @@ int main() { return 0; } ], [popplercolor=yes]) -CPPFLAGS=$ink_svd_CPPFLAGS -LIBS=$ink_svd_LIBS - if test "x$popplercolor" = "xyes"; then AC_DEFINE(POPPLER_NEW_COLOR_SPACE_API, 1, [Use color space API from Poppler >= 0.12.2]) AC_MSG_RESULT(yes) @@ -638,6 +636,29 @@ else AC_MSG_RESULT(no) fi +# Poppler's b604a008 commit changes this +AC_MSG_CHECKING([whether Poppler's GfxPatch no longer uses GfxColor]) +popplergfxcolor="no" +AC_COMPILE_IFELSE([ +#include + +int main() { + GfxPatch::ColorValue color = {c: {0}}; + GfxPatch patch; + patch.color[[0]][[0]] = color; + return 0; +} +], [popplergfxcolor=yes]) +if test "x$popplergfxcolor" = "xyes"; then + AC_DEFINE(POPPLER_NEW_GFXPATCH, 1, [GfxPatch no longer uses GfxColor in >= 0.15.1]) + AC_MSG_RESULT(yes) +else + AC_MSG_RESULT(no) +fi + +CPPFLAGS=$ink_svd_CPPFLAGS +LIBS=$ink_svd_LIBS + dnl ****************************** dnl Inkboard dependency checking dnl ****************************** diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp index b37cbb777..ef31cd39f 100644 --- a/src/extension/internal/pdfinput/pdf-parser.cpp +++ b/src/extension/internal/pdfinput/pdf-parser.cpp @@ -1874,6 +1874,9 @@ void PdfParser::doPatchMeshShFill(GfxPatchMeshShading *shading) { void PdfParser::fillPatch(GfxPatch *patch, int nComps, int depth) { GfxPatch patch00, patch01, patch10, patch11; +#ifdef POPPLER_NEW_GFXPATCH + GfxColor color; +#endif double xx[4][8], yy[4][8]; double xxm, yym; double patchColorDelta = colorDeltas[pdfPatchMeshShading-1]; @@ -1890,9 +1893,16 @@ void PdfParser::fillPatch(GfxPatch *patch, int nComps, int depth) { > patchColorDelta) { break; } +#ifdef POPPLER_NEW_GFXPATCH + color.c[i] = GfxColorComp(patch->color[0][0].c[i]); +#endif } if (i == nComps || depth == maxDepths[pdfPatchMeshShading-1]) { +#ifdef POPPLER_NEW_GFXPATCH + state->setFillColor(&color); +#else state->setFillColor(&patch->color[0][0]); +#endif state->moveTo(patch->x[0][0], patch->y[0][0]); state->curveTo(patch->x[0][1], patch->y[0][1], patch->x[0][2], patch->y[0][2],