#include "../gfxsource.h"
#include "../gfxtools.h"
-#include "config.h"
+#include "../../config.h"
#include "GFXOutputDev.h"
#include "InfoOutputDev.h"
#include "PDFDoc.h"
#include "CommonOutputDev.h"
+#include "popplercompat.h"
struct ClipState
{
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 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 stroke(GfxState *state);
virtual void fill(GfxState *state);
virtual void eoFill(GfxState *state);
-#if (xpdfMajorVersion < 3) || (xpdfMinorVersion < 2) || (xpdfUpdateVersion < 7)
- virtual void tilingPatternFill(GfxState *state, Object *str,
+ virtual POPPLER_TILING_PATERN_RETURN tilingPatternFill(
+ GfxState *state, POPPLER_TILING_PATERN_GFX Object *str,
int paintType, Dict *resDict,
double *mat, double *bbox,
int x0, int y0, int x1, int y1,
double xStep, double yStep);
-#else
- virtual void tilingPatternFill(GfxState *state, Gfx *gfx, Object *str,
- int paintType, Dict *resDict,
- double *mat, double *bbox,
- int x0, int y0, int x1, int y1,
- double xStep, double yStep);
-#endif
virtual GBool functionShadedFill(GfxState *state,
GfxFunctionShading *shading);
private:
+ void flushEverything();
void clearClips();
void clearBoolPolyDev();
void clearBoolTextDev();
void flushText();
void flushBitmap();
- void checkNewText(int x1, int y1, int x2, int y2);
- void checkNewBitmap();
+ 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);
+ 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;
SplashBitmap*clip0bitmap;
SplashBitmap*clip1bitmap;
SplashBitmap*boolpolybitmap;
+ SplashBitmap*stalepolybitmap;
SplashBitmap*booltextbitmap;
+ SplashBitmap*staletextbitmap;
gfxdevice_t* gfxoutput;
GFXOutputDev*gfxdev;