fixed z-order problems in poly2bitmap
[swftools.git] / lib / gfxdevice.h
index 0d9a994..181d0b9 100644 (file)
@@ -30,13 +30,24 @@ typedef struct _gfxglyph
     const char*name;
 } gfxglyph_t;
 
+typedef struct _gfxkerning
+{
+    int c1,c2,advance;
+} gfxkerning_t;
+
 typedef struct _gfxfont
 {
     const char*id;
     int num_glyphs;
     int max_unicode;
+    
+    double ascent,descent;
+
     gfxglyph_t*glyphs;
     int* unicode2glyph;
+
+    gfxkerning_t*kerning;
+    int kerning_size;
 } gfxfont_t;
 
 typedef struct _gfxcolor
@@ -111,7 +122,7 @@ typedef struct _gfxdevice
     void (*fillbitmap)(struct _gfxdevice*dev, gfxline_t*line, gfximage_t*img, gfxmatrix_t*imgcoord2devcoord, gfxcxform_t*cxform); //cxform? tiling?
     void (*fillgradient)(struct _gfxdevice*dev, gfxline_t*line, gfxgradient_t*gradient, gfxgradienttype_t type, gfxmatrix_t*gradcoord2devcoord); //?
 
-    /* deprecated */ void (*addfont)(struct _gfxdevice*dev, gfxfont_t*font);
+    void (*addfont)(struct _gfxdevice*dev, gfxfont_t*font);
 
     void (*drawchar)(struct _gfxdevice*dev, gfxfont_t*font, int glyph, gfxcolor_t*color, gfxmatrix_t*matrix);
 
@@ -119,6 +130,8 @@ typedef struct _gfxdevice
     
     void (*endpage)(struct _gfxdevice*dev);
     
+    const char* (*geterror)();
+    
     gfxresult_t* (*finish)(struct _gfxdevice*dev);
 
     void* internal;