polygon intersector: added horizontal line reconstruction
[swftools.git] / lib / pdf / BitmapOutputDev.h
index 42b5071..2c804b6 100644 (file)
@@ -52,7 +52,7 @@ public:
     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();
@@ -72,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);
@@ -186,19 +187,22 @@ public:
     
 private:
     void clearClips();
-    void clearBoolPolyDev();
-    void clearBoolTextDev();
+    void clearBoolPolyDev(int x1, int y1, int x2, int y2);
+    void clearBoolTextDev(int x1, int y1, int x2, int y2);
     void flushText();
     void flushBitmap();
-    void checkNewText();
-    void checkNewBitmap();
-    GBool clip0and1differ();
-    GBool intersection();
+    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;
 
@@ -210,6 +214,12 @@ private:
     SplashOutputDev*boolpolydev;
     SplashOutputDev*booltextdev;
 
+    SplashBitmap*rgbbitmap;
+    SplashBitmap*clip0bitmap;
+    SplashBitmap*clip1bitmap;
+    SplashBitmap*boolpolybitmap;
+    SplashBitmap*booltextbitmap;
+
     gfxdevice_t* gfxoutput;
     GFXOutputDev*gfxdev;
     InfoOutputDev*info;