new parameter addspacechars
[swftools.git] / lib / pdf / BitmapOutputDev.h
index 8ec6555..ac13298 100644 (file)
@@ -38,17 +38,23 @@ 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);
     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();
@@ -68,6 +74,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);
@@ -123,7 +130,6 @@ public:
     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);
@@ -176,12 +182,30 @@ 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();
+    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;
 
+    int layerstate;
+    GBool emptypage;
+
     SplashPath*bboxpath;
 
     PDFDoc*doc;
@@ -189,6 +213,18 @@ private:
     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;