X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpdf%2FBitmapOutputDev.h;h=2869d095194940712f3b75527ea6bcda6d75b0af;hb=7c45653cc0504bc02a837a2e8050ca8f42705b09;hp=7e164723baacbc4ce8e59f7f16bd5bf4e20f5594;hpb=d9edc98b73bbea0612f27d008866608d8baaeed1;p=swftools.git diff --git a/lib/pdf/BitmapOutputDev.h b/lib/pdf/BitmapOutputDev.h index 7e16472..2869d09 100644 --- a/lib/pdf/BitmapOutputDev.h +++ b/lib/pdf/BitmapOutputDev.h @@ -24,11 +24,12 @@ #include "../gfxsource.h" #include "../gfxtools.h" -#include "config.h" +#include "../../config.h" #include "GFXOutputDev.h" #include "InfoOutputDev.h" #include "PDFDoc.h" #include "CommonOutputDev.h" +#include "popplercompat.h" struct ClipState { @@ -46,13 +47,15 @@ class BitmapOutputDev: public CommonOutputDev { public: BitmapOutputDev(InfoOutputDev*info, PDFDoc*doc); virtual ~BitmapOutputDev(); + + virtual void dbg_newdata(char*newdata); // CommonOutputDev: virtual void setDevice(gfxdevice_t*dev); virtual void setMove(int x,int y); virtual void setClip(int x1,int y1,int x2,int y2); virtual void setParameter(const char*key, const char*value); - virtual void preparePage(int pdfpage, int outputpage); + virtual void setPageMap(int*page2page, int pagemap_size); // OutputDev: virtual GBool upsideDown(); @@ -63,14 +66,14 @@ public: virtual GBool interpretType3Chars(); virtual GBool needNonText(); virtual void setDefaultCTM(double *ctm); -/* virtual GBool checkPageSlice(Page *page, double hDPI, double vDPI, + virtual GBool checkPageSlice(Page *page, double hDPI, double vDPI, int rotate, GBool useMediaBox, GBool crop, int sliceX, int sliceY, int sliceW, int sliceH, GBool printing, Catalog *catalog, GBool (*abortCheckCbk)(void *data) = NULL, - void *abortCheckCbkData = NULL);*/ + void *abortCheckCbkData = NULL); - virtual void startPage(int pageNum, GfxState *state, double x1,double y1,double x2,double y2); + virtual void startPage(int pageNum, GfxState *state); virtual void endPage(); virtual void finishPage(); @@ -109,19 +112,12 @@ public: virtual void stroke(GfxState *state); virtual void fill(GfxState *state); virtual void eoFill(GfxState *state); -#if (xpdfMajorVersion < 3) || (xpdfMinorVersion < 2) || (xpdfUpdateVersion < 7) - virtual void tilingPatternFill(GfxState *state, Object *str, + virtual POPPLER_TILING_PATERN_RETURN tilingPatternFill( + GfxState *state, POPPLER_TILING_PATERN_GFX Object *str, int paintType, Dict *resDict, double *mat, double *bbox, int x0, int y0, int x1, int y1, double xStep, double yStep); -#else - virtual void tilingPatternFill(GfxState *state, Gfx *gfx, Object *str, - int paintType, Dict *resDict, - double *mat, double *bbox, - int x0, int y0, int x1, int y1, - double xStep, double yStep); -#endif virtual GBool functionShadedFill(GfxState *state, GfxFunctionShading *shading); @@ -149,21 +145,27 @@ public: virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, + POPPLER_INTERPOLATE GBool inlineImg); virtual void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, + POPPLER_INTERPOLATE int *maskColors, GBool inlineImg); virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, + POPPLER_INTERPOLATE Stream *maskStr, int maskWidth, int maskHeight, - GBool maskInvert); + GBool maskInvert + POPPLER_MASK_INTERPOLATE); virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, + POPPLER_INTERPOLATE Stream *maskStr, int maskWidth, int maskHeight, - GfxImageColorMap *maskColorMap); + GfxImageColorMap *maskColorMap + POPPLER_MASK_INTERPOLATE); virtual void type3D0(GfxState *state, double wx, double wy); virtual void type3D1(GfxState *state, double wx, double wy, double llx, double lly, double urx, double ury); @@ -186,17 +188,22 @@ public: private: + void flushEverything(); void clearClips(); - void clearBoolPolyDev(int x1, int y1, int x2, int y2); - void clearBoolTextDev(int x1, int y1, int x2, int y2); + void clearBoolPolyDev(); + void clearBoolTextDev(); void flushText(); void flushBitmap(); GBool checkNewText(int x1, int y1, int x2, int y2); GBool checkNewBitmap(int x1, int y1, int x2, int y2); GBool clip0and1differ(int x1,int y1,int x2,int y2); - GBool intersection(int x1,int y1,int x2,int y2); + GBool intersection(SplashBitmap*boolpoly, SplashBitmap*booltext, int x1, int y1, int x2, int y2); + + virtual gfxbbox_t getImageBBox(GfxState*state); + virtual gfxbbox_t getBBox(GfxState*state); char config_extrafontdata; + char config_optimizeplaincolorfills; int layerstate; GBool emptypage; @@ -215,7 +222,9 @@ private: SplashBitmap*clip0bitmap; SplashBitmap*clip1bitmap; SplashBitmap*boolpolybitmap; + SplashBitmap*stalepolybitmap; SplashBitmap*booltextbitmap; + SplashBitmap*staletextbitmap; gfxdevice_t* gfxoutput; GFXOutputDev*gfxdev;