Mercurial > hg > Members > kono > Cerium
annotate TaskManager/Test/test_render/ChangeLog @ 236:c7abab87697a
fix
author | gongo@localhost.localdomain |
---|---|
date | Sun, 29 Mar 2009 22:03:16 +0900 |
parents | c254a2bd1b34 |
children | 5e2d30bfbf23 |
rev | line source |
---|---|
236 | 1 2009-03-29 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
2 | |
3 * Makefile | |
4 SGlist.{cpp,h} を make clean で消去し、 | |
5 make で自動生成するようにしました。 | |
6 けどなんか他のファイルと同じ書きかたしても | |
7 上手く行かなかった。何か見落としてるかもしれない。誰か直(ry | |
8 | |
228
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
9 2009-02-12 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
10 |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
11 * task/CreatePolygonFromSceneGraph.cpp (CreatePolygonFromSceneGraph::run): fix |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
12 下にあわせる様に |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
13 |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
14 * SceneGraph.cpp (SceneGraph::SceneGraph, SceneGraph::init) |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
15 (SceneGraph::finalize_original): fix |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
16 今まで、Polygon が持つ vertex, normal, texture coordinate ってのが |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
17 |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
18 --------------------------------------- |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
19 data = | vertex | normal | texture | sizeof(data) = size*3 |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
20 --------------------------------------- |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
21 \ size / \ size / \ size / |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
22 |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
23 てな感じで、SceneGraph->data の中に 3 つ入ってたわけです。 |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
24 これだと、アクセスする時にどれがどれかわからんくなるし、 |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
25 ソース読む時に迷う(経験談)ので、data を消して、代わりに |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
26 coord_xyz, normal, coord_tex を作りました。 |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
27 |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
28 * polygon.cpp (Polygon::pickup_coordinate) |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
29 (Polygon::pickup_normal, Polygon::pickup_texture): |
c254a2bd1b34
remove SceneGraph::data, add SceneGraph::coord_xyz, coord_tex, normal
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
221
diff
changeset
|
30 |
221 | 31 2009-02-10 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
32 | |
33 * Makefile.macosx (depend): fix | |
34 depend.inc とかを吐き出す様にしました | |
35 | |
36 * Camera.cpp (Camera::Camera, Camera::updateView) | |
37 (Camera::updatePerspective, Camera::updateScreen) | |
38 (Camera::update): fix | |
39 なんとかカメラできてるっぽいです。 | |
40 Perspective とかも聞いてるし、中心に向かって遠くなってる。 | |
41 あとは行列演算をもうちょいこぎれいにすればいい感じかなー。 | |
42 | |
43 残りは、ユーザ側からの設定。例えば | |
44 1. 車の運転席目線(FPS) | |
45 2. 車の後ろから(TPS) | |
46 3. 車の前から(SPS) | |
47 | |
48 的なのを、ユーザが CameraData みたいな構造体に | |
49 zd とか yd とかを設定して camera->set(data) とかやれば | |
50 反映するみたいな!みたいな! | |
51 | |
219
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
52 2009-02-09 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
53 |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
54 * SceneGraphRoot.cpp (SceneGraphRoot::allExecute) |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
55 (SceneGraphRoot): fix |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
56 SceneGraph を root から走査していきながら |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
57 その都度コピーしていき、最終的に全体の新しい SceneGraph ができる。 |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
58 削除されていればコピーしない、っていうのは簡単だけど |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
59 追加された場合、コピー元に追加されるのは困るので |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
60 コピーしたやつに追加って形にしたら今のコードになった。 |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
61 めんどくさいっちゃめんどくさい。もっと綺麗な書き方あるかね |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
62 |
0f1ff7b06157
allExecute する度に SceneGraph をコピーしていく様に変更
gongo@gendarme.local
parents:
215
diff
changeset
|
63 |
215
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
64 2009-02-01 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
65 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
66 * SceneGraph.cpp (SceneGraph::SceneGraph) |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
67 (SceneGraph::SceneGraph, SceneGraph::SceneGraph) |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
68 (SceneGraph::finalize_original, SceneGraph) |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
69 (SceneGraph::finalize_copy): add, fix |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
70 今のところ、SceneGraph の作られ方は |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
71 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
72 a1. xml ファイルから生成 (sgid 毎、sg_src[] に格納) |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
73 a2. ID を指定し、sg_src[id] の SceneGraph を複製 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
74 a3. xml も ID も指定しない、何も表示しない SceneGraph |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
75 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
76 a1 の時はポリゴンデータ(data[])を生成するわけだけど、 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
77 a2 でも、オリジナルと同じ data[] を持つ必要は(今は)ない。 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
78 なので、a2 の場合、data[] は a1 と同じ場所を指せば良い。 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
79 しかし、今までは、SceneGraph::~SceneGraph では |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
80 どんな SceneGraph でも |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
81 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
82 delete [] data; |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
83 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
84 とかやってたので、それならということで |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
85 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
86 b1. a1 用の、Desturctor で data[] を delete する finalize_original() |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
87 b2. a2,a3 用の、data[] を削除しない finalize_copy() |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
88 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
89 を用意し、a1,a2,a3 の Consturoctor で、どっちかを設定する。 |
7ca6a2ef5be9
fix SceneGraph Constructor, Destructor
gongo@gendarme.local
parents:
210
diff
changeset
|
90 |
210 | 91 2009-01-30 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
92 | |
93 * spe/DrawSpan.cpp (DrawSpan::drawDot1): add | |
94 span->length_x == 1 の処理。 | |
95 | |
96 (DrawSpan::drawDot2): add | |
97 Dot1 の続き。要は Dot1 で load して、Dot2 で wait->書き込みって感じ | |
98 しかし、1ドットだとそこまで待つ必要もないかなって感じなので | |
99 今は Dot 2には何も書いてない。ちゃんとしらべて、必要そうだったら | |
100 ここで書き込みを行う | |
101 | |
102 (DrawSpan::drawLine1): add | |
103 span->length_x > 1 の処理。 | |
104 いくつか Load パターンを考えてる途中 | |
105 | |
106 1. 全部 load | |
107 1. z buf で描きこむと判断したとき、その pixel の texture tile を | |
108 load する。(すでにある、ないに関わらず。ある場合は、実際には | |
109 Load の処理は行われないが) | |
110 2. Line2 で描画する(ここで使う tile はすでに全部読み込まれてるとする | |
111 | |
112 2. 無い物だけload | |
113 1. 書き込むと判断したとき、tile があるかどうかを調べ | |
114 あればそのまま linebuf に、無ければ load を掛けて continue; | |
115 このとき、load した(つまりまだ書き込まれてない) 場所を覚えておく | |
116 2. Line2 で、1. で覚えた場所から再び計算して描画する。 | |
117 tile はすでに全部読み込まれているとする | |
118 | |
119 まだあったけど忘れた。 | |
120 今のところ描画領域が 256x8、もしくは512x8 で、 | |
121 単純に考えて、領域pixel と texture pixel が一緒だと考えると | |
122 一個の Span で最大 64 (512/8) 個の tile があればいいと考えられる。 | |
123 一個の SPE には Tile を 128 個持っておけるし、 | |
124 今は Span を二つ平行して処理しているので、 | |
125 途中で Tile が足りなくなる!ってことはないはず。 | |
126 とまあ、いろいろ考えてたんだけど、何書けばいいのか忘れた。。 | |
127 思い出したらまた書きます。 | |
128 | |
199
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
129 2009-01-26 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
130 |
203 | 131 * spe/CreateSpan.cpp (CreateSpan::run): fix |
132 ポリゴンをx軸に水平に分割し、その二つを計算するってのが | |
133 half_triangelで、上としたで、何故か渡すテクスチャの情報が違う。 | |
134 なんでだろうと思いつつも、今まで特に問題が出なかったから無視してたが、 | |
135 今回、三つのSceneGraph を動かしてる時に問題発生。 | |
136 それぞれ違うテクスチャを貼ってるのに、なぜかそれらのうちの半分が | |
137 別のテクスチャが貼られていた。簡単に言うと、A,B,C の SG があった。 | |
138 | |
139 A: 正常 | |
140 B: 右上だけ A のテクスチャ | |
141 C: 右上だけ A のテクスチャ | |
142 | |
143 といった具合。わけがわからなかったんだが、 | |
144 half_triangle に渡すやつの所為だと気づきました | |
145 なんでここだけ pp->tri[0].tex_info.addr とか渡してんのか未だに謎。 | |
146 単なる書き間違いか直し間違いか。微妙なところ。 | |
147 これ書いた後輩はもう居ない | |
148 | |
149 | |
202
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
201
diff
changeset
|
150 * SceneGraphIterator.cpp (SceneGraphIterator::hasNext) |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
201
diff
changeset
|
151 (SceneGraphIterator::next): fix |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
201
diff
changeset
|
152 検索する引数を int id に変更。 |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
201
diff
changeset
|
153 |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
201
diff
changeset
|
154 * SceneGraph.h (class SceneGraph): add variable |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
201
diff
changeset
|
155 int flag_drawbale : この SceneGraph は描画する物かどうか |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
201
diff
changeset
|
156 int sgid : SceneGraph の ID 。ID は SGList.h にあるものを使う |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
201
diff
changeset
|
157 |
201 | 158 * SceneGraphIterator.cpp : add file |
159 SceneGraph を走査する用。 | |
160 基本、Java の Iterator を参考にしてます。 | |
161 追加機能としては | |
162 | |
163 - hasNext(const char* name); | |
164 名前が name の SceneGraph があるかどうか | |
165 | |
166 - next(const char* name); | |
167 名前が name の SceneGraph まで進ませる | |
168 | |
169 * SceneGraphIterator.cpp : TODO | |
170 hasNext とかは名前じゃなくて ID が良いかなーとも思うけどね。 | |
171 てかその方がいいな。あとで直します | |
172 | |
173 * ieshoot.cpp (ieboss_move): add | |
174 (ieboss_collision): add | |
175 BOSSの動きを追加。 | |
176 IETAMA が数回衝突したら BOSS を消すって処理。 | |
177 | |
178 * SceneGraphIterator.cpp (SceneGraphIterator::next): fix | |
179 break してなかった。そりゃ取れないわ | |
180 | |
181 * SceneGraph.cpp (SceneGraph::realRemoveFromTree): fix | |
182 | |
183 < p1 = p1->next; | |
184 < p = p->next; | |
185 ===== | |
186 > p1 = p1->brother; | |
187 > p = p->brother; | |
188 | |
189 | |
200 | 190 * viewer.cpp (Viewer::run_draw): fix |
191 Spanの無い部分を塗りつぶす処理はタスクを走らせず、 | |
192 そのまま memset とかの方が早い。 | |
193 まとめてするタスクを立ち上げるってのもいいかもしれない。 | |
194 あと、memsetで指定する値が、0xFF と 0x00 とで速度が違う。 | |
195 universe だと、 | |
196 | |
197 0xFF 24fps | |
198 0x00 30fps | |
199 | |
200 なんだろう。0x00 だと、ただのクリアになるから速いってことかな。 | |
201 | |
199
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
202 * Camera.h (class Camera): add |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
203 とりあえず Camera を作って、これを SceneGraph の Top にした。 |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
204 |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
205 * SceneGraph.cpp (SceneGraph::realRemoveFromTree): add |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
206 realRemove() の Tree構造用。削除後の tree top を返す様にしている。 |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
207 まあ top が消えなければ返す必要も無いし、top が消えるってことは |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
208 SceneGraph そのものが消えるってことでそうは無い・・はずだけどね。 |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
209 (SceneGraph::realRemoveFromList): add |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
210 realRemove() の list用。削除後の list top を返す様にしている。 |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
211 (SceneGraph::realRemoveFromTree): fix |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
212 < p->next = p1->next; |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
213 === |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
214 > p->brother = p1->brother; |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
196
diff
changeset
|
215 |
195 | 216 2009-01-25 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
217 | |
196
932a05a7a1db
add SceneGraphRoot, tools/create_sglist.pl
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
195
diff
changeset
|
218 * add (tools/create_sglist): new |
932a05a7a1db
add SceneGraphRoot, tools/create_sglist.pl
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
195
diff
changeset
|
219 必要な SceneGraph xml file から SceneGraph を抽出し、 |
932a05a7a1db
add SceneGraphRoot, tools/create_sglist.pl
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
195
diff
changeset
|
220 名前と対応する ID を SGList.h に出力する。 |
932a05a7a1db
add SceneGraphRoot, tools/create_sglist.pl
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
195
diff
changeset
|
221 また、名前から ID を求める sglist_table を SGList.cpp に出力する。 |
932a05a7a1db
add SceneGraphRoot, tools/create_sglist.pl
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
195
diff
changeset
|
222 |
195 | 223 * SceneGraph.cpp (SceneGraph::remove): add |
224 User API。ここで削除するのではなく、まずはフラグを立てるだけ | |
225 ここですぐに消すと、allExecute() の走査で何気に困る | |
226 | |
227 (SceneGraph::isRemoved): add | |
228 この SceneGraph 削除フラグが立っているかどうか | |
229 | |
230 (SceneGraph::realRemove): TODO | |
231 子を持つ SceneGraph が消された場合、 | |
232 その子孫を全て削除するかどうか。まあ削除するのかな。 | |
233 | |
234 (SceneGraph::realRemove): add | |
235 Cerium System で呼ばれる。 | |
236 remove flag の立った SceneGraph を削除する。 | |
237 parentやbrother、next は繋ぎ直す。 | |
238 | |
239 * SceneGraphRoot.cpp (SceneGraphRoot::addNext): add | |
240 sg_available_list に追加していく | |
241 木の操作が要らないアクセスの際にはこっちの方がいい。 | |
242 | |
243 (SceneGraphRoot::setSceneData): add | |
244 Cerium に SceneGraph の tree を渡す。Cerium はこの tree を辿って | |
245 処理を行う | |
246 | |
247 (SceneGraphRoot::createFromXMLfile): add | |
248 xml file を指定して、そこから SceneGraph を生成し、 | |
249 sg_src に格納する。ユーザはこの SceneGraph を直接は扱えない。 | |
250 以下に示す createSceneGraph の、読み込み元データとして保存しておく。 | |
251 | |
252 (SceneGraphRoot::createSceneGraph): add | |
253 オリジナルの SceneGraph を clone してユーザに返す。 | |
254 この SceneGraph をユーザが操作する。 | |
255 | |
256 * SceneGraphRoot.h (class SceneGraphRoot): new variables | |
257 sg_src, sg_exec_list, sg_draw_list, sg_available_list | |
258 | |
259 * addfile (SceneGraphRoot.cpp) | |
260 SceneGraph を管理するクラス、ってところか。 | |
261 Root ってのは SceneGraph という名前からすると | |
262 一番親と思われそうで微妙です。変えるかも。 | |
263 | |
191 | 264 2009-01-12 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
265 | |
266 * Joystick.cpp: TODO | |
267 使用している Joystick が | |
268 | |
269 1. PS3 コントローラ | |
270 2. PS2 コントローラにUSB変換をかましたやつ | |
271 | |
272 によってボタンの番号配置が違うので | |
273 そこを自動的に取得して割り振りたい | |
274 | |
275 SDL_JoystickName() で名前取れるんだけど | |
276 全部共通なのかなー。「PS3って文字列があるか否か」でわけてもいいけど | |
277 | |
278 * Joystick.cpp: fix | |
279 コントローラボタンの番号を PS3 コントローラに合わせました。 | |
280 | |
281 - 参考 | |
282 PS3 Linux SDLでプログラミング -コントローラを使う- | |
283 http://yun.cup.com/ps3sdl007.html | |
284 | |
285 アナログスティックの方はまだです | |
286 | |
188
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
287 2009-01-08 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
288 |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
289 * spe/DrawSpanRenew.cpp (DrawSpanRenew::run): fix |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
290 next_spack を free() していたが、do-while の最初で |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
291 next_spack = NULL とかやっている。 |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
292 DrawSpan だと、free するのは free_spack ってやつなので |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
293 問題なかったが、なぜここは free(next_spack) とかやってるのか。 |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
294 というわけで、next_spack,spack 両方用の |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
295 free_spack1, free_spack2 を生成して、これを free させることに。 |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
296 これで、ようやくまともに動くようになった。けど微妙です。 |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
297 遅いですね。 |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
298 |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
299 * addFile : DrawSpanRenew.cpp |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
300 DrawSpan の再起動 ver。 |
06f39635a9b0
メモりリーク箇所発見:TaskManager/Test/test_render/ChangeLog参照
gongo@localhost.localdomain
parents:
180
diff
changeset
|
301 |
180
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
302 2008-12-22 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
303 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
304 * fix |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
305 charles を Fedora 10 に上げて、コンパイラが新しくなったせいか、 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
306 以下のような warning が出始めた |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
307 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
308 warning: deprecated conversion from string constant to 'char *' |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
309 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
310 まあよくわからんが、例えば |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
311 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
312 char *str = "hoge"; |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
313 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
314 みたいな所だとこの warning が出る。これを |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
315 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
316 const char *str = "hoge"; |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
317 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
318 にすると消えた。 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
319 以後こういう形に統一しろよ的なやつなのかな。 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
320 |
179
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
321 2008-12-19 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
322 |
180
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
323 * viewer.cpp (Viewer::run_draw): fix |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
324 startx, endx に対して、start_y, end_y って名前は統一されてなくて |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
325 わかりづらいので、starty, endy に変更 |
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
179
diff
changeset
|
326 |
179
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
327 * main.cpp (init): fix |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
328 bpp (BitsPerPixel) の値がデフォルトで 0 になっていた。 |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
329 今のレンダリング方式では 32 がデフォルトなので、間違ってた。 |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
330 今まで気づかなかったのは |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
331 |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
332 1. SDL_SetVideoMode に bpp = 0 で渡される |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
333 2. SDL が開発・実行環境に合わせて bpp を設定 |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
334 3. 今までそれが 32 になってた |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
335 |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
336 しかし、ゲーム班の環境では bpp = 16 になってしまったため、 |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
337 その次の bitmap の allocate の時に |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
338 screen->pitch*height = 16*width*height となり、 |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
339 DrawSpan では 32 のつもりで書き込んでいたため領域外への |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
340 メモリ書き込み->エラー |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
341 |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
342 ゲーム班ありがとう |
434846aef389
SDL_SetVideoMode に渡す bpp が 0 になってた (環境依存になってしまう)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
178
diff
changeset
|
343 |
176 | 344 2008-12-16 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
345 | |
178
5d1b82945b0d
add makeTapestry in SceneGraph.cpp
gongo@localhost.localdomain
parents:
177
diff
changeset
|
346 * SceneGraph.cpp (makeTapestry): add |
5d1b82945b0d
add makeTapestry in SceneGraph.cpp
gongo@localhost.localdomain
parents:
177
diff
changeset
|
347 SceneGraph::get_data にあったけど、ごちゃごちゃしてたので |
5d1b82945b0d
add makeTapestry in SceneGraph.cpp
gongo@localhost.localdomain
parents:
177
diff
changeset
|
348 関数として生成 |
5d1b82945b0d
add makeTapestry in SceneGraph.cpp
gongo@localhost.localdomain
parents:
177
diff
changeset
|
349 |
177 | 350 * viewer.cpp (Viewer::run_init, Viewer::run_draw): fix |
351 * spe/DrawSpan.cpp (DrawSpan::zRow_init): delete | |
352 | |
353 Z Buffering に使う zRow は DrawSpan で毎回生成、初期化するのではなく、 | |
354 PPE で生成、初期化を行っておき、DrawSpan に add_inData で | |
355 DMA で渡すという方法に変更。速度的にはほんのちょっとしか(ry | |
356 | |
176 | 357 * spe/CreateSpan.cpp (CreateSpan::half_triangle): fix |
358 getScale に渡す tex_width,tex_height を修正。 | |
359 比較にそのまま tex_width, tex_height を使うと、 | |
360 Span が持つテクスチャが全体の一部分だったとしても | |
361 比較結果で縮小が行われてしまうため。 | |
362 | |
363 - 例 | |
364 span->length_x = 32; | |
365 tex_width = 128; | |
366 tex_x_len = (span->tex_x2 - span->tex_x1) = (0.5 - 0.3) = 0.2; | |
367 | |
368 今までの処理だと、span->length_x < tex_width の結果により | |
369 縮小されたテクスチャを使うことになる。 | |
370 しかし、実際に Span が使う Texture の長さは | |
371 | |
372 tex_width*tex_x_len = 24 | |
373 | |
374 なので、縮小を行う必要は無い | |
375 | |
376 | |
175 | 377 2008-12-12 Wataru MIYAGUNI <gongo@cr.ie.u-ryukyu.ac.jp> |
378 | |
176 | 379 * SceneGraph.cpp (SceneGraph::get_data): Todo |
380 テクスチャの縦横が 8 の倍数でなければ弾く処理を入れる。 | |
381 | |
175 | 382 * spe/DrawSpan.cpp (DrawSpan::run): Todo |
383 テクスチャの座標計算と、そこから取得できる Tile の DMA を | |
384 一スレッドで処理しているのでそれを分けないといけない | |
385 | |
386 * spe/CreateSpan.cpp (getTapestry): Add | |
387 (getScale): Add | |
388 | |
389 * memo: 雑記 | |
390 ようやくこいつに ChangeLog を加えました。 | |
391 なんか emacs で「C-x 4 a」とかすると、ChangeLog の entry が | |
392 加えれられるんだけど、上の階層のを探しにいくので、TaskManager/ のに | |
393 加えようとしてたわけさ。まあそういう仕様なんだけど。 | |
394 で、だからといって不可能ってわけじゃないから書けばよかったんだが。 | |
395 | |
396 要するに、これからはちゃんと書いていこうと思います。 |