added vectors_to_glyphs filter
[swftools.git] / lib / ruby / gfx.c
index 9e2284e..3227449 100644 (file)
@@ -234,7 +234,7 @@ static VALUE image_has_alpha(VALUE cls)
     gfxcolor_t*data = image->image->data;
     int t;
     for(t=0;t<size;t++) {
-       if(data->a!=255) 
+       if(data[t].a!=255) 
            return Qtrue;
     }
     return Qfalse;
@@ -437,6 +437,7 @@ static ID id_radial = 0;
 static ID id_linear = 0;
 static ID id_remove_font_transforms = 0;
 static ID id_maketransparent = 0;
+static ID id_vectors_to_glyphs = 0;
 
 static VALUE noop(int argc, VALUE *argv, VALUE obj) {return obj;}
 
@@ -707,6 +708,8 @@ static VALUE doc_render(VALUE cls, VALUE device, VALUE _range, VALUE filters)
                            else x = RARRAY(filters)->ptr[t++];
            if(id == id_remove_font_transforms) {
                wrap_filter2(dev, remove_font_transforms);
+           } else if(id == id_vectors_to_glyphs) {
+               wrap_filter2(dev, vectors_to_glyphs);
            } else if(id == id_maketransparent) {
                PARAM(alpha);
                wrap_filter(dev, maketransparent, FIX2INT(alpha));
@@ -767,7 +770,7 @@ void Init_gfx()
     imagedriver = gfxsource_image_create();
 
     GFX = rb_define_module("GFX");
-    rb_define_const(GFX, "VERSION", FIX2INT(20100309));
+    rb_define_const(GFX, "VERSION", INT2FIX(20100309));
     
     rb_define_module_function(GFX, "setparameter", gfx_setparameter, 2);
     
@@ -856,5 +859,6 @@ void Init_gfx()
     id_linear = rb_intern("linear");
     id_remove_font_transforms = rb_intern("remove_font_transforms");
     id_maketransparent = rb_intern("maketransparent");
+    id_vectors_to_glyphs = rb_intern("vectors_to_glyphs");
 }