예제 #1
0
void gfxdevice_record_init(gfxdevice_t*dev, char use_tempfile)
{
    internal_t*i = (internal_t*)rfx_calloc(sizeof(internal_t));
    memset(dev, 0, sizeof(gfxdevice_t));
    
    dev->name = "record";

    dev->internal = i;
  
    i->use_tempfile = use_tempfile;
    if(!use_tempfile) {
	writer_init_growingmemwriter(&i->w, 1048576);
    } else {
	char buffer[128];
	i->filename = strdup(mktempname(buffer, "gfx"));
	writer_init_filewriter2(&i->w, i->filename);
    }
    i->fontlist = gfxfontlist_create();
    i->cliplevel = 0;

    dev->setparameter = record_setparameter;
    dev->startpage = record_startpage;
    dev->startclip = record_startclip;
    dev->endclip = record_endclip;
    dev->stroke = record_stroke;
    dev->fill = record_fill;
    dev->fillbitmap = record_fillbitmap;
    dev->fillgradient = record_fillgradient;
    dev->addfont = record_addfont;
    dev->drawchar = record_drawchar;
    dev->drawlink = record_drawlink;
    dev->endpage = record_endpage;
    dev->finish = record_finish;
}
예제 #2
0
파일: gfx.c 프로젝트: museroom/swftools
static VALUE doc_initialize(VALUE cls, VALUE _filename)
{
Check_Type(_filename, T_STRING);
Get_Doc(doc,cls);
const char*filename = StringValuePtr(_filename);
doc->fontlist = gfxfontlist_create();
doc->doc = pdfdriver->open(pdfdriver, filename);
if(!doc->doc) {
    rb_raise(rb_eIOError, "couldn't open %s", filename);
}
return cls;
}