Mercurial > MadButterfly
view src/mbaf/mbapp.c @ 887:8a2d676d9fa3 abs_n_rel_center
Fix bug of clearing COF_TEMP_MARK.
draw_shapes_in_dirty_areas() mark COF_TEMP_MARK on coords and clear
them before leaving. But, it always clear the same one coord for
several times and keep others untouched. It is a logical error. It
can be avoided by avoiding to use the variable at mutliple place for
different purpose in a function, and compiler will check it out by
yelling that the variable is used before assigning a value.
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Sun, 26 Sep 2010 14:07:05 +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); }