view src/mbaf/mbapp.c @ 842:76fe4afce640

The inkscape:bbox is defined as the global coordinate system. However, the center.x and center.y must be the coordiante system of the parent group of the SVG entity. Therefore, we need to do coordinate transformation from the global coordination system to the local coordination system.
author wycc
date Sat, 18 Sep 2010 21:23:51 +0800
parents 586e50f82c1f
children 5b58e74988bc
line wrap: on
line source

// -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 4; -*-
// vim: sw=4:ts=8:sts=4
#include <mb.h>
#include <mb_af.h>

mbaf_t *mbaf_init(const char *module, const char *module_dir)
{
    mbaf_t *app = (mbaf_t *) malloc(sizeof(mbaf_t));
    void *rt;

    rt = backend.init(":0.0", 800, 600);
    if(rt == NULL)
	return NULL;

    sprite_set_search_path(module_dir);

    app->rt = rt;
    app->rdman =  backend.rdman(rt);
    app->kbevents = backend.kbevents(rt);

    app->rootsprite= sprite_load(module,app->rdman, app->rdman->root_coord);
    if(app->rootsprite == NULL) {
	backend.free(rt);
	free(app);
	return NULL;
    }

    rdman_attach_backend(app->rdman, rt);
    MB_SPRITE_GOTO_SCENE(app->rootsprite, 1);

    return app;
}

void mbaf_set_data(mbaf_t *app,void *data)
{
    app->private = (void *) data;
}

mb_tman_t *mbaf_get_timer(mbaf_t *app)
{
    return backend.tman(app->rt);
}

void mbaf_loop(mbaf_t *app)
{
    /*
     * Start handle connections, includes one to X server.
     * User start to interact with the application.
     */
    backend.loop(app->rt);

    /*
     * Clean
     */
    backend.free(app->rt);
    free(app);
}