Always enable SPLASH_CMYK
Doesn't seem to cause any speed regression and one ifdef less is code easier
to maintain
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e780430..4a1e6f9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -76,7 +76,7 @@
- dnf -y install glibc-langpack-en curl make ninja-build openjpeg2-tools clazy clang redhat-rpm-config
script:
- mkdir -p build && cd build
- - CC=clang CXX=clazy CXXFLAGS="-Werror -Wno-deprecated-declarations" cmake -DSPLASH_CMYK=ON -G Ninja ..
+ - CC=clang CXX=clazy CXXFLAGS="-Werror -Wno-deprecated-declarations" cmake -G Ninja ..
- CLAZY_CHECKS="level0,level1,level2,isempty-vs-count,qhash-with-char-pointer-key,tr-non-literal,no-non-pod-global-static" ninja
build_android:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4ec53d9..c6f0a7b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -61,7 +61,6 @@
option(ENABLE_LIBCURL "Build libcurl based HTTP support." ON)
option(ENABLE_ZLIB "Build with zlib." ON)
option(ENABLE_ZLIB_UNCOMPRESS "Use zlib to uncompress flate streams (not totally safe)." OFF)
-option(SPLASH_CMYK "Include support for CMYK rasterization." OFF)
option(USE_FLOAT "Use single precision arithmetic in the Splash backend" OFF)
option(BUILD_SHARED_LIBS "Build poppler as a shared library" ON)
if(WIN32)
@@ -717,9 +716,6 @@
message("Building Poppler with support for:")
show_end_message("font configuration" ${font_configuration})
show_end_message_yesno("splash output" ENABLE_SPLASH)
-if(SPLASH_CMYK)
- message(" with CMYK support")
-endif()
show_end_message_yesno("cairo output" CAIRO_FOUND)
show_end_message_yesno("qt5 wrapper" ENABLE_QT5)
show_end_message_yesno("glib wrapper" ENABLE_GLIB)
diff --git a/config.h.cmake b/config.h.cmake
index c995813..c92fc35 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -156,9 +156,6 @@
/* Support for curl based doc builder is compiled in. */
#cmakedefine POPPLER_HAS_CURL_SUPPORT 1
-/* Include support for CMYK rasterization */
-#cmakedefine SPLASH_CMYK 1
-
/* Enable word list support. */
#cmakedefine TEXTOUT_WORD_LIST 1
diff --git a/poppler/PSOutputDev.cc b/poppler/PSOutputDev.cc
index 0fdc92c..c7c1304 100644
--- a/poppler/PSOutputDev.cc
+++ b/poppler/PSOutputDev.cc
@@ -3268,14 +3268,12 @@
paperColor[0] = 0xff;
splashOut = new SplashOutputDev(splashModeMono8, 1, false,
paperColor, false);
-#ifdef SPLASH_CMYK
} else if (level == psLevel1Sep || level == psLevel2Sep ||
level == psLevel3Sep || globalParams->getOverprintPreview()) {
numComps = 4;
paperColor[0] = paperColor[1] = paperColor[2] = paperColor[3] = 0;
splashOut = new SplashOutputDev(splashModeCMYK8, 1, false,
paperColor, false);
-#endif
} else {
numComps = 3;
paperColor[0] = paperColor[1] = paperColor[2] = 0xff;
diff --git a/poppler/SplashOutputDev.cc b/poppler/SplashOutputDev.cc
index 3d2befc..e3fcf9c 100644
--- a/poppler/SplashOutputDev.cc
+++ b/poppler/SplashOutputDev.cc
@@ -87,16 +87,12 @@
SplashColor color;
GfxGray gray;
GfxRGB rgb;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
GfxColor deviceN;
-#endif
// make gcc happy
color[0] = color[1] = color[2] = 0;
-#ifdef SPLASH_CMYK
color[3] = 0;
-#endif
switch (colorMode) {
case splashModeMono1:
case splashModeMono8:
@@ -113,7 +109,6 @@
color[1] = colToByte(rgb.g);
color[2] = colToByte(rgb.b);
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
colorSpace->getCMYK(src, &cmyk);
color[0] = colToByte(cmyk.c);
@@ -126,7 +121,6 @@
for (int i = 0; i < SPOT_NCOMPS + 4; i++)
color[i] = colToByte(deviceN.c[i]);
break;
-#endif
}
splashColorCopy(dest, color);
}
@@ -164,7 +158,6 @@
dest[2] = colToByte(rgb.b);
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
{
GfxCMYK cmyk;
@@ -183,7 +176,6 @@
dest[i] = colToByte(deviceN.c[i]);
}
break;
-#endif
}
}
@@ -205,12 +197,10 @@
GfxColor src;
GfxColorSpace* srcColorSpace = shading->getColorSpace();
int colorComps = 3;
-#ifdef SPLASH_CMYK
if (mode == splashModeCMYK8)
colorComps=4;
else if (mode == splashModeDeviceN8)
colorComps=4 + SPOT_NCOMPS;
-#endif
shading->getParameterizedColor(colorinterp, &src);
@@ -503,20 +493,17 @@
SplashColorPtr blend, SplashColorMode cm) {
int i;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
blend[i] = (dest[i] * src[i]) / 255;
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -524,27 +511,23 @@
blend[i] = 255 - blend[i];
}
}
-#endif
}
static void splashOutBlendScreen(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend, SplashColorMode cm) {
int i;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
blend[i] = dest[i] + src[i] - (dest[i] * src[i]) / 255;
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -552,21 +535,18 @@
blend[i] = 255 - blend[i];
}
}
-#endif
}
static void splashOutBlendOverlay(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend, SplashColorMode cm) {
int i;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
blend[i] = dest[i] < 0x80
@@ -574,7 +554,6 @@
: 255 - 2 * ((255 - src[i]) * (255 - dest[i])) / 255;
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -582,27 +561,23 @@
blend[i] = 255 - blend[i];
}
}
-#endif
}
static void splashOutBlendDarken(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend, SplashColorMode cm) {
int i;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
blend[i] = dest[i] < src[i] ? dest[i] : src[i];
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -610,27 +585,23 @@
blend[i] = 255 - blend[i];
}
}
-#endif
}
static void splashOutBlendLighten(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend, SplashColorMode cm) {
int i;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
blend[i] = dest[i] > src[i] ? dest[i] : src[i];
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -638,7 +609,6 @@
blend[i] = 255 - blend[i];
}
}
-#endif
}
static void splashOutBlendColorDodge(SplashColorPtr src, SplashColorPtr dest,
@@ -646,14 +616,12 @@
SplashColorMode cm) {
int i, x;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
if (src[i] == 255) {
@@ -664,7 +632,6 @@
}
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -672,21 +639,18 @@
blend[i] = 255 - blend[i];
}
}
-#endif
}
static void splashOutBlendColorBurn(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend, SplashColorMode cm) {
int i, x;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
if (src[i] == 0) {
@@ -697,7 +661,6 @@
}
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -705,21 +668,18 @@
blend[i] = 255 - blend[i];
}
}
-#endif
}
static void splashOutBlendHardLight(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend, SplashColorMode cm) {
int i;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
blend[i] = src[i] < 0x80
@@ -727,7 +687,6 @@
: 255 - 2 * ((255 - dest[i]) * (255 - src[i])) / 255;
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -735,21 +694,18 @@
blend[i] = 255 - blend[i];
}
}
-#endif
}
static void splashOutBlendSoftLight(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend, SplashColorMode cm) {
int i, x;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
if (src[i] < 0x80) {
@@ -764,7 +720,6 @@
}
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -772,7 +727,6 @@
blend[i] = 255 - blend[i];
}
}
-#endif
}
static void splashOutBlendDifference(SplashColorPtr src, SplashColorPtr dest,
@@ -780,20 +734,17 @@
SplashColorMode cm) {
int i;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
blend[i] = dest[i] < src[i] ? src[i] - dest[i] : dest[i] - src[i];
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -807,27 +758,23 @@
blend[i] = 0;
}
}
-#endif
}
static void splashOutBlendExclusion(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend, SplashColorMode cm) {
int i;
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
src[i] = 255 - src[i];
}
}
-#endif
{
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
blend[i] = dest[i] + src[i] - (2 * dest[i] * src[i]) / 255;
}
}
-#ifdef SPLASH_CMYK
if (cm == splashModeCMYK8 || cm == splashModeDeviceN8) {
for (i = 0; i < splashColorModeNComps[cm]; ++i) {
dest[i] = 255 - dest[i];
@@ -841,7 +788,6 @@
blend[i] = 0;
}
}
-#endif
}
static int getLum(int r, int g, int b) {
@@ -938,11 +884,9 @@
static void splashOutBlendHue(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend, SplashColorMode cm) {
unsigned char r0, g0, b0;
-#ifdef SPLASH_CMYK
unsigned char r1, g1, b1;
int i;
SplashColor src2, dest2;
-#endif
switch (cm) {
case splashModeMono1:
@@ -959,7 +903,6 @@
setLum(r0, g0, b0, getLum(dest[0], dest[1], dest[2]),
&blend[0], &blend[1], &blend[2]);
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
case splashModeDeviceN8:
for (i = 0; i < 4; i++) {
@@ -981,7 +924,6 @@
blend[i] = 0xff - blend[i];
}
break;
-#endif
}
}
@@ -989,11 +931,9 @@
SplashColorPtr blend,
SplashColorMode cm) {
unsigned char r0, g0, b0;
-#ifdef SPLASH_CMYK
unsigned char r1, g1, b1;
int i;
SplashColor src2, dest2;
-#endif
switch (cm) {
case splashModeMono1:
@@ -1010,7 +950,6 @@
setLum(r0, g0, b0, getLum(dest[0], dest[1], dest[2]),
&blend[0], &blend[1], &blend[2]);
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
case splashModeDeviceN8:
for (i = 0; i < 4; i++) {
@@ -1031,17 +970,14 @@
blend[i] = 0xff - blend[i];
}
break;
-#endif
}
}
static void splashOutBlendColor(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend, SplashColorMode cm) {
-#ifdef SPLASH_CMYK
unsigned char r, g, b;
int i;
SplashColor src2, dest2;
-#endif
switch (cm) {
case splashModeMono1:
@@ -1056,7 +992,6 @@
setLum(src[0], src[1], src[2], getLum(dest[0], dest[1], dest[2]),
&blend[0], &blend[1], &blend[2]);
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
case splashModeDeviceN8:
for (i = 0; i < 4; i++) {
@@ -1075,18 +1010,15 @@
blend[i] = 0xff - blend[i];
}
break;
-#endif
}
}
static void splashOutBlendLuminosity(SplashColorPtr src, SplashColorPtr dest,
SplashColorPtr blend,
SplashColorMode cm) {
-#ifdef SPLASH_CMYK
unsigned char r, g, b;
int i;
SplashColor src2, dest2;
-#endif
switch (cm) {
case splashModeMono1:
@@ -1101,7 +1033,6 @@
setLum(dest[0], dest[1], dest[2], getLum(src[0], src[1], src[2]),
&blend[0], &blend[1], &blend[2]);
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
case splashModeDeviceN8:
for (i = 0; i < 4; i++) {
@@ -1120,7 +1051,6 @@
blend[i] = 0xff - blend[i];
}
break;
-#endif
}
}
@@ -1482,7 +1412,6 @@
case splashModeBGR8:
color[0] = color[1] = color[2] = 0;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
color[0] = color[1] = color[2] = color[3] = 0;
break;
@@ -1490,7 +1419,6 @@
for (int i = 0; i < 4 + SPOT_NCOMPS; i++)
color[i] = 0;
break;
-#endif
}
splash->setStrokePattern(new SplashSolidColor(color));
splash->setFillPattern(new SplashSolidColor(color));
@@ -1611,26 +1539,20 @@
}
void SplashOutputDev::updateFillColorSpace(GfxState *state) {
-#ifdef SPLASH_CMYK
if (colorMode == splashModeDeviceN8)
state->getFillColorSpace()->createMapping(bitmap->getSeparationList(), SPOT_NCOMPS);
-#endif
}
void SplashOutputDev::updateStrokeColorSpace(GfxState *state) {
-#ifdef SPLASH_CMYK
if (colorMode == splashModeDeviceN8)
state->getStrokeColorSpace()->createMapping(bitmap->getSeparationList(), SPOT_NCOMPS);
-#endif
}
void SplashOutputDev::updateFillColor(GfxState *state) {
GfxGray gray;
GfxRGB rgb;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
GfxColor deviceN;
-#endif
switch (colorMode) {
case splashModeMono1:
@@ -1644,7 +1566,6 @@
state->getFillRGB(&rgb);
splash->setFillPattern(getColor(&rgb));
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
state->getFillCMYK(&cmyk);
splash->setFillPattern(getColor(&cmyk));
@@ -1653,17 +1574,14 @@
state->getFillDeviceN(&deviceN);
splash->setFillPattern(getColor(&deviceN));
break;
-#endif
}
}
void SplashOutputDev::updateStrokeColor(GfxState *state) {
GfxGray gray;
GfxRGB rgb;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
GfxColor deviceN;
-#endif
switch (colorMode) {
case splashModeMono1:
@@ -1677,7 +1595,6 @@
state->getStrokeRGB(&rgb);
splash->setStrokePattern(getColor(&rgb));
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
state->getStrokeCMYK(&cmyk);
splash->setStrokePattern(getColor(&cmyk));
@@ -1686,7 +1603,6 @@
state->getStrokeDeviceN(&deviceN);
splash->setStrokePattern(getColor(&deviceN));
break;
-#endif
}
}
@@ -1720,7 +1636,6 @@
return new SplashSolidColor(color);
}
-#ifdef SPLASH_CMYK
SplashPattern *SplashOutputDev::getColor(GfxCMYK *cmyk) {
SplashColor color;
@@ -1738,15 +1653,12 @@
color[i] = colToByte(deviceN->c[i]);
return new SplashSolidColor(color);
}
-#endif
void SplashOutputDev::getMatteColor(SplashColorMode colorMode, GfxImageColorMap *colorMap, const GfxColor *matteColorIn, SplashColor matteColor) {
GfxGray gray;
GfxRGB rgb;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
GfxColor deviceN;
-#endif
switch (colorMode) {
case splashModeMono1:
@@ -1768,7 +1680,6 @@
matteColor[2] = colToByte(rgb.b);
matteColor[3] = 255;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
colorMap->getColorSpace()->getCMYK(matteColorIn, &cmyk);
matteColor[0] = colToByte(cmyk.c);
@@ -1781,7 +1692,6 @@
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
matteColor[cp] = colToByte(deviceN.c[cp]);
break;
-#endif
}
}
@@ -1790,7 +1700,6 @@
int overprintMode,
const GfxColor *singleColor,
bool grayIndexed) {
-#ifdef SPLASH_CMYK
unsigned int mask;
GfxCMYK cmyk;
bool additive = false;
@@ -1846,7 +1755,6 @@
mask = 0xffffffff;
}
splash->setOverprintMask(mask, additive);
-#endif
}
void SplashOutputDev::updateBlendMode(GfxState *state) {
@@ -2949,7 +2857,6 @@
if (colorSpace->getAlt() != nullptr && colorSpace->getAlt()->getMode() == csDeviceRGB)
return true;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
if (colorSpace->getAlt() != nullptr && colorSpace->getAlt()->getMode() == csDeviceCMYK)
return true;
@@ -2958,7 +2865,6 @@
if (colorSpace->getAlt() != nullptr && colorSpace->getAlt()->getMode() == csDeviceN)
return true;
break;
-#endif
}
}
@@ -2978,10 +2884,8 @@
SplashColorPtr q, col;
GfxRGB rgb;
GfxGray gray;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
GfxColor deviceN;
-#endif
int nComps, x;
if (imgData->y == imgData->height) {
@@ -2993,12 +2897,10 @@
destComps = 3;
else if (imgData->colorMode == splashModeXBGR8)
destComps = 4;
-#ifdef SPLASH_CMYK
else if (imgData->colorMode == splashModeCMYK8)
destComps = 4;
else if (imgData->colorMode == splashModeDeviceN8)
destComps = SPOT_NCOMPS + 4;
-#endif
memset(colorLine, 0, imgData->width * destComps);
return false;
}
@@ -3031,7 +2933,6 @@
*q++ = col[3];
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
for (x = 0, q = colorLine; x < imgData->width; ++x, ++p) {
col = &imgData->lookup[4 * *p];
@@ -3048,7 +2949,6 @@
*q++ = col[cp];
}
break;
-#endif
}
} else {
switch (imgData->colorMode) {
@@ -3085,7 +2985,6 @@
}
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
if (imgData->colorMap->useCMYKLine()) {
imgData->colorMap->getCMYKLine(p, (unsigned char *) colorLine, imgData->width);
@@ -3110,7 +3009,6 @@
}
}
break;
-#endif
}
}
@@ -3144,12 +3042,10 @@
destComps = 3;
else if (imgData->colorMode == splashModeXBGR8)
destComps = 4;
-#ifdef SPLASH_CMYK
else if (imgData->colorMode == splashModeCMYK8)
destComps = 4;
else if (imgData->colorMode == splashModeDeviceN8)
destComps = SPOT_NCOMPS + 4;
-#endif
memset(colorLine, 0, imgData->width * destComps);
return false;
}
@@ -3191,7 +3087,6 @@
imgData->colorMap->getRGBLine(p, colorLine, bitmap->getWidth());
memcpy(p, colorLine, nComps * bitmap->getWidth());
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
imgData->colorMap->getCMYKLine(p, colorLine, bitmap->getWidth());
memcpy(p, colorLine, nComps * bitmap->getWidth());
@@ -3200,7 +3095,6 @@
imgData->colorMap->getDeviceNLine(p, colorLine, bitmap->getWidth());
memcpy(p, colorLine, nComps * bitmap->getWidth());
break;
-#endif
case splashModeXBGR8:
unsigned char *q;
unsigned char *b = p;
@@ -3233,10 +3127,8 @@
SplashColorPtr q, col;
GfxRGB rgb;
GfxGray gray;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
GfxColor deviceN;
-#endif
unsigned char alpha;
int nComps, x, i;
@@ -3280,7 +3172,6 @@
*q++ = col[2];
*q++ = 255;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
col = &imgData->lookup[4 * *p];
*q++ = col[0];
@@ -3293,7 +3184,6 @@
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
*q++ = col[cp];
break;
-#endif
}
*aq++ = alpha;
} else {
@@ -3312,7 +3202,6 @@
*q++ = colToByte(rgb.b);
if (imgData->colorMode == splashModeXBGR8) *q++ = 255;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
imgData->colorMap->getCMYK(p, &cmyk);
*q++ = colToByte(cmyk.c);
@@ -3325,7 +3214,6 @@
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
*q++ = colToByte(deviceN.c[cp]);
break;
-#endif
}
*aq++ = alpha;
}
@@ -3400,11 +3288,9 @@
imgData->bitmap->getPixel(x, imgData->y, col);
imgData->pattern->getColor(x, imgData->y, pat);
for (int i = 0; i < splashColorModeNComps[imgData->colorMode]; ++i) {
-#ifdef SPLASH_CMYK
if (imgData->colorMode == splashModeCMYK8 || imgData->colorMode == splashModeDeviceN8)
dest[i] = div255(pat[i] * (255 - col[0]));
else
-#endif
dest[i] = 255 - div255((255 - pat[i]) * (255 - col[0]));
}
dest += splashColorModeNComps[imgData->colorMode];
@@ -3439,11 +3325,9 @@
SplashICCTransform tf;
GfxGray gray;
GfxRGB rgb;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
bool grayIndexed = false;
GfxColor deviceN;
-#endif
unsigned char pix;
int n, i;
@@ -3510,7 +3394,6 @@
}
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
grayIndexed = colorMap->getColorSpace()->getMode() != csDeviceGray;
imgData.lookup = (SplashColorPtr)gmallocn(n, 4);
@@ -3541,17 +3424,11 @@
imgData.lookup[(SPOT_NCOMPS+4)*i +cp] = colToByte(deviceN.c[cp]);
}
break;
-#endif
}
}
-#ifdef SPLASH_CMYK
setOverprintMask(colorMap->getColorSpace(), state->getFillOverprint(),
state->getOverprintMode(), nullptr, grayIndexed);
-#else
- setOverprintMask(colorMap->getColorSpace(), state->getFillOverprint(),
- state->getOverprintMode(), nullptr);
-#endif
if (colorMode == splashModeMono1) {
srcMode = splashModeMono8;
@@ -3595,10 +3472,8 @@
SplashColorPtr q, col;
GfxRGB rgb;
GfxGray gray;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
GfxColor deviceN;
-#endif
unsigned char alpha;
unsigned char *maskPtr;
int maskBit;
@@ -3644,7 +3519,6 @@
*q++ = col[2];
*q++ = 255;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
col = &imgData->lookup[4 * *p];
*q++ = col[0];
@@ -3657,7 +3531,6 @@
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
*q++ = col[cp];
break;
-#endif
}
*aq++ = alpha;
} else {
@@ -3676,7 +3549,6 @@
*q++ = colToByte(rgb.b);
if (imgData->colorMode == splashModeXBGR8) *q++ = 255;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
imgData->colorMap->getCMYK(p, &cmyk);
*q++ = colToByte(cmyk.c);
@@ -3689,7 +3561,6 @@
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
*q++ = colToByte(deviceN.c[cp]);
break;
-#endif
}
*aq++ = alpha;
}
@@ -3716,16 +3587,12 @@
SplashColor maskColor;
GfxGray gray;
GfxRGB rgb;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
GfxColor deviceN;
-#endif
unsigned char pix;
int n, i;
-#ifdef SPLASH_CMYK
colorMap->getColorSpace()->createMapping(bitmap->getSeparationList(), SPOT_NCOMPS);
-#endif
setOverprintMask(colorMap->getColorSpace(), state->getFillOverprint(),
state->getOverprintMode(), nullptr);
@@ -3837,7 +3704,6 @@
imgData.lookup[4*i+3] = 255;
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
imgData.lookup = (SplashColorPtr)gmallocn(n, 4);
for (i = 0; i < n; ++i) {
@@ -3858,7 +3724,6 @@
imgData.lookup[(SPOT_NCOMPS+4)*i + cp] = colToByte(deviceN.c[cp]);
}
break;
-#endif
}
}
@@ -3893,15 +3758,11 @@
SplashColor maskColor;
GfxGray gray;
GfxRGB rgb;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
GfxColor deviceN;
-#endif
unsigned char pix;
-#ifdef SPLASH_CMYK
colorMap->getColorSpace()->createMapping(bitmap->getSeparationList(), SPOT_NCOMPS);
-#endif
setOverprintMask(colorMap->getColorSpace(), state->getFillOverprint(),
state->getOverprintMode(), nullptr);
@@ -4030,7 +3891,6 @@
}
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
imgData.lookup = (SplashColorPtr)gmallocn_checkoverflow(n, 4);
if (likely(imgData.lookup != nullptr)) {
@@ -4055,7 +3915,6 @@
}
}
break;
-#endif
}
}
@@ -4094,7 +3953,7 @@
SplashTransparencyGroup *transpGroup;
SplashColor color;
double xMin, yMin, xMax, yMax, x, y;
- int tx, ty, w, h, i;
+ int tx, ty, w, h;
// transform the bbox
state->transform(bbox[0], bbox[1], &x, &y);
@@ -4194,12 +4053,10 @@
blendingColorSpace->getNComps() == 3)) {
//~ does this need to use BGR8?
colorMode = splashModeRGB8;
-#ifdef SPLASH_CMYK
} else if (blendingColorSpace->getMode() == csDeviceCMYK ||
(blendingColorSpace->getMode() == csICCBased &&
blendingColorSpace->getNComps() == 4)) {
colorMode = splashModeCMYK8;
-#endif
}
}
@@ -4226,9 +4083,7 @@
splash->setStrokePattern(
transpGroup->origSplash->getStrokePattern()->copy());
if (isolated) {
- for (i = 0; i < splashMaxColorComps; ++i) {
- color[i] = 0;
- }
+ splashClearColor(color);
if (colorMode == splashModeXBGR8) color[3] = 255;
splash->clear(color, 0);
} else {
@@ -4306,10 +4161,8 @@
SplashColorPtr p;
GfxGray gray;
GfxRGB rgb;
-#ifdef SPLASH_CMYK
GfxCMYK cmyk;
GfxColor deviceN;
-#endif
double lum, lum2;
int tx, ty, x, y;
@@ -4344,7 +4197,6 @@
color[2] = colToByte(rgb.b);
tSplash->compositeBackground(color);
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
transpGroupStack->blendingColorSpace->getCMYK(backdropColor, &cmyk);
color[0] = colToByte(cmyk.c);
@@ -4359,7 +4211,6 @@
color[cp] = colToByte(deviceN.c[cp]);
tSplash->compositeBackground(color);
break;
-#endif
}
delete tSplash;
}
@@ -4403,7 +4254,6 @@
(0.59 / 255.0) * color[1] +
(0.11 / 255.0) * color[2];
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
case splashModeDeviceN8:
lum = (1 - color[3] / 255.0)
@@ -4414,7 +4264,6 @@
lum = 0;
}
break;
-#endif
}
if (transferFunc) {
transferFunc->transform(&lum, &lum2);
@@ -4626,11 +4475,7 @@
splash = new Splash(bitmap, true);
if (paintType == 2) {
SplashColor clearColor;
-#ifdef SPLASH_CMYK
clearColor[0] = (colorMode == splashModeCMYK8 || colorMode == splashModeDeviceN8) ? 0x00 : 0xFF;
-#else
- clearColor[0] = 0xFF;
-#endif
splash->clear(clearColor, 0);
} else {
splash->clear(paperColor, 0);
@@ -4702,12 +4547,10 @@
case splashModeRGB8:
bDirectColorTranslation = (shadingMode == csDeviceRGB);
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
case splashModeDeviceN8:
bDirectColorTranslation = (shadingMode == csDeviceCMYK);
break;
-#endif
default:
break;
}
@@ -4775,9 +4618,7 @@
state->closePath();
SplashPath path = convertPath(state, state->getPath(), true);
-#ifdef SPLASH_CMYK
pattern->getShading()->getColorSpace()->createMapping(bitmap->getSeparationList(), SPOT_NCOMPS);
-#endif
setOverprintMask(pattern->getShading()->getColorSpace(), state->getFillOverprint(),
state->getOverprintMode(), nullptr);
retVal = (splash->shadedFill(&path, pattern->getShading()->getHasBBox(), pattern) == splashOk);
@@ -4838,9 +4679,7 @@
state->closePath();
SplashPath path = convertPath(state, state->getPath(), true);
-#ifdef SPLASH_CMYK
pattern->getShading()->getColorSpace()->createMapping(bitmap->getSeparationList(), SPOT_NCOMPS);
-#endif
setOverprintMask(pattern->getShading()->getColorSpace(), state->getFillOverprint(),
state->getOverprintMode(), nullptr);
retVal = (splash->shadedFill(&path, pattern->getShading()->getHasBBox(), pattern) == splashOk);
diff --git a/poppler/SplashOutputDev.h b/poppler/SplashOutputDev.h
index ef95f70..72ad9f0 100644
--- a/poppler/SplashOutputDev.h
+++ b/poppler/SplashOutputDev.h
@@ -399,10 +399,8 @@
void setupScreenParams(double hDPI, double vDPI);
SplashPattern *getColor(GfxGray gray);
SplashPattern *getColor(GfxRGB *rgb);
-#ifdef SPLASH_CMYK
SplashPattern *getColor(GfxCMYK *cmyk);
SplashPattern *getColor(GfxColor *deviceN);
-#endif
static void getMatteColor( SplashColorMode colorMode, GfxImageColorMap *colorMap, const GfxColor * matteColor, SplashColor splashMatteColor);
void setOverprintMask(GfxColorSpace *colorSpace, bool overprintFlag,
int overprintMode, const GfxColor *singleColor, bool grayIndexed = false);
diff --git a/qt5/src/poppler-document.cc b/qt5/src/poppler-document.cc
index 81db4ea..9443b3e 100644
--- a/qt5/src/poppler-document.cc
+++ b/qt5/src/poppler-document.cc
@@ -863,11 +863,7 @@
}
bool isOverprintPreviewAvailable() {
-#ifdef SPLASH_CMYK
return true;
-#else
- return false;
-#endif
}
}
diff --git a/qt5/src/poppler-page.cc b/qt5/src/poppler-page.cc
index c4d00a6..6900675 100644
--- a/qt5/src/poppler-page.cc
+++ b/qt5/src/poppler-page.cc
@@ -527,9 +527,7 @@
{
#if defined(HAVE_SPLASH)
SplashColor bgColor;
- bool overprintPreview = false;
-#ifdef SPLASH_CMYK
- overprintPreview = m_page->parentDoc->m_hints & Document::OverprintPreview ? true : false;
+ const bool overprintPreview = m_page->parentDoc->m_hints & Document::OverprintPreview ? true : false;
if (overprintPreview)
{
unsigned char c, m, y, k;
@@ -553,17 +551,13 @@
}
}
else
-#endif
{
bgColor[0] = m_page->parentDoc->paperColor.blue();
bgColor[1] = m_page->parentDoc->paperColor.green();
bgColor[2] = m_page->parentDoc->paperColor.red();
}
- SplashColorMode colorMode = splashModeXBGR8;
-#ifdef SPLASH_CMYK
- if (overprintPreview) colorMode = splashModeDeviceN8;
-#endif
+ const SplashColorMode colorMode = overprintPreview ? splashModeDeviceN8 : splashModeXBGR8;
SplashThinLineMode thinLineMode = splashThinLineDefault;
if (m_page->parentDoc->m_hints & Document::ThinLineShape) thinLineMode = splashThinLineShape;
diff --git a/splash/Splash.cc b/splash/Splash.cc
index 074dfe6..c3e54b8 100644
--- a/splash/Splash.cc
+++ b/splash/Splash.cc
@@ -169,12 +169,9 @@
splashPipeResultColorNoAlphaBlendMono,
splashPipeResultColorNoAlphaBlendRGB,
splashPipeResultColorNoAlphaBlendRGB,
- splashPipeResultColorNoAlphaBlendRGB
-#ifdef SPLASH_CMYK
- ,
+ splashPipeResultColorNoAlphaBlendRGB,
splashPipeResultColorNoAlphaBlendCMYK,
splashPipeResultColorNoAlphaBlendDeviceN
-#endif
};
SplashPipeResultColorCtrl Splash::pipeResultColorAlphaNoBlend[] = {
@@ -182,12 +179,9 @@
splashPipeResultColorAlphaNoBlendMono,
splashPipeResultColorAlphaNoBlendRGB,
splashPipeResultColorAlphaNoBlendRGB,
- splashPipeResultColorAlphaNoBlendRGB
-#ifdef SPLASH_CMYK
- ,
+ splashPipeResultColorAlphaNoBlendRGB,
splashPipeResultColorAlphaNoBlendCMYK,
splashPipeResultColorAlphaNoBlendDeviceN
-#endif
};
SplashPipeResultColorCtrl Splash::pipeResultColorAlphaBlend[] = {
@@ -195,12 +189,9 @@
splashPipeResultColorAlphaBlendMono,
splashPipeResultColorAlphaBlendRGB,
splashPipeResultColorAlphaBlendRGB,
- splashPipeResultColorAlphaBlendRGB
-#ifdef SPLASH_CMYK
- ,
+ splashPipeResultColorAlphaBlendRGB,
splashPipeResultColorAlphaBlendCMYK,
splashPipeResultColorAlphaBlendDeviceN
-#endif
};
//------------------------------------------------------------------------
@@ -310,12 +301,10 @@
pipe->run = &Splash::pipeRunSimpleXBGR8;
} else if (bitmap->mode == splashModeBGR8 && pipe->destAlphaPtr) {
pipe->run = &Splash::pipeRunSimpleBGR8;
-#ifdef SPLASH_CMYK
} else if (bitmap->mode == splashModeCMYK8 && pipe->destAlphaPtr) {
pipe->run = &Splash::pipeRunSimpleCMYK8;
} else if (bitmap->mode == splashModeDeviceN8 && pipe->destAlphaPtr) {
pipe->run = &Splash::pipeRunSimpleDeviceN8;
-#endif
}
} else if (!pipe->pattern && !pipe->noTransparency && !state->softMask &&
pipe->usesShape &&
@@ -331,12 +320,10 @@
pipe->run = &Splash::pipeRunAAXBGR8;
} else if (bitmap->mode == splashModeBGR8 && pipe->destAlphaPtr) {
pipe->run = &Splash::pipeRunAABGR8;
-#ifdef SPLASH_CMYK
} else if (bitmap->mode == splashModeCMYK8 && pipe->destAlphaPtr) {
pipe->run = &Splash::pipeRunAACMYK8;
} else if (bitmap->mode == splashModeDeviceN8 && pipe->destAlphaPtr) {
pipe->run = &Splash::pipeRunAADeviceN8;
-#endif
}
}
}
@@ -348,10 +335,8 @@
SplashColorPtr cSrc;
unsigned char cResult0, cResult1, cResult2, cResult3;
int t;
-#ifdef SPLASH_CMYK
int cp, mask;
unsigned char cResult[SPOT_NCOMPS+4];
-#endif
//----- source color
@@ -364,7 +349,6 @@
pipeIncX(pipe);
return;
}
-#ifdef SPLASH_CMYK
if (bitmap->mode == splashModeCMYK8 || bitmap->mode == splashModeDeviceN8) {
if (state->fillOverprint && state->overprintMode && pipe->pattern->isCMYK()) {
unsigned int overprintMask = 15;
@@ -383,7 +367,6 @@
state->overprintMask = overprintMask;
}
}
-#endif
}
if (pipe->noTransparency && !state->blendFunc) {
@@ -422,7 +405,6 @@
*pipe->destColorPtr++ = state->rgbTransferG[pipe->cSrc[1]];
*pipe->destColorPtr++ = state->rgbTransferR[pipe->cSrc[0]];
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
if (state->overprintMask & 1) {
pipe->destColorPtr[0] = (state->overprintAdditive) ?
@@ -456,7 +438,6 @@
}
pipe->destColorPtr += (SPOT_NCOMPS+4);
break;
-#endif
}
if (pipe->destAlphaPtr) {
*pipe->destAlphaPtr++ = 255;
@@ -481,16 +462,12 @@
destColorPtr += (alpha0X+pipe->x) * 3;
break;
case splashModeXBGR8:
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
-#endif
destColorPtr += (alpha0X+pipe->x) * 4;
break;
-#ifdef SPLASH_CMYK
case splashModeDeviceN8:
destColorPtr += (alpha0X+pipe->x) * (SPOT_NCOMPS + 4);
break;
-#endif
}
} else {
destColorPtr = pipe->destColorPtr;
@@ -518,7 +495,6 @@
cDest[1] = destColorPtr[1];
cDest[2] = destColorPtr[0];
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
cDest[0] = destColorPtr[0];
cDest[1] = destColorPtr[1];
@@ -529,7 +505,6 @@
for (cp = 0; cp < SPOT_NCOMPS + 4; cp++)
cDest[cp] = destColorPtr[cp];
break;
-#endif
}
if (pipe->destAlphaPtr) {
aDest = *pipe->destAlphaPtr;
@@ -565,7 +540,6 @@
} else {
t = (aDest * 255) / pipe->shape - aDest;
switch (bitmap->mode) {
-#ifdef SPLASH_CMYK
case splashModeDeviceN8:
for (cp = 0; cp < SPOT_NCOMPS + 4; cp++)
cSrcNonIso[cp] = clip255(pipe->cSrc[cp] +
@@ -576,7 +550,6 @@
cSrcNonIso[cp] = clip255(pipe->cSrc[cp] +
((pipe->cSrc[cp] - cDest[cp]) * t) / 255);
break;
-#endif
case splashModeXBGR8:
cSrcNonIso[3] = 255;
// fallthrough
@@ -606,13 +579,11 @@
//----- blend function
if (state->blendFunc) {
-#ifdef SPLASH_CMYK
if (bitmap->mode == splashModeDeviceN8) {
for (int k = 4; k < 4 + SPOT_NCOMPS; k++) {
cBlend[k] = 0;
}
}
-#endif
(*state->blendFunc)(cSrc, cDest, cBlend, bitmap->mode);
}
@@ -653,7 +624,6 @@
cResult2 = state->rgbTransferB[div255((255 - aDest) * cSrc[2] +
aDest * cBlend[2])];
break;
-#ifdef SPLASH_CMYK
case splashPipeResultColorNoAlphaBlendCMYK:
cResult0 = state->cmykTransferC[div255((255 - aDest) * cSrc[0] +
aDest * cBlend[0])];
@@ -669,7 +639,6 @@
cResult[cp] = state->deviceNTransfer[cp][div255((255 - aDest) * cSrc[cp] +
aDest * cBlend[cp])];
break;
-#endif
case splashPipeResultColorAlphaNoBlendMono:
if (alphaI == 0) {
@@ -693,7 +662,6 @@
aSrc * cSrc[2]) / alphaI];
}
break;
-#ifdef SPLASH_CMYK
case splashPipeResultColorAlphaNoBlendCMYK:
if (alphaI == 0) {
cResult0 = 0;
@@ -721,7 +689,6 @@
aSrc * cSrc[cp]) / alphaI];
}
break;
-#endif
case splashPipeResultColorAlphaBlendMono:
if (alphaI == 0) {
@@ -753,7 +720,6 @@
alphaI];
}
break;
-#ifdef SPLASH_CMYK
case splashPipeResultColorAlphaBlendCMYK:
if (alphaI == 0) {
cResult0 = 0;
@@ -791,7 +757,6 @@
alphaI];
}
break;
-#endif
}
//----- write destination pixel
@@ -827,7 +792,6 @@
*pipe->destColorPtr++ = cResult1;
*pipe->destColorPtr++ = cResult0;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
if (state->overprintMask & 1) {
pipe->destColorPtr[0] = (state->overprintAdditive) ?
@@ -861,7 +825,6 @@
}
pipe->destColorPtr += (SPOT_NCOMPS+4);
break;
-#endif
}
if (pipe->destAlphaPtr) {
*pipe->destAlphaPtr++ = aResult;
@@ -944,7 +907,6 @@
++pipe->x;
}
-#ifdef SPLASH_CMYK
// special case:
// !pipe->pattern && pipe->noTransparency && !state->blendFunc &&
// bitmap->mode == splashModeCMYK8 && pipe->destAlphaPtr) {
@@ -993,7 +955,6 @@
++pipe->x;
}
-#endif
// special case:
// !pipe->pattern && !pipe->noTransparency && !state->softMask &&
@@ -1235,7 +1196,6 @@
++pipe->x;
}
-#ifdef SPLASH_CMYK
// special case:
// !pipe->pattern && !pipe->noTransparency && !state->softMask &&
// pipe->usesShape && !pipe->alpha0Ptr && !state->blendFunc &&
@@ -1350,7 +1310,6 @@
++pipe->x;
}
-#endif
inline void Splash::pipeSetXY(SplashPipe *pipe, int x, int y) {
pipe->x = x;
@@ -1374,14 +1333,12 @@
case splashModeXBGR8:
pipe->destColorPtr = &bitmap->data[y * bitmap->rowSize + 4 * x];
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
pipe->destColorPtr = &bitmap->data[y * bitmap->rowSize + 4 * x];
break;
case splashModeDeviceN8:
pipe->destColorPtr = &bitmap->data[y * bitmap->rowSize + (SPOT_NCOMPS + 4) * x];
break;
-#endif
}
if (bitmap->alpha) {
pipe->destAlphaPtr = &bitmap->alpha[y * bitmap->width + x];
@@ -1419,14 +1376,12 @@
case splashModeXBGR8:
pipe->destColorPtr += 4;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
pipe->destColorPtr += 4;
break;
case splashModeDeviceN8:
pipe->destColorPtr += (SPOT_NCOMPS+4);
break;
-#endif
}
if (pipe->destAlphaPtr) {
++pipe->destAlphaPtr;
@@ -1996,7 +1951,6 @@
}
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
if (color[0] == color[1] && color[1] == color[2] && color[2] == color[3]) {
if (bitmap->rowSize < 0) {
@@ -2030,7 +1984,6 @@
row += bitmap->rowSize;
}
break;
-#endif
}
if (bitmap->alpha) {
@@ -3733,7 +3686,6 @@
ok = srcMode == splashModeBGR8;
nComps = 3;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
ok = srcMode == splashModeCMYK8;
nComps = 4;
@@ -3742,7 +3694,6 @@
ok = srcMode == splashModeDeviceN8;
nComps = SPOT_NCOMPS+4;
break;
-#endif
default:
ok = false;
break;
@@ -4213,10 +4164,8 @@
unsigned char *lineBuf, *alphaLineBuf;
unsigned int *pixBuf, *alphaPixBuf;
unsigned int pix0, pix1, pix2;
-#ifdef SPLASH_CMYK
unsigned int pix3;
unsigned int pix[SPOT_NCOMPS+4], cp;
-#endif
unsigned int alpha;
unsigned char *destPtr, *destAlphaPtr;
int yp, yq, xp, xq, yt, y, yStep, xt, x, xStep, xx, xxa, d, d0, d1;
@@ -4378,7 +4327,6 @@
*destPtr++ = (unsigned char)pix0;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
// compute the final pixel
@@ -4421,7 +4369,6 @@
for (cp = 0; cp < SPOT_NCOMPS+4; cp++)
*destPtr++ = (unsigned char)pix[cp];
break;
-#endif
case splashModeMono1: // mono1 is not allowed
@@ -4563,7 +4510,6 @@
*destPtr++ = (unsigned char)pix[0];
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
for (i = 0; i < xStep; ++i) {
*destPtr++ = (unsigned char)pix[0];
@@ -4578,7 +4524,6 @@
*destPtr++ = (unsigned char)pix[cp];
}
break;
-#endif
}
// process alpha
@@ -4715,7 +4660,6 @@
*destPtr++ = (unsigned char)pix[0];
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
for (i = 0; i < yStep; ++i) {
destPtr = destPtr0 + (i * scaledWidth + x) * nComps;
@@ -4732,7 +4676,6 @@
*destPtr++ = (unsigned char)pix[cp];
}
break;
-#endif
}
// process alpha
@@ -4868,7 +4811,6 @@
}
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
for (i = 0; i < yStep; ++i) {
for (j = 0; j < xStep; ++j) {
@@ -4889,7 +4831,6 @@
}
}
break;
-#endif
}
// process alpha
@@ -5029,7 +4970,6 @@
*destPtr++ = (unsigned char)pix[1];
*destPtr++ = (unsigned char)pix[0];
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
*destPtr++ = (unsigned char)pix[0];
*destPtr++ = (unsigned char)pix[1];
@@ -5040,7 +4980,6 @@
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
*destPtr++ = (unsigned char)pix[cp];
break;
-#endif
}
// process alpha
@@ -5356,10 +5295,8 @@
SplashColorPtr p;
unsigned char *q;
unsigned char alpha, alpha1, c, color0, color1, color2;
-#ifdef SPLASH_CMYK
unsigned char color3;
unsigned char colorsp[SPOT_NCOMPS+4], cp;
-#endif
int x, y, mask;
if (unlikely(bitmap->alpha == nullptr)) {
@@ -5458,7 +5395,6 @@
}
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
color0 = color[0];
color1 = color[1];
@@ -5511,7 +5447,6 @@
}
}
break;
-#endif
}
memset(bitmap->alpha, 255, bitmap->width * bitmap->height);
}
@@ -5567,14 +5502,12 @@
case splashModeXBGR8:
colorComps=4;
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
colorComps=4;
break;
case splashModeDeviceN8:
colorComps=SPOT_NCOMPS+4;
break;
-#endif
}
SplashPipe pipe;
@@ -5926,7 +5859,6 @@
}
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
for (y = 0; y < height; ++y) {
p = &bitmap->data[(yDest + y) * bitmap->rowSize + 4 * xDest];
@@ -5949,7 +5881,6 @@
}
}
break;
-#endif
}
if (bitmap->alpha) {
diff --git a/splash/Splash.h b/splash/Splash.h
index d458a27..f18d7ae 100644
--- a/splash/Splash.h
+++ b/splash/Splash.h
@@ -58,25 +58,18 @@
//------------------------------------------------------------------------
enum SplashPipeResultColorCtrl {
-#ifdef SPLASH_CMYK
splashPipeResultColorNoAlphaBlendCMYK,
splashPipeResultColorNoAlphaBlendDeviceN,
-#endif
splashPipeResultColorNoAlphaBlendRGB,
splashPipeResultColorNoAlphaBlendMono,
splashPipeResultColorAlphaNoBlendMono,
splashPipeResultColorAlphaNoBlendRGB,
-#ifdef SPLASH_CMYK
splashPipeResultColorAlphaNoBlendCMYK,
splashPipeResultColorAlphaNoBlendDeviceN,
-#endif
splashPipeResultColorAlphaBlendMono,
- splashPipeResultColorAlphaBlendRGB
-#ifdef SPLASH_CMYK
- ,
+ splashPipeResultColorAlphaBlendRGB,
splashPipeResultColorAlphaBlendCMYK,
splashPipeResultColorAlphaBlendDeviceN
-#endif
};
//------------------------------------------------------------------------
@@ -297,19 +290,15 @@
void pipeRunSimpleRGB8(SplashPipe *pipe);
void pipeRunSimpleXBGR8(SplashPipe *pipe);
void pipeRunSimpleBGR8(SplashPipe *pipe);
-#ifdef SPLASH_CMYK
void pipeRunSimpleCMYK8(SplashPipe *pipe);
void pipeRunSimpleDeviceN8(SplashPipe *pipe);
-#endif
void pipeRunAAMono1(SplashPipe *pipe);
void pipeRunAAMono8(SplashPipe *pipe);
void pipeRunAARGB8(SplashPipe *pipe);
void pipeRunAAXBGR8(SplashPipe *pipe);
void pipeRunAABGR8(SplashPipe *pipe);
-#ifdef SPLASH_CMYK
void pipeRunAACMYK8(SplashPipe *pipe);
void pipeRunAADeviceN8(SplashPipe *pipe);
-#endif
void pipeSetXY(SplashPipe *pipe, int x, int y);
void pipeIncX(SplashPipe *pipe);
void drawPixel(SplashPipe *pipe, int x, int y, bool noClip);
diff --git a/splash/SplashBitmap.cc b/splash/SplashBitmap.cc
index d12ef46..6b3957d 100644
--- a/splash/SplashBitmap.cc
+++ b/splash/SplashBitmap.cc
@@ -89,7 +89,6 @@
rowSize = -1;
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
if (width > 0 && width <= INT_MAX / 4) {
rowSize = width * 4;
@@ -104,7 +103,6 @@
rowSize = -1;
}
break;
-#endif
}
if (rowSize > 0) {
rowSize += rowPad - 1;
@@ -249,14 +247,12 @@
}
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
case splashModeDeviceN8:
// PNM doesn't support CMYK
error(errInternal, -1, "unsupported SplashBitmap mode");
return splashErrGeneric;
break;
-#endif
}
return splashOk;
}
@@ -310,7 +306,6 @@
pixel[1] = p[1];
pixel[2] = p[0];
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
p = &data[y * rowSize + 4 * x];
pixel[0] = p[0];
@@ -323,7 +318,6 @@
for (int cp = 0; cp < SPOT_NCOMPS + 4; cp++)
pixel[cp] = p[cp];
break;
-#endif
}
}
@@ -379,12 +373,10 @@
#endif
#ifdef ENABLE_LIBJPEG
- #ifdef SPLASH_CMYK
case splashFormatJpegCMYK:
writer = new JpegWriter(JpegWriter::CMYK);
setJpegParams(writer, params);
break;
- #endif
case splashFormatJpeg:
writer = new JpegWriter();
setJpegParams(writer, params);
@@ -406,12 +398,10 @@
case splashModeBGR8:
writer = new TiffWriter(TiffWriter::RGB);
break;
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
case splashModeDeviceN8:
writer = new TiffWriter(TiffWriter::CMYK);
break;
-#endif
default:
fprintf(stderr, "TiffWriter: Mode %d not supported\n", mode);
writer = new TiffWriter();
@@ -446,7 +436,6 @@
m = byteToDbl(col[1]);
y = byteToDbl(col[2]);
k = byteToDbl(col[3]);
-#ifdef SPLASH_CMYK
if (separationList->size() > 0) {
for (std::size_t i = 0; i < separationList->size(); i++) {
if (col[i+4] > 0) {
@@ -470,7 +459,6 @@
if (y > 1) y = 1;
if (k > 1) k = 1;
}
-#endif
c1 = 1 - c;
m1 = 1 - m;
y1 = 1 - y;
@@ -492,7 +480,6 @@
m = byteToDbl(col[1]);
y = byteToDbl(col[2]);
k = byteToDbl(col[3]);
-#ifdef SPLASH_CMYK
if (separationList->size() > 0) {
for (std::size_t i = 0; i < separationList->size(); i++) {
if (col[i+4] > 0) {
@@ -516,7 +503,6 @@
if (y > 1) y = 1;
if (k > 1) k = 1;
}
-#endif
c1 = 1 - c;
m1 = 1 - m;
y1 = 1 - y;
@@ -596,7 +582,6 @@
return newdata != nullptr;
}
-#ifdef SPLASH_CMYK
void SplashBitmap::getCMYKLine(int yl, SplashColorPtr line) {
SplashColor col;
@@ -636,13 +621,10 @@
*line++ = col[3];
}
}
-#endif
SplashError SplashBitmap::writeImgFile(ImgWriter *writer, FILE *f, int hDPI, int vDPI, SplashColorMode imageWriterFormat) {
if (mode != splashModeRGB8 && mode != splashModeMono8 && mode != splashModeMono1 && mode != splashModeXBGR8 && mode != splashModeBGR8
-#ifdef SPLASH_CMYK
&& mode != splashModeCMYK8 && mode != splashModeDeviceN8
-#endif
) {
error(errInternal, -1, "unsupported SplashBitmap mode");
return splashErrGeneric;
@@ -653,7 +635,6 @@
}
switch (mode) {
-#ifdef SPLASH_CMYK
case splashModeCMYK8:
if (writer->supportCMYK()) {
SplashColorPtr row;
@@ -704,7 +685,6 @@
delete[] row;
}
break;
-#endif
case splashModeRGB8:
{
SplashColorPtr row;
diff --git a/splash/SplashBitmap.h b/splash/SplashBitmap.h
index 8ffe15c..3b98092 100644
--- a/splash/SplashBitmap.h
+++ b/splash/SplashBitmap.h
@@ -98,9 +98,7 @@
void getPixel(int x, int y, SplashColorPtr pixel);
void getRGBLine(int y, SplashColorPtr line);
void getXBGRLine(int y, SplashColorPtr line, ConversionMode conversionMode = conversionOpaque);
-#ifdef SPLASH_CMYK
void getCMYKLine(int y, SplashColorPtr line);
-#endif
unsigned char getAlpha(int x, int y);
// Caller takes ownership of the bitmap data. The SplashBitmap
diff --git a/splash/SplashState.cc b/splash/SplashState.cc
index 733fa0a..9d4eb6f 100644
--- a/splash/SplashState.cc
+++ b/splash/SplashState.cc
@@ -35,10 +35,7 @@
// number of components in each color mode
int splashColorModeNComps[] = {
- 1, 1, 3, 3, 4
-#ifdef SPLASH_CMYK
- , 4, 4 + SPOT_NCOMPS
-#endif
+ 1, 1, 3, 3, 4, 4, 4 + SPOT_NCOMPS
};
SplashState::SplashState(int width, int height, bool vectorAntialias,
@@ -80,14 +77,12 @@
rgbTransferG[i] = (unsigned char)i;
rgbTransferB[i] = (unsigned char)i;
grayTransfer[i] = (unsigned char)i;
-#ifdef SPLASH_CMYK
cmykTransferC[i] = (unsigned char)i;
cmykTransferM[i] = (unsigned char)i;
cmykTransferY[i] = (unsigned char)i;
cmykTransferK[i] = (unsigned char)i;
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
deviceNTransfer[cp][i] = (unsigned char)i;
-#endif
}
overprintMask = 0xffffffff;
overprintAdditive = false;
@@ -133,14 +128,12 @@
rgbTransferG[i] = (unsigned char)i;
rgbTransferB[i] = (unsigned char)i;
grayTransfer[i] = (unsigned char)i;
-#ifdef SPLASH_CMYK
cmykTransferC[i] = (unsigned char)i;
cmykTransferM[i] = (unsigned char)i;
cmykTransferY[i] = (unsigned char)i;
cmykTransferK[i] = (unsigned char)i;
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
deviceNTransfer[cp][i] = (unsigned char)i;
-#endif
}
overprintMask = 0xffffffff;
overprintAdditive = false;
@@ -184,14 +177,12 @@
memcpy(rgbTransferG, state->rgbTransferG, 256);
memcpy(rgbTransferB, state->rgbTransferB, 256);
memcpy(grayTransfer, state->grayTransfer, 256);
-#ifdef SPLASH_CMYK
memcpy(cmykTransferC, state->cmykTransferC, 256);
memcpy(cmykTransferM, state->cmykTransferM, 256);
memcpy(cmykTransferY, state->cmykTransferY, 256);
memcpy(cmykTransferK, state->cmykTransferK, 256);
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
memcpy(deviceNTransfer[cp], state->deviceNTransfer[cp], 256);
-#endif
overprintMask = state->overprintMask;
overprintAdditive = state->overprintAdditive;
next = nullptr;
@@ -246,22 +237,18 @@
void SplashState::setTransfer(unsigned char *red, unsigned char *green, unsigned char *blue,
unsigned char *gray) {
-#ifdef SPLASH_CMYK
- int i;
-
- for (i = 0; i < 256; ++i) {
+ for (int i = 0; i < 256; ++i) {
cmykTransferC[i] = 255 - rgbTransferR[255 - i];
cmykTransferM[i] = 255 - rgbTransferG[255 - i];
cmykTransferY[i] = 255 - rgbTransferB[255 - i];
cmykTransferK[i] = 255 - grayTransfer[255 - i];
}
- for (i = 0; i < 256; ++i) {
+ for (int i = 0; i < 256; ++i) {
deviceNTransfer[0][i] = 255 - rgbTransferR[255 - i];
deviceNTransfer[1][i] = 255 - rgbTransferG[255 - i];
deviceNTransfer[2][i] = 255 - rgbTransferB[255 - i];
deviceNTransfer[3][i] = 255 - grayTransfer[255 - i];
}
-#endif
memcpy(rgbTransferR, red, 256);
memcpy(rgbTransferG, green, 256);
memcpy(rgbTransferB, blue, 256);
diff --git a/splash/SplashState.h b/splash/SplashState.h
index e367f5f..58d8338 100644
--- a/splash/SplashState.h
+++ b/splash/SplashState.h
@@ -125,13 +125,11 @@
rgbTransferG[256],
rgbTransferB[256];
unsigned char grayTransfer[256];
-#ifdef SPLASH_CMYK
unsigned char cmykTransferC[256],
cmykTransferM[256],
cmykTransferY[256],
cmykTransferK[256];
unsigned char deviceNTransfer[SPOT_NCOMPS+4][256];
-#endif
unsigned int overprintMask;
bool overprintAdditive;
diff --git a/splash/SplashTypes.h b/splash/SplashTypes.h
index deb9188..b00693f 100644
--- a/splash/SplashTypes.h
+++ b/splash/SplashTypes.h
@@ -27,6 +27,8 @@
#ifndef SPLASHTYPES_H
#define SPLASHTYPES_H
+#include <cstddef>
+
//------------------------------------------------------------------------
// coordinates
//------------------------------------------------------------------------
@@ -59,16 +61,13 @@
// RGBRGB...
splashModeBGR8, // 1 byte per component, 3 bytes per pixel:
// BGRBGR...
- splashModeXBGR8 // 1 byte per component, 4 bytes per pixel:
+ splashModeXBGR8, // 1 byte per component, 4 bytes per pixel:
// XBGRXBGR...
-#ifdef SPLASH_CMYK
- ,
splashModeCMYK8, // 1 byte per component, 4 bytes per pixel:
// CMYKCMYK...
splashModeDeviceN8 // 1 byte per component,
// 4 bytes + n bytes spot colors per pixel:
// CMYKSSSSCMYKSSSS...
-#endif
};
enum SplashThinLineMode {
@@ -82,11 +81,7 @@
extern int splashColorModeNComps[];
// max number of components in any SplashColor
-#ifdef SPLASH_CMYK
-#define splashMaxColorComps SPOT_NCOMPS+4
-#else
-#define splashMaxColorComps 4
-#endif
+constexpr std::size_t splashMaxColorComps = SPOT_NCOMPS+4;
typedef unsigned char SplashColor[splashMaxColorComps];
typedef unsigned char *SplashColorPtr;
@@ -101,7 +96,6 @@
static inline unsigned char splashBGR8G(SplashColorPtr bgr8) { return bgr8[1]; }
static inline unsigned char splashBGR8B(SplashColorPtr bgr8) { return bgr8[0]; }
-#ifdef SPLASH_CMYK
// CMYK8
static inline unsigned char splashCMYK8C(SplashColorPtr cmyk8) { return cmyk8[0]; }
static inline unsigned char splashCMYK8M(SplashColorPtr cmyk8) { return cmyk8[1]; }
@@ -114,39 +108,32 @@
static inline unsigned char splashDeviceN8Y(SplashColorPtr deviceN8) { return deviceN8[2]; }
static inline unsigned char splashDeviceN8K(SplashColorPtr deviceN8) { return deviceN8[3]; }
static inline unsigned char splashDeviceN8S(SplashColorPtr deviceN8, int nSpot) { return deviceN8[4 + nSpot]; }
-#endif
static inline void splashClearColor(SplashColorPtr dest) {
dest[0] = 0;
dest[1] = 0;
dest[2] = 0;
-#ifdef SPLASH_CMYK
dest[3] = 0;
for (int i = 4; i < SPOT_NCOMPS + 4; i++)
dest[i] = 0;
-#endif
}
static inline void splashColorCopy(SplashColorPtr dest, SplashColorPtr src) {
dest[0] = src[0];
dest[1] = src[1];
dest[2] = src[2];
-#ifdef SPLASH_CMYK
dest[3] = src[3];
for (int i = 4; i < SPOT_NCOMPS + 4; i++)
dest[i] = src[i];
-#endif
}
static inline void splashColorXor(SplashColorPtr dest, SplashColorPtr src) {
dest[0] ^= src[0];
dest[1] ^= src[1];
dest[2] ^= src[2];
-#ifdef SPLASH_CMYK
dest[3] ^= src[3];
for (int i = 4; i < SPOT_NCOMPS + 4; i++)
dest[i] ^= src[i];
-#endif
}
//------------------------------------------------------------------------
diff --git a/utils/pdftoppm.cc b/utils/pdftoppm.cc
index 03d416e..48a39f7 100644
--- a/utils/pdftoppm.cc
+++ b/utils/pdftoppm.cc
@@ -97,9 +97,7 @@
static int jpegQuality = -1;
static bool jpegProgressive = false;
static bool jpegOptimize = false;
-#ifdef SPLASH_CMYK
static bool overprint = false;
-#endif
static char enableFreeTypeStr[16] = "";
static char antialiasStr[16] = "";
static char vectorAntialiasStr[16] = "";
@@ -170,17 +168,13 @@
#ifdef ENABLE_LIBJPEG
{"-jpeg", argFlag, &jpeg, 0,
"generate a JPEG file"},
-#ifdef SPLASH_CMYK
{"-jpegcmyk",argFlag, &jpegcmyk, 0,
"generate a CMYK JPEG file"},
-#endif
{"-jpegopt", argGooString, &jpegOpt, 0,
"jpeg options, with format <opt1>=<val1>[,<optN>=<valN>]*"},
#endif
-#ifdef SPLASH_CMYK
{"-overprint",argFlag, &overprint, 0,
"enable overprint"},
-#endif
#ifdef ENABLE_LIBTIFF
{"-tiff", argFlag, &tiff, 0,
"generate a TIFF file"},
@@ -368,9 +362,7 @@
// process the job
SplashOutputDev *splashOut = new SplashOutputDev(mono ? splashModeMono1 :
gray ? splashModeMono8 :
-#ifdef SPLASH_CMYK
(jpegcmyk || overprint) ? splashModeDeviceN8 :
-#endif
splashModeRGB8, 4, false, *pageJob.paperColor, true, thinLineMode);
splashOut->setFontAntialias(fontAntialias);
splashOut->setVectorAntialias(vectorAntialias);
@@ -524,14 +516,11 @@
}
// write PPM files
-#ifdef SPLASH_CMYK
if (jpegcmyk || overprint) {
globalParams->setOverprintPreview(true);
for (int cp = 0; cp < SPOT_NCOMPS+4; cp++)
paperColor[cp] = 0;
- } else
-#endif
- {
+ } else {
paperColor[0] = 255;
paperColor[1] = 255;
paperColor[2] = 255;
@@ -541,9 +530,7 @@
splashOut = new SplashOutputDev(mono ? splashModeMono1 :
gray ? splashModeMono8 :
-#ifdef SPLASH_CMYK
(jpegcmyk || overprint) ? splashModeDeviceN8 :
-#endif
splashModeRGB8, 4,
false, paperColor, true, thinLineMode);
diff --git a/utils/pdftops.cc b/utils/pdftops.cc
index d3d8ffc..00ec789 100644
--- a/utils/pdftops.cc
+++ b/utils/pdftops.cc
@@ -114,9 +114,7 @@
static bool quiet = false;
static bool printVersion = false;
static bool printHelp = false;
-#ifdef SPLASH_CMYK
static bool overprint = false;
-#endif
static const ArgDesc argDesc[] = {
{"-f", argInt, &firstPage, 0,
@@ -187,10 +185,8 @@
"owner password (for encrypted files)"},
{"-upw", argString, userPassword, sizeof(userPassword),
"user password (for encrypted files)"},
-#ifdef SPLASH_CMYK
{"-overprint",argFlag, &overprint, 0,
"enable overprint"},
-#endif
{"-q", argFlag, &quiet, 0,
"don't print any messages or errors"},
{"-v", argFlag, &printVersion, 0,
@@ -288,11 +284,9 @@
goto err0;
}
}
-#ifdef SPLASH_CMYK
if (overprint) {
globalParams->setOverprintPreview(true);
}
-#endif
if (expand) {
globalParams->setPSExpandSmaller(true);
}