#include "PDFDoc.h"
#include "CommonOutputDev.h"
+struct ClipState
+{
+ ClipState*next;
+ SplashBitmap*clipbitmap;
+ char written;
+ ClipState();
+};
+
class BitmapOutputDev: public CommonOutputDev {
public:
BitmapOutputDev(InfoOutputDev*info, PDFDoc*doc);
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,
- int paintType, Dict *resDict,
- double *mat, double *bbox,
- int x0, int y0, int x1, int y1,
- double xStep, double yStep);
+ 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);
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 setSoftMask(GfxState *state, double *bbox, GBool alpha, Function *transferFunc, GfxColor *backdropColor);
virtual void clearSoftMask(GfxState *state);
+ virtual void processLink(Link *link, Catalog *catalog);
+
+ virtual void setVectorAntialias(GBool vaa);
+ virtual GBool getVectorAntialias();
+
private:
void flush();
char config_bitmapfonts;
+ char config_extrafontdata;
+
+ SplashPath*bboxpath;
- int width, height;
PDFDoc*doc;
XRef*xref;
SplashOutputDev*rgbdev;
- SplashOutputDev*alphadev;
+ SplashOutputDev*clip0dev;
+ SplashOutputDev*clip1dev;
GFXOutputDev*gfxdev;
InfoOutputDev*info;
gfxdevice_t*dev;
+
+ int movex, movey;
+ int width, height;
+
+ int user_movex, user_movey;
+ int user_clipx1, user_clipy1;
+ int user_clipx2, user_clipy2;
+
+ //ClipState*clipstates;
};
#endif