Mercurial > hg > Members > kono > Cerium
annotate TaskManager/Test/test_render/scene_graph_pack.h @ 174:559b48b69b76
getScale()、getTapestry から、span->length に適切なテクスチャの選択に成功
author | gongo@localhost.localdomain |
---|---|
date | Fri, 12 Dec 2008 12:23:20 +0900 |
parents | 38cbb7aecc70 |
children | 25c820b6060e |
rev | line source |
---|---|
109 | 1 #ifndef INCLUDED_SCENE_GRAPH_PACK |
2 #define INCLUDED_SCENE_GRAPH_PACK | |
3 | |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
4 #ifndef INCLUDED_SCENE_GRAPH |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
5 # include "SceneGraph.h" |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
6 #endif |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
7 |
164
38cbb7aecc70
TilePtr は SPE で計算した方がいいと判断して変更。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
137
diff
changeset
|
8 #ifndef INCLUDED_TYPES |
38cbb7aecc70
TilePtr は SPE で計算した方がいいと判断して変更。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
137
diff
changeset
|
9 # include "types.h" |
38cbb7aecc70
TilePtr は SPE で計算した方がいいと判断して変更。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
137
diff
changeset
|
10 #endif |
38cbb7aecc70
TilePtr は SPE で計算した方がいいと判断して変更。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
137
diff
changeset
|
11 |
109 | 12 #define MAX_NODE 16 |
13 #define MAX_POLYGON 36 | |
14 | |
15 typedef struct SceneGraphNode { | |
16 int size; // この Node で使ってるポリゴンの数、でいいのかな | |
17 float vertex[MAX_POLYGON*3]; | |
18 float texture[MAX_POLYGON*2]; | |
19 float obj_pos[4]; | |
20 float angle[4]; | |
21 float translation[16]; | |
164
38cbb7aecc70
TilePtr は SPE で計算した方がいいと判断して変更。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
137
diff
changeset
|
22 uint32 *tex_addr; |
38cbb7aecc70
TilePtr は SPE で計算した方がいいと判断して変更。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
137
diff
changeset
|
23 int tex_width, tex_height; |
109 | 24 int id; |
25 int move, interaction; | |
26 int pn; // parent number? | |
27 SceneGraphNode *next; | |
28 int pad[3]; | |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
29 SceneGraphPtr self; |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
30 SceneGraphPtr tree; |
109 | 31 |
32 void init(void) { | |
33 size = 0; | |
34 next = 0; | |
35 } | |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
36 |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
37 void finish(void) { |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
38 SceneGraphNode *p = this->next, *p1; |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
39 |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
40 while (p) { |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
41 p1 = p->next; |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
42 free(p); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
43 p = p1; |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
44 } |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
45 } |
109 | 46 }SceneGraphNode, *SceneGraphNodePtr; |
47 | |
48 typedef struct SceneGraphInfo { | |
49 int size; | |
50 int pad[2]; | |
51 }SceneGraphInfo; | |
52 | |
53 typedef struct SceneGraphPack { | |
54 SceneGraphInfo info; | |
55 SceneGraphNode node[MAX_NODE]; | |
56 SceneGraphPack *next; | |
57 | |
58 void init(void){ | |
59 next = 0; | |
60 info.size = 0; | |
61 | |
62 for (int i = 0; i < MAX_NODE; i++) { | |
63 node[i].size = 0; | |
64 } | |
65 } | |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
66 |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
67 void finish(void) { |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
68 for (int i = 0; i < info.size; i++) { |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
69 node[i].finish(); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
70 } |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
71 |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
72 next = 0; |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
73 info.size = 0; |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
74 } |
109 | 75 } SceneGraphPack, *SceneGraphPackPtr; |
76 | |
77 #endif |