高速化できました
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番で初期化されたサーフェースが作られて描画されるみたいです。サイズは不明。
これが何気に時間を使っているようでした。
一色さんがGP2XのSDLを解析してくれたおかげでいろいろと発見できました。
本当に助かりました。ありがとうございます。