SplashState.cc (xpdf-4.03) | : | SplashState.cc (xpdf-4.04) | ||
---|---|---|---|---|
skipping to change at line 66 | skipping to change at line 66 | |||
lineDash = NULL; | lineDash = NULL; | |||
lineDashLength = 0; | lineDashLength = 0; | |||
lineDashPhase = 0; | lineDashPhase = 0; | |||
strokeAdjust = splashStrokeAdjustOff; | strokeAdjust = splashStrokeAdjustOff; | |||
clip = new SplashClip(0, 0, width, height); | clip = new SplashClip(0, 0, width, height); | |||
clipIsShared = gFalse; | clipIsShared = gFalse; | |||
softMask = NULL; | softMask = NULL; | |||
deleteSoftMask = gFalse; | deleteSoftMask = gFalse; | |||
inNonIsolatedGroup = gFalse; | inNonIsolatedGroup = gFalse; | |||
inKnockoutGroup = gFalse; | inKnockoutGroup = gFalse; | |||
#if SPLASH_CMYK | ||||
rgbTransferR = (Guchar *)gmalloc(8 * 256); | ||||
rgbTransferG = rgbTransferR + 256; | ||||
rgbTransferB = rgbTransferG + 256; | ||||
grayTransfer = rgbTransferB + 256; | ||||
cmykTransferC = grayTransfer + 256; | ||||
cmykTransferM = cmykTransferC + 256; | ||||
cmykTransferY = cmykTransferM + 256; | ||||
cmykTransferK = cmykTransferY + 256; | ||||
#else | ||||
rgbTransferR = (Guchar *)gmalloc(4 * 256); | ||||
rgbTransferG = rgbTransferR + 256; | ||||
rgbTransferB = rgbTransferG + 256; | ||||
grayTransfer = rgbTransferB + 256; | ||||
#endif | ||||
for (i = 0; i < 256; ++i) { | for (i = 0; i < 256; ++i) { | |||
rgbTransferR[i] = (Guchar)i; | rgbTransferR[i] = (Guchar)i; | |||
rgbTransferG[i] = (Guchar)i; | rgbTransferG[i] = (Guchar)i; | |||
rgbTransferB[i] = (Guchar)i; | rgbTransferB[i] = (Guchar)i; | |||
grayTransfer[i] = (Guchar)i; | grayTransfer[i] = (Guchar)i; | |||
#if SPLASH_CMYK | #if SPLASH_CMYK | |||
cmykTransferC[i] = (Guchar)i; | cmykTransferC[i] = (Guchar)i; | |||
cmykTransferM[i] = (Guchar)i; | cmykTransferM[i] = (Guchar)i; | |||
cmykTransferY[i] = (Guchar)i; | cmykTransferY[i] = (Guchar)i; | |||
cmykTransferK[i] = (Guchar)i; | cmykTransferK[i] = (Guchar)i; | |||
#endif | #endif | |||
} | } | |||
transferIsShared = gFalse; | ||||
overprintMask = 0xffffffff; | overprintMask = 0xffffffff; | |||
enablePathSimplification = gFalse; | enablePathSimplification = gFalse; | |||
next = NULL; | next = NULL; | |||
} | } | |||
SplashState::SplashState(int width, int height, GBool vectorAntialias, | SplashState::SplashState(int width, int height, GBool vectorAntialias, | |||
SplashScreen *screenA) { | SplashScreen *screenA) { | |||
SplashColor color; | SplashColor color; | |||
int i; | int i; | |||
skipping to change at line 113 | skipping to change at line 129 | |||
lineDash = NULL; | lineDash = NULL; | |||
lineDashLength = 0; | lineDashLength = 0; | |||
lineDashPhase = 0; | lineDashPhase = 0; | |||
strokeAdjust = splashStrokeAdjustOff; | strokeAdjust = splashStrokeAdjustOff; | |||
clip = new SplashClip(0, 0, width, height); | clip = new SplashClip(0, 0, width, height); | |||
clipIsShared = gFalse; | clipIsShared = gFalse; | |||
softMask = NULL; | softMask = NULL; | |||
deleteSoftMask = gFalse; | deleteSoftMask = gFalse; | |||
inNonIsolatedGroup = gFalse; | inNonIsolatedGroup = gFalse; | |||
inKnockoutGroup = gFalse; | inKnockoutGroup = gFalse; | |||
#if SPLASH_CMYK | ||||
rgbTransferR = (Guchar *)gmalloc(8 * 256); | ||||
rgbTransferG = rgbTransferR + 256; | ||||
rgbTransferB = rgbTransferG + 256; | ||||
grayTransfer = rgbTransferB + 256; | ||||
cmykTransferC = grayTransfer + 256; | ||||
cmykTransferM = cmykTransferC + 256; | ||||
cmykTransferY = cmykTransferM + 256; | ||||
cmykTransferK = cmykTransferY + 256; | ||||
#else | ||||
rgbTransferR = (Guchar *)gmalloc(4 * 256); | ||||
rgbTransferG = rgbTransferR + 256; | ||||
rgbTransferB = rgbTransferG + 256; | ||||
grayTransfer = rgbTransferB + 256; | ||||
#endif | ||||
for (i = 0; i < 256; ++i) { | for (i = 0; i < 256; ++i) { | |||
rgbTransferR[i] = (Guchar)i; | rgbTransferR[i] = (Guchar)i; | |||
rgbTransferG[i] = (Guchar)i; | rgbTransferG[i] = (Guchar)i; | |||
rgbTransferB[i] = (Guchar)i; | rgbTransferB[i] = (Guchar)i; | |||
grayTransfer[i] = (Guchar)i; | grayTransfer[i] = (Guchar)i; | |||
#if SPLASH_CMYK | #if SPLASH_CMYK | |||
cmykTransferC[i] = (Guchar)i; | cmykTransferC[i] = (Guchar)i; | |||
cmykTransferM[i] = (Guchar)i; | cmykTransferM[i] = (Guchar)i; | |||
cmykTransferY[i] = (Guchar)i; | cmykTransferY[i] = (Guchar)i; | |||
cmykTransferK[i] = (Guchar)i; | cmykTransferK[i] = (Guchar)i; | |||
#endif | #endif | |||
} | } | |||
transferIsShared = gFalse; | ||||
overprintMask = 0xffffffff; | overprintMask = 0xffffffff; | |||
enablePathSimplification = gFalse; | enablePathSimplification = gFalse; | |||
next = NULL; | next = NULL; | |||
} | } | |||
SplashState::SplashState(SplashState *state) { | SplashState::SplashState(SplashState *state) { | |||
memcpy(matrix, state->matrix, 6 * sizeof(SplashCoord)); | memcpy(matrix, state->matrix, 6 * sizeof(SplashCoord)); | |||
strokePattern = state->strokePattern->copy(); | strokePattern = state->strokePattern->copy(); | |||
fillPattern = state->fillPattern->copy(); | fillPattern = state->fillPattern->copy(); | |||
screen = state->screen->copy(); | screen = state->screen->copy(); | |||
skipping to change at line 159 | skipping to change at line 191 | |||
lineDashLength = 0; | lineDashLength = 0; | |||
} | } | |||
lineDashPhase = state->lineDashPhase; | lineDashPhase = state->lineDashPhase; | |||
strokeAdjust = state->strokeAdjust; | strokeAdjust = state->strokeAdjust; | |||
clip = state->clip; | clip = state->clip; | |||
clipIsShared = gTrue; | clipIsShared = gTrue; | |||
softMask = state->softMask; | softMask = state->softMask; | |||
deleteSoftMask = gFalse; | deleteSoftMask = gFalse; | |||
inNonIsolatedGroup = state->inNonIsolatedGroup; | inNonIsolatedGroup = state->inNonIsolatedGroup; | |||
inKnockoutGroup = state->inKnockoutGroup; | inKnockoutGroup = state->inKnockoutGroup; | |||
memcpy(rgbTransferR, state->rgbTransferR, 256); | rgbTransferR = state->rgbTransferR; | |||
memcpy(rgbTransferG, state->rgbTransferG, 256); | rgbTransferG = state->rgbTransferG; | |||
memcpy(rgbTransferB, state->rgbTransferB, 256); | rgbTransferB = state->rgbTransferB; | |||
memcpy(grayTransfer, state->grayTransfer, 256); | grayTransfer = state->grayTransfer; | |||
#if SPLASH_CMYK | #if SPLASH_CMYK | |||
memcpy(cmykTransferC, state->cmykTransferC, 256); | cmykTransferC = state->cmykTransferC; | |||
memcpy(cmykTransferM, state->cmykTransferM, 256); | cmykTransferM = state->cmykTransferM; | |||
memcpy(cmykTransferY, state->cmykTransferY, 256); | cmykTransferY = state->cmykTransferY; | |||
memcpy(cmykTransferK, state->cmykTransferK, 256); | cmykTransferK = state->cmykTransferK; | |||
#endif | #endif | |||
transferIsShared = gTrue; | ||||
overprintMask = state->overprintMask; | overprintMask = state->overprintMask; | |||
enablePathSimplification = state->enablePathSimplification; | enablePathSimplification = state->enablePathSimplification; | |||
next = NULL; | next = NULL; | |||
} | } | |||
SplashState::~SplashState() { | SplashState::~SplashState() { | |||
delete strokePattern; | delete strokePattern; | |||
delete fillPattern; | delete fillPattern; | |||
delete screen; | delete screen; | |||
gfree(lineDash); | gfree(lineDash); | |||
if (!clipIsShared) { | if (!clipIsShared) { | |||
delete clip; | delete clip; | |||
} | } | |||
if (!transferIsShared) { | ||||
gfree(rgbTransferR); | ||||
} | ||||
if (deleteSoftMask && softMask) { | if (deleteSoftMask && softMask) { | |||
delete softMask; | delete softMask; | |||
} | } | |||
} | } | |||
void SplashState::setStrokePattern(SplashPattern *strokePatternA) { | void SplashState::setStrokePattern(SplashPattern *strokePatternA) { | |||
delete strokePattern; | delete strokePattern; | |||
strokePattern = strokePatternA; | strokePattern = strokePatternA; | |||
} | } | |||
skipping to change at line 268 | skipping to change at line 304 | |||
SplashError SplashState::clipToPath(SplashPath *path, GBool eo) { | SplashError SplashState::clipToPath(SplashPath *path, GBool eo) { | |||
if (clipIsShared) { | if (clipIsShared) { | |||
clip = clip->copy(); | clip = clip->copy(); | |||
clipIsShared = gFalse; | clipIsShared = gFalse; | |||
} | } | |||
return clip->clipToPath(path, matrix, flatness, eo, | return clip->clipToPath(path, matrix, flatness, eo, | |||
enablePathSimplification, strokeAdjust); | enablePathSimplification, strokeAdjust); | |||
} | } | |||
void SplashState::setSoftMask(SplashBitmap *softMaskA) { | void SplashState::setSoftMask(SplashBitmap *softMaskA, GBool deleteBitmap) { | |||
if (deleteSoftMask) { | if (deleteSoftMask) { | |||
delete softMask; | delete softMask; | |||
} | } | |||
softMask = softMaskA; | softMask = softMaskA; | |||
deleteSoftMask = gTrue; | deleteSoftMask = deleteBitmap; | |||
} | } | |||
void SplashState::setTransfer(Guchar *red, Guchar *green, Guchar *blue, | void SplashState::setTransfer(Guchar *red, Guchar *green, Guchar *blue, | |||
Guchar *gray) { | Guchar *gray) { | |||
#if SPLASH_CMYK | #if SPLASH_CMYK | |||
int i; | int i; | |||
#endif | #endif | |||
if (transferIsShared) { | ||||
#if SPLASH_CMYK | ||||
rgbTransferR = (Guchar *)gmalloc(8 * 256); | ||||
rgbTransferG = rgbTransferR + 256; | ||||
rgbTransferB = rgbTransferG + 256; | ||||
grayTransfer = rgbTransferB + 256; | ||||
cmykTransferC = grayTransfer + 256; | ||||
cmykTransferM = cmykTransferC + 256; | ||||
cmykTransferY = cmykTransferM + 256; | ||||
cmykTransferK = cmykTransferY + 256; | ||||
#else | ||||
rgbTransferR = (Guchar *)gmalloc(4 * 256); | ||||
rgbTransferG = rgbTransferR + 256; | ||||
rgbTransferB = rgbTransferG + 256; | ||||
grayTransfer = rgbTransferB + 256; | ||||
#endif | ||||
transferIsShared = gFalse; | ||||
} | ||||
memcpy(rgbTransferR, red, 256); | memcpy(rgbTransferR, red, 256); | |||
memcpy(rgbTransferG, green, 256); | memcpy(rgbTransferG, green, 256); | |||
memcpy(rgbTransferB, blue, 256); | memcpy(rgbTransferB, blue, 256); | |||
memcpy(grayTransfer, gray, 256); | memcpy(grayTransfer, gray, 256); | |||
#if SPLASH_CMYK | #if SPLASH_CMYK | |||
for (i = 0; i < 256; ++i) { | for (i = 0; i < 256; ++i) { | |||
cmykTransferC[i] = (Guchar)(255 - rgbTransferR[255 - i]); | cmykTransferC[i] = (Guchar)(255 - rgbTransferR[255 - i]); | |||
cmykTransferM[i] = (Guchar)(255 - rgbTransferG[255 - i]); | cmykTransferM[i] = (Guchar)(255 - rgbTransferG[255 - i]); | |||
cmykTransferY[i] = (Guchar)(255 - rgbTransferB[255 - i]); | cmykTransferY[i] = (Guchar)(255 - rgbTransferB[255 - i]); | |||
cmykTransferK[i] = (Guchar)(255 - grayTransfer[255 - i]); | cmykTransferK[i] = (Guchar)(255 - grayTransfer[255 - i]); | |||
End of changes. 10 change blocks. | ||||
11 lines changed or deleted | 65 lines changed or added |