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