Mercurial > hg > Game > Cerium
diff Renderer/Cell/Engine.cpp @ 0:df32980116bd
Initial revision
author | gongo |
---|---|
date | Sat, 02 Feb 2008 19:15:39 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Renderer/Cell/Engine.cpp Sat Feb 02 19:15:39 2008 +0900 @@ -0,0 +1,66 @@ +CellEngine::CellEngine() +{ + TaskManager manager = new TaskManager(); +} + +void +CellEngine::init(int width, int height, int bpp) +{ + if(SDL_Init( SDL_INIT_VIDEO ) < 0) + { + cout << "Couldn't initialize SDL:" << SDL_GetError() << endl; + exit(1); + } + + // etc... +} + +TaskDepend +CellEngine::update_all(SceneGraph* next, SceneGraph* now, TaskDepend wait) +{ + SceneGraph *t, *nt; + t = now; + nt = next; + + SceneGraphPack *nt_pack = nt->data_pack(); + SceneGraphPack *t_pack; + Task* t_task = now->get_task(); + TaskDepend task; + + task = manager->create_task(function_id, now->task_size(), + (unsigned int *)now->get_task(), + (unsigned int *)next->get_task()); + + manager->set_task_depend(task, wait); + + task->run(); + + return task; +} + +TaskDepend +CellEngin::draw_all(SceneGraph* now, TaskDepend wait) +{ + /** + * SceneGraph => Polygon + * Polygon => Span, Texture + * Texture, Span => Rendering + */ + + SceneGraph *t, *nt; + t = now; + nt = next; + + SceneGraphPack *nt_pack = nt->data_pack(); + SceneGraphPack *t_pack; + Task* t_task = now->get_task(); + TaskDepend task; + + task = manager->create_task(function_id, now->task_size(), + (unsigned int *)now->get_task(), + (unsigned int *)next->get_task()); + + manager->set_task_depend(task, wait); + + task->run(); +}