lib/pdf: make startPage() upstream compatible
[swftools.git] / lib / pdf / BitmapOutputDev.h
index 883134a..c5c9375 100644 (file)
@@ -46,13 +46,15 @@ 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();
@@ -63,15 +65,16 @@ public:
     virtual GBool interpretType3Chars();
     virtual GBool needNonText();
     virtual void setDefaultCTM(double *ctm);
-/*    virtual GBool checkPageSlice(Page *page, double hDPI, double vDPI,
+    virtual GBool checkPageSlice(Page *page, double hDPI, double vDPI,
                               int rotate, GBool useMediaBox, GBool crop,
                               int sliceX, int sliceY, int sliceW, int sliceH,
                               GBool printing, Catalog *catalog,
                               GBool (*abortCheckCbk)(void *data) = NULL,
-                              void *abortCheckCbkData = NULL);*/
+                              void *abortCheckCbkData = NULL);
 
-    virtual void startPage(int pageNum, GfxState *state, double x1,double y1,double x2,double y2);
+    virtual void startPage(int pageNum, GfxState *state);
     virtual void endPage();
+    virtual void finishPage();
 
     virtual void saveState(GfxState *state);
     virtual void restoreState(GfxState *state);
@@ -185,19 +188,25 @@ public:
 
     
 private:
+    void flushEverything();
     void clearClips();
     void clearBoolPolyDev();
     void clearBoolTextDev();
     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(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_extrafontdata;
+    char config_optimizeplaincolorfills;
 
     int layerstate;
+    GBool emptypage;
 
     SplashPath*bboxpath;
 
@@ -209,6 +218,14 @@ private:
     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;