applied transparency patch
[swftools.git] / lib / pdf / GFXOutputDev.h
index 55d3084..90c173c 100644 (file)
@@ -21,7 +21,9 @@ class GFXOutputState {
     int textRender;
     char createsoftmask;
     char transparencygroup;
-    int softmask;
+    char softmask;
+    char softmask_alpha;
+    char isolated;
 
     GFXOutputState();
 
@@ -38,9 +40,9 @@ typedef struct _parameter
     struct _parameter*next;
 } parameter_t;
 
-void addGlobalFont(char*filename);
-void addGlobalLanguageDir(char*dir);
-void addGlobalFontDir(char*dirname);
+void addGlobalFont(const char*filename);
+void addGlobalLanguageDir(const char*dir);
+void addGlobalFontDir(const char*dirname);
 
 class GFXOutputDev:  public OutputDev {
 public:
@@ -55,6 +57,7 @@ public:
 
   void setMove(int x,int y);
   void setClip(int x1,int y1,int x2,int y2);
+  void setParameter(const char*key, const char*value);
 
   void setInfo(InfoOutputDev*info) {this->info = info;}
   
@@ -121,6 +124,7 @@ public:
   //----- path clipping
   virtual void clip(GfxState *state) ;
   virtual void eoClip(GfxState *state) ;
+  virtual void clipToStrokePath(GfxState *state);
  
   //----- shaded fills
   virtual GBool useTilingPatternFill();
@@ -167,7 +171,6 @@ public:
                                   GfxImageColorMap *maskColorMap);
 
   //----- 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,
@@ -176,9 +179,6 @@ 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
   virtual GBool beginType3Char(GfxState *state, double x, double y, double dx, double dy, CharCode code, Unicode *u, int uLen);
@@ -193,21 +193,36 @@ public:
 
   void finish();
 
+  virtual GBool useDrawForm();
+  virtual void drawForm(Ref id);
+  virtual GBool needNonText();
+  virtual void endPage();
+
+  //virtual void dump();
+  //virtual void beginStringOp(GfxState *state);
+  //virtual void drawString(GfxState *state, GString *s);
+  //virtual void endStringOp(GfxState *state);
+  //virtual GBool getVectorAntialias() { return gFalse; }
+  //virtual void setVectorAntialias(GBool vaa) {}
+  //virtual void psXObject(Stream *psStream, Stream *level1Stream) {}
+
   private:
   void drawGeneralImage(GfxState *state, Object *ref, Stream *str,
                                   int width, int height, GfxImageColorMap*colorMap, GBool invert,
                                   GBool inlineImg, int mask, int *maskColors,
                                   Stream *maskStr, int maskWidth, int maskHeight, GBool maskInvert, GfxImageColorMap*maskColorMap);
-  int setGfxFont(char*id, char*name, char*filename, double quality);
-  void strokeGfxline(GfxState *state, gfxline_t*line);
+  int setGfxFont(char*id, char*name, char*filename, double maxSize, CharCodeToUnicode*ctu);
+  void strokeGfxline(GfxState *state, gfxline_t*line, int flags);
   void clipToGfxLine(GfxState *state, gfxline_t*line);
   void fillGfxLine(GfxState *state, gfxline_t*line);
 
-  void showfeature(char*feature,char fully, char warn);
-  void warnfeature(char*feature,char fully);
-  void infofeature(char*feature);
+  void showfeature(const char*feature,char fully, char warn);
+  void warnfeature(const char*feature,char fully);
+  void infofeature(const char*feature);
 
   char outer_clip_box; //whether the page clip box is still on
+  
+  GBool do_interpretType3Chars;
 
   InfoOutputDev*info;
   GFXOutputState states[64];
@@ -218,7 +233,7 @@ public:
   PDFDoc*doc;
   XRef*xref;
 
-  char* searchFont(char*name);
+  char* searchFont(const char*name);
   char* substituteFont(GfxFont*gfxFont, char*oldname);
   char* writeEmbeddedFontToFile(XRef*ref, GfxFont*font);
   int t1id;
@@ -233,8 +248,8 @@ public:
 
   char type3Warning;
 
-  char* substitutetarget[256];
-  char* substitutesource[256];
+  const char* substitutetarget[256];
+  const char* substitutesource[256];
   int substitutepos;
 
   int user_movex,user_movey;
@@ -263,6 +278,8 @@ public:
   /* config */
   int config_use_fontconfig;
   int config_break_on_warning;
+  int config_remapunicode;
+  int config_transparent;
 
   parameter_t*parameters;
 };