Mercurial > hg > Members > kono > Cerium
diff old/simple_render/test/LoadTexture/main.cpp @ 507:735f76483bb2
Reorganization..
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 12 Oct 2009 09:39:35 +0900 |
parents | TaskManager/Test/simple_render/test/LoadTexture/main.cpp@312b535f121e |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/old/simple_render/test/LoadTexture/main.cpp Mon Oct 12 09:39:35 2009 +0900 @@ -0,0 +1,107 @@ +#include <iostream> +#include "viewer.h" +#include "TaskManager.h" +#include "error.h" + +int init(void*, void*); +int finish(void*, void*); + + +Viewer *screen; +TaskManager *manager; + +struct init_arg { + int bpp; + int w; + int h; +}; + +struct init_arg *initArg; + +int init(void *r, void *w) { + int fd_sdl_init,fd_run; + HTaskPtr task_sdl_init, task_run; + + __debug("[%s]\n",__FUNCTION__); + + screen = new Viewer(initArg->bpp, initArg->w, initArg->h); + + fd_sdl_init = manager->open("sdl_init"); + fd_run = manager->open("run"); + + task_sdl_init = manager->create_task(fd_sdl_init, 0, 0, 0, NULL); + task_run = manager->create_task(fd_run, 0, 0, 0, NULL); + + task_run->set_depend(task_sdl_init); + + task_sdl_init->spawn(); + task_run->spawn(); + + free(initArg); + return 0; +} + +int sdl_init(void *r , void *w) { + + __debug("[%s]\n", __FUNCTION__); + screen->sdl_init(); + return 0; +} + +int run(void *r, void *w) { + + __debug("[%s]\n", __FUNCTION__); + screen->run_init(); + return 0; +} + +int finish(void *w, void *r) +{ + __debug("[%s]\n", __FUNCTION__); + delete screen; + delete manager; + return 0; +} + + +int main(int argc, char *argv[]) { + manager = new TaskManager(1); + manager->init(); + + //task_initialize(); + + manager->set_symbol("init", (void*)init); + manager->set_symbol("sdl_init", (void*)sdl_init); + manager->set_symbol("run", (void*)run); + manager->set_symbol("finish", (void*)finish); + + int bpp = 0; + int width = 640; + int height = 480; + + for(int i = 1; argv[i]; ++i) { + if (strcmp(argv[i], "-bpp") == 0) { + bpp = atoi(argv[++i]); + } + if (strcmp(argv[i], "-width") == 0) { + width = atoi(argv[++i]); + } + if (strcmp(argv[i], "-height") == 0) { + height = atoi(argv[++i]); + } + } + HTaskPtr task_init; + int fd_init; + initArg = new struct init_arg; + initArg->bpp = bpp; + initArg->w = width; + initArg->h = height; + + fd_init = manager->open("init"); + task_init = manager->create_task(fd_init, 0, 0, 0, NULL); + task_init->spawn(); + manager->run(); + finish(NULL, NULL); + return 0; +} +