X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpdf%2FBitmapOutputDev.h;h=3adf11a6c2a071cd499c70913da8edde59b0abfa;hb=6a529bfa890997a55fec9ae0e0d388cf9d5276c2;hp=071c64a78ec811b6359786f5d6f986917b462e6a;hpb=863d6a2088be6b60ae9171befc50bce023cb4dc0;p=swftools.git diff --git a/lib/pdf/BitmapOutputDev.h b/lib/pdf/BitmapOutputDev.h index 071c64a..3adf11a 100644 --- a/lib/pdf/BitmapOutputDev.h +++ b/lib/pdf/BitmapOutputDev.h @@ -38,6 +38,10 @@ struct ClipState ClipState(); }; +#define STATE_PARALLEL 0 +#define STATE_TEXT_IS_ABOVE 1 +#define STATE_BITMAP_IS_ABOVE 2 + class BitmapOutputDev: public CommonOutputDev { public: BitmapOutputDev(InfoOutputDev*info, PDFDoc*doc); @@ -68,6 +72,7 @@ public: virtual void startPage(int pageNum, GfxState *state, double x1,double y1,double x2,double y2); virtual void endPage(); + virtual void finishPage(); virtual void saveState(GfxState *state); virtual void restoreState(GfxState *state); @@ -104,17 +109,25 @@ 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, - int paintType, Dict *resDict, - double *mat, double *bbox, - int x0, int y0, int x1, int y1, - double xStep, double yStep); + 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); virtual GBool axialShadedFill(GfxState *state, GfxAxialShading *shading); virtual GBool radialShadedFill(GfxState *state, GfxRadialShading *shading); - void doClip(GfxState *state, GBool eo); virtual void clip(GfxState *state); virtual void eoClip(GfxState *state); virtual void clipToStrokePath(GfxState *state); @@ -167,12 +180,27 @@ public: virtual void clearSoftMask(GfxState *state); virtual void processLink(Link *link, Catalog *catalog); + + virtual void setVectorAntialias(GBool vaa); + virtual GBool getVectorAntialias(); + + private: - void flush(); + void clearClips(); + void clearBoolPolyDev(); + void clearBoolTextDev(); + void flushText(); + void flushBitmap(); + void checkNewText(); + void checkNewBitmap(); + GBool clip0and1differ(); + GBool intersection(); - char config_bitmapfonts; char config_extrafontdata; + int layerstate; + GBool emptypage; + SplashPath*bboxpath; PDFDoc*doc; @@ -180,6 +208,16 @@ private: SplashOutputDev*rgbdev; SplashOutputDev*clip0dev; SplashOutputDev*clip1dev; + SplashOutputDev*boolpolydev; + SplashOutputDev*booltextdev; + + SplashBitmap*rgbbitmap; + SplashBitmap*clip0bitmap; + SplashBitmap*clip1bitmap; + SplashBitmap*boolpolybitmap; + SplashBitmap*booltextbitmap; + + gfxdevice_t* gfxoutput; GFXOutputDev*gfxdev; InfoOutputDev*info; gfxdevice_t*dev;