ある事ない事書きなぐり

適当にやっています。

高速化できました

GP2Xの高速化に成功しました。
今までSDL_SetVideoMode()でビデオサーフェースを作る際に、SDL_SWSURFACEを渡して、システムメモリからVRAMを確保していました。


実はGP2Xにはビデオメモリが5MBあるらしく、SDL_HWSURFACEを渡してVRAMを作った方がアクセスが早いという事がわかりました。
ほかにも、SDL_DOUBLEBUFで実はダブルバッファが使えるとか、SDL_FULLSCREENでフルスクリーンにするとちらつきが減るとか、そういった隠し要素がある事がわかりました。
ちなみに色数は256です。やっぱり。


ということで、
SDL_HWSURFACE | SDL_FULLSCREEN | SDL_DOUBLEBUF | SDL_HWPALETTE
を渡して初期化すると早くなります。


今回致命的に遅かった他の理由に、作成していないサーフェースの表示を行っていた事。
どうも作っていないサーフェースを描画しようとすると、パレット0番で初期化されたサーフェースが作られて描画されるみたいです。サイズは不明。
これが何気に時間を使っているようでした。


一色さんがGP2XSDLを解析してくれたおかげでいろいろと発見できました。
本当に助かりました。ありがとうございます。