summaryrefslogtreecommitdiff
path: root/poppler/CairoOutputDev.h
diff options
context:
space:
mode:
authorAlbert Astals Cid <aacid@kde.org>2012-01-15 23:28:51 +0100
committerAlbert Astals Cid <aacid@kde.org>2012-01-15 23:28:51 +0100
commit9c092e17e8f0cf0335b431a223e6e44bddc27e64 (patch)
treef9d9d8f8021ca92b2b65b516252b0587de2771cf /poppler/CairoOutputDev.h
parentefe115f22f8f00a2863ef265ad6f4e7cc2e0336c (diff)
[xpdf] More Splash and Gfx changes from Thomas
1. merge of blend changes Here I had not only merged the changed in blend modes, I made also a few changes in the SPLASH_CMYK area, so that the already sent PDF now also be rendered correctly with the -jpegcmyk option 2. merge of font handling in SplashOutputDev.cc There were a few changes left in font handling, I took them over 3. merge of getcolor-changes The getcolor changes win a price for well defined C++ code. I wouldn't have merged them, if there were not a lot of other things to merge. 4. merge of image handling in SplashOutputDev.cc I merged the left changes in image handling including colorizing masks in pattern colorspace 5. cleanup of overprint I tested the overprint implementation of Derek. They succeed only in 70 % percent of the PDF where my solution had success, but Derek's solution is much cleaner, and I'm sure that I could also fix the rest in it. BUT: as I already considered, when I implemented overprint, there are some overprint situations, which can not be solved in a CMYK colorspace, we have to implement a DeviceN colorpace when also overprint from CMYK colors over spot colors should work. Therefore I decided to remove my overprint implementation completely from the code and let Derek's solution in, even if there could be done some enhancements in it. 6. colorizing text in pattern colorspace When I saw Derek's implementation with a clean interface only at one place in Gfx.cc, I first was very surprised. My solution had a lot of places in Gfx.cc, where I looked if the current colorspace is a pattern colorspace. Therefore I first had a look into the PDF specification again, and really, it can be done in the way of Derek. Therefore I merged it and removed the fragments of my code. On this step I started a regtest against the version after the fourth patch. There were a lot of enhancements, especially in texts with symbolic chars like mathematical and so on, but there was one (and ONLY one) regression, shown in bug-poppler27482.pdf I examined that (that is also the reason for the delay) and encountered that on merging I removed my solution for this bug, therefore 7. insert enhancements for colorizing masks in pattern colorspace I adapt the bug fix from bug 27482 to the merge.
Diffstat (limited to 'poppler/CairoOutputDev.h')
-rw-r--r--poppler/CairoOutputDev.h21
1 files changed, 6 insertions, 15 deletions
diff --git a/poppler/CairoOutputDev.h b/poppler/CairoOutputDev.h
index b00ab963..6e3c1b92 100644
--- a/poppler/CairoOutputDev.h
+++ b/poppler/CairoOutputDev.h
@@ -192,25 +192,18 @@ public:
CharCode code, Unicode *u, int uLen);
virtual void endType3Char(GfxState *state);
virtual void beginTextObject(GfxState *state);
- virtual GBool deviceHasTextClip(GfxState *state) { return textClipPath && haveCSPattern; }
+ virtual GBool deviceHasTextClip(GfxState *state) { return textClipPath; }
virtual void endTextObject(GfxState *state);
- // If current colorspace is pattern,
- // does this device support text in pattern colorspace?
- virtual GBool supportTextCSPattern(GfxState *state) {
- return state->getFillColorSpace()->getMode() == csPattern; }
-
- // If current colorspace is pattern,
- // need this device special handling for masks in pattern colorspace?
- virtual GBool fillMaskCSPattern(GfxState * state) {
- return state->getFillColorSpace()->getMode() == csPattern; }
-
- virtual void endMaskClip(GfxState *state);
-
//----- image drawing
virtual void drawImageMask(GfxState *state, Object *ref, Stream *str,
int width, int height, GBool invert, GBool interpolate,
GBool inlineImg);
+ virtual void setSoftMaskFromImageMask(GfxState *state,
+ Object *ref, Stream *str,
+ int width, int height, GBool invert,
+ GBool inlineImg);
+ virtual void unsetSoftMaskFromImageMask(GfxState *state);
void drawImageMaskPrescaled(GfxState *state, Object *ref, Stream *str,
int width, int height, GBool invert, GBool interpolate,
GBool inlineImg);
@@ -353,8 +346,6 @@ protected:
struct MaskStack *next;
} *maskStack;
- GBool haveCSPattern; // set if text has been drawn with a
- // clipping render mode because of pattern colorspace
};
//------------------------------------------------------------------------