Beispiel #1
0
void compositor_init_svg_svg(GF_Compositor *compositor, GF_Node *node)
{
	GF_Node *root;
	SVGsvgStack *stack;

	GF_SAFEALLOC(stack, SVGsvgStack);

	root = gf_sg_get_root_node(gf_node_get_graph(node));
	stack->root_svg = (root==node) ? 1 : 0;
	if (stack->root_svg) {
		GF_SAFEALLOC(stack->svg_props, SVGPropertiesPointers);
		gf_svg_properties_init_pointers(stack->svg_props);
	}
	gf_mx2d_init(stack->viewbox_mx);

	gf_node_set_private(node, stack);
	gf_node_set_callback_function(node, svg_traverse_svg);
}
Beispiel #2
0
int main(int argc, char **argv)
{
    SVG2BIFS_Converter *converter;
    GF_SceneDumper *dump;
    char *tmp;

    gf_sys_init();

    GF_SAFEALLOC(converter, SVG2BIFS_Converter);

    converter->sax_parser = gf_xml_sax_new(svg2bifs_node_start, svg2bifs_node_end, svg2bifs_text_content, converter);
    converter->force_transform = 1;

    converter->svg_sg = gf_sg_new();
    gf_svg_properties_init_pointers(&converter->svg_props);

    converter->bifs_sg = gf_sg_new();

    fprintf(stdout, "Parsing SVG File\n");
    gf_xml_sax_parse_file(converter->sax_parser, argv[1], NULL);

    fprintf(stdout, "Dumping BIFS scenegraph\n");
    tmp = strchr(argv[1], '.');
    tmp[0] = 0;
    dump = gf_sm_dumper_new(converter->bifs_sg, argv[1], ' ', GF_SM_DUMP_XMTA);
    tmp[0] = '.';

    gf_sm_dump_graph(dump, 1, 0);
    gf_sm_dumper_del(dump);

    gf_svg_properties_reset_pointers(&converter->svg_props);

    gf_sg_del(converter->svg_sg);
//	gf_sg_del(converter->bifs_sg);

    gf_xml_sax_del(converter->sax_parser);

    gf_free(converter);
}