0
|
1 CellEngine::CellEngine()
|
|
2 {
|
|
3 TaskManager manager = new TaskManager();
|
|
4 }
|
|
5
|
|
6 void
|
|
7 CellEngine::init(int width, int height, int bpp)
|
|
8 {
|
|
9 if(SDL_Init( SDL_INIT_VIDEO ) < 0)
|
|
10 {
|
|
11 cout << "Couldn't initialize SDL:" << SDL_GetError() << endl;
|
|
12 exit(1);
|
|
13 }
|
|
14
|
|
15 // etc...
|
|
16 }
|
|
17
|
|
18 TaskDepend
|
|
19 CellEngine::update_all(SceneGraph* next, SceneGraph* now, TaskDepend wait)
|
|
20 {
|
|
21 SceneGraph *t, *nt;
|
|
22 t = now;
|
|
23 nt = next;
|
|
24
|
|
25 SceneGraphPack *nt_pack = nt->data_pack();
|
|
26 SceneGraphPack *t_pack;
|
|
27 Task* t_task = now->get_task();
|
|
28 TaskDepend task;
|
|
29
|
|
30 task = manager->create_task(function_id, now->task_size(),
|
|
31 (unsigned int *)now->get_task(),
|
|
32 (unsigned int *)next->get_task());
|
|
33
|
|
34 manager->set_task_depend(task, wait);
|
|
35
|
|
36 task->run();
|
|
37
|
|
38 return task;
|
|
39 }
|
|
40
|
|
41 TaskDepend
|
|
42 CellEngin::draw_all(SceneGraph* now, TaskDepend wait)
|
|
43 {
|
|
44 /**
|
|
45 * SceneGraph => Polygon
|
|
46 * Polygon => Span, Texture
|
|
47 * Texture, Span => Rendering
|
|
48 */
|
|
49
|
|
50 SceneGraph *t, *nt;
|
|
51 t = now;
|
|
52 nt = next;
|
|
53
|
|
54 SceneGraphPack *nt_pack = nt->data_pack();
|
|
55 SceneGraphPack *t_pack;
|
|
56 Task* t_task = now->get_task();
|
|
57 TaskDepend task;
|
|
58
|
|
59 task = manager->create_task(function_id, now->task_size(),
|
|
60 (unsigned int *)now->get_task(),
|
|
61 (unsigned int *)next->get_task());
|
|
62
|
|
63 manager->set_task_depend(task, wait);
|
|
64
|
|
65 task->run();
|
|
66 }
|