☆Zaurus SZAB C言語《ファイル画像表示》

以前、リソースから画像表示の例を行いました。
今回は、ファイルから直接画像を読み込み、裏画面に展開してから、実画面に表示します。
BMPファイルを読み込んで表示するサンプルが、MOREソフトサンプルの「BMP変換サンプルソフト」にあります。
以上
……とこれだけで終わったらこのページを作成した意味がない(^^;

このサンプルには致命的な欠陥があります。
展開に3秒ぐらいかかっています(泣)

これでは実用的ではありません。
アドベンチャーゲームの画面がボタンを押す度に数秒かかると考えて下さい。嫌っしょ?

○どこが遅いのか?

以前、RPGを作成した際に、特に工夫しなくても移動表示はスムーズに行えました(チラついたが……)
つまり、画面描画は十分速いです。
遅いのは、展開ロジックか、ファイル読み込みだと予測します。

まず、ファイル読み込みを疑ってみます。
SDカードは本体メモリよりも低速です。
そこで、試しに BMP画像データを SDカードから本体メモリへ移してみます。
……が、SDカードから本体メモリへファイルを移す機能が見あたりません
こういうのを、仕様上のバグといいます(泣)

標準インストールソフトを停止出来ないと言う仕様上のバグもそうですが、誰かがその解消方法を編み出してくれています。
今回は、Tree! Explorerを使う事でファイルコピーが可能になりました(利用可能機種が少ないのが残念です)
今後、私の MI-E1での常駐ソフトになるでしょう。作者に感謝です。

で、BMPファイルを SDカードから本体メモリへコピーしてみました。
全然速さは変わりませんでした。
故に、ファイル読み込みは関係ない事が分かりました。

問題点を展開ロジックに絞り込んで考えます。
ソースを見ると、SetColorRGBで色を作成して、DispPointでオフスクリーン書き込んでいる所が明らかに遅そうです。
関数を使って1つづつ点を打つのでは無く、直接オフスクリーンへデータを描き込めれば速いと思います。

そこで、次はオフスクリーン解析を行います。

トップメニュープログラマ専用Zaurus開発