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