cleanups, warn about gradients and tiled fills
[swftools.git] / lib / pdf / GFXOutputDev.h
index bf4df4c..58ca015 100644 (file)
@@ -20,7 +20,14 @@ class GFXOutputState {
     int textRender;
     char createsoftmask;
     char transparencygroup;
+    int softmask;
+
     GFXOutputState();
+
+    gfxresult_t* grouprecording; // for transparency groups
+    gfxresult_t* softmaskrecording; // for soft masks
+
+    gfxdevice_t* olddevice;
 };
 
 typedef struct _parameter
@@ -75,7 +82,7 @@ public:
   void setXRef(PDFDoc*doc, XRef *xref);
 
   //----- link borders
-  virtual void drawLink(Link *link, Catalog *catalog) ;
+  virtual void processLink(Link *link, Catalog *catalog);
 
   //----- save/restore graphics state
   virtual void saveState(GfxState *state) ;
@@ -90,7 +97,10 @@ public:
   virtual void updateLineJoin(GfxState *state);
   virtual void updateLineCap(GfxState *state);
   virtual void updateFillOpacity(GfxState *state);
-
+  virtual void updateStrokeOpacity(GfxState *state);
+  virtual void updateFillOverprint(GfxState *state);
+  virtual void updateStrokeOverprint(GfxState *state);
+  virtual void updateTransfer(GfxState *state);
   
   virtual void updateAll(GfxState *state) 
   {
@@ -110,6 +120,22 @@ public:
   //----- path clipping
   virtual void clip(GfxState *state) ;
   virtual void eoClip(GfxState *state) ;
+  //----- shaded fills
+  virtual GBool useTilingPatternFill();
+  virtual GBool useShadedFills();
+
+  /*
+  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) {}
+  virtual void functionShadedFill(GfxState *state,
+                                 GfxFunctionShading *shading) {}
+  virtual void axialShadedFill(GfxState *state, GfxAxialShading *shading) {}
+  virtual void radialShadedFill(GfxState *state, GfxRadialShading *shading) {}
+  */
 
   //----- text drawing
   virtual void beginString(GfxState *state, GString *s) ;
@@ -149,6 +175,8 @@ public:
   virtual void paintTransparencyGroup(GfxState *state, double *bbox);
   virtual void setSoftMask(GfxState *state, double *bbox, GBool alpha, Function *transferFunc, GfxColor *backdropColor);
   virtual void clearSoftMask(GfxState *state);
+#else
+  virtual void clearSoftMask(GfxState *state) {};
 #endif
  
   //----- type 3 chars
@@ -193,8 +221,6 @@ public:
   int jpeginfo; // did we write "File contains jpegs" yet?
   int pbminfo; // did we write "File contains jpegs" yet?
   int linkinfo; // did we write "File contains links" yet?
-  int ttfinfo; // did we write "File contains TrueType Fonts" yet?
-  int gradientinfo; // did we write "File contains Gradients yet?
 
   int type3active; // are we between beginType3()/endType3()?
 
@@ -206,13 +232,16 @@ public:
   char* substitutesource[256];
   int substitutepos;
 
+  int user_movex,user_movey;
+  int user_clipx1,user_clipx2,user_clipy1,user_clipy2;
+
   /* upper left corner of clipping rectangle (cropbox)- needs to be
      added to all drawing coordinates to give the impression that all
      pages start at (0,0)*/
-  int clipmovex,clipmovey;
+  int clipmovex;
+  int clipmovey;
 
-  int user_movex,user_movey;
-  int user_clipx1,user_clipx2,user_clipy1,user_clipy2;
+  double width,height;
 
   gfxline_t* current_text_stroke;
   gfxline_t* current_text_clip;