added softmask/tgroup fields
[swftools.git] / lib / pdf / GFXOutputDev.h
index 227e82a..7402129 100644 (file)
@@ -18,7 +18,16 @@ class GFXOutputState {
     public:
     int clipping;
     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
@@ -73,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) ;
@@ -88,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) 
   {
@@ -137,7 +149,8 @@ public:
                                   int maskWidth, int maskHeight,
                                   GfxImageColorMap *maskColorMap);
 
-  //----- transparency groups and soft masks (xpdf > ~ 3.01.16)
+  //----- transparency groups and soft masks (xpdf >= ~ 3.01.16)
+#if xpdfUpdateVersion >= 16
   virtual void beginTransparencyGroup(GfxState *state, double *bbox,
                                      GfxColorSpace *blendingColorSpace,
                                      GBool isolated, GBool knockout,
@@ -146,7 +159,7 @@ 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);
-
+#endif
  
   //----- type 3 chars
   virtual GBool beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, Unicode *u, int uLen);
@@ -203,13 +216,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;
@@ -227,9 +243,6 @@ public:
   int forceType0Fonts;
   int config_use_fontconfig;
 
-  int transparencyGroup;
-  int createsoftmask;
-    
   parameter_t*parameters;
 };