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 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 setVectorAntialias(GBool vaa);
virtual GBool getVectorAntialias();
+
private:
- void flush();
+ void clearClips();
+ void clearBoolPolyDev(int x1, int y1, int x2, int y2);
+ void clearBoolTextDev(int x1, int y1, int x2, int y2);
+ 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);
+
+ virtual gfxbbox_t getImageBBox(GfxState*state);
+ virtual gfxbbox_t getBBox(GfxState*state);
- char config_bitmapfonts;
char config_extrafontdata;
+ int layerstate;
+ GBool emptypage;
+
SplashPath*bboxpath;
PDFDoc*doc;
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;