view TaskManager/Test/test_render/ChangeLog @ 268:2b7d631695ca draft

merge
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 04 Jun 2009 00:00:09 +0900
parents e3b7776b1420
children fe854a6ee9e2
line wrap: on
line source

2008-12-22  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>

	* fix
	charles を Fedora 10 に上げて、コンパイラが新しくなったせいか、
	以下のような warning が出始めた

	warning: deprecated conversion from string constant to 'char *'

	まあよくわからんが、例えば

	char *str = "hoge";

	みたいな所だとこの warning が出る。これを

	const char *str = "hoge";

	にすると消えた。
	以後こういう形に統一しろよ的なやつなのかな。

2008-12-19  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>

	* viewer.cpp (Viewer::run_draw): fix
	startx, endx に対して、start_y, end_y って名前は統一されてなくて
	わかりづらいので、starty, endy に変更

	* main.cpp (init): fix
	bpp (BitsPerPixel) の値がデフォルトで 0 になっていた。
	今のレンダリング方式では 32 がデフォルトなので、間違ってた。
	今まで気づかなかったのは

	1. SDL_SetVideoMode に bpp = 0 で渡される
	2. SDL が開発・実行環境に合わせて bpp を設定
	3. 今までそれが 32 になってた

	しかし、ゲーム班の環境では bpp = 16 になってしまったため、
	その次の bitmap の allocate の時に 
	screen->pitch*height = 16*width*height となり、
	DrawSpan では 32 のつもりで書き込んでいたため領域外への
	メモリ書き込み->エラー

	ゲーム班ありがとう
	
2008-12-16  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>

	* SceneGraph.cpp (makeTapestry): add
	SceneGraph::get_data にあったけど、ごちゃごちゃしてたので
	関数として生成

	* viewer.cpp (Viewer::run_init, Viewer::run_draw): fix
	* spe/DrawSpan.cpp (DrawSpan::zRow_init): delete

	Z Buffering に使う zRow は DrawSpan で毎回生成、初期化するのではなく、
	PPE で生成、初期化を行っておき、DrawSpan に add_inData で
	DMA で渡すという方法に変更。速度的にはほんのちょっとしか(ry
	
	* spe/CreateSpan.cpp (CreateSpan::half_triangle): fix
	getScale に渡す tex_width,tex_height を修正。
	比較にそのまま tex_width, tex_height を使うと、
	Span が持つテクスチャが全体の一部分だったとしても
	比較結果で縮小が行われてしまうため。

	- 例
	span->length_x = 32;
	tex_width = 128;
	tex_x_len = (span->tex_x2 - span->tex_x1) = (0.5 - 0.3) = 0.2;

	今までの処理だと、span->length_x < tex_width の結果により
	縮小されたテクスチャを使うことになる。
	しかし、実際に Span が使う Texture の長さは

	  tex_width*tex_x_len = 24

	なので、縮小を行う必要は無い
	

2008-12-12  Wataru MIYAGUNI  <gongo@cr.ie.u-ryukyu.ac.jp>

	* SceneGraph.cpp (SceneGraph::get_data): Todo
	テクスチャの縦横が 8 の倍数でなければ弾く処理を入れる。

	* spe/DrawSpan.cpp (DrawSpan::run): Todo
	テクスチャの座標計算と、そこから取得できる Tile の DMA を
	一スレッドで処理しているのでそれを分けないといけない

	* spe/CreateSpan.cpp (getTapestry): Add
	(getScale): Add

	* memo: 雑記
	ようやくこいつに ChangeLog を加えました。
	なんか emacs で「C-x 4 a」とかすると、ChangeLog の entry が
	加えれられるんだけど、上の階層のを探しにいくので、TaskManager/ のに
	加えようとしてたわけさ。まあそういう仕様なんだけど。
	で、だからといって不可能ってわけじゃないから書けばよかったんだが。

	要するに、これからはちゃんと書いていこうと思います。