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);
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();
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);
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);
virtual void clearSoftMask(GfxState *state);
virtual void processLink(Link *link, Catalog *catalog);
+
+ virtual void setVectorAntialias(GBool vaa);
+ virtual GBool getVectorAntialias();
+
+
private:
- void flush();
+ void flushEverything();
+ void clearClips();
+ 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(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_bitmapfonts;
char config_extrafontdata;
+ char config_optimizeplaincolorfills;
+
+ int layerstate;
+ GBool emptypage;
SplashPath*bboxpath;
SplashOutputDev*rgbdev;
SplashOutputDev*clip0dev;
SplashOutputDev*clip1dev;
+ SplashOutputDev*boolpolydev;
+ SplashOutputDev*booltextdev;
+
+ SplashBitmap*rgbbitmap;
+ SplashBitmap*clip0bitmap;
+ SplashBitmap*clip1bitmap;
+ SplashBitmap*boolpolybitmap;
+ SplashBitmap*stalepolybitmap;
+ SplashBitmap*booltextbitmap;
+ SplashBitmap*staletextbitmap;
+
+ gfxdevice_t* gfxoutput;
GFXOutputDev*gfxdev;
InfoOutputDev*info;
gfxdevice_t*dev;