まどかの同人作品。先のミーティングでローディング画面に触れました。そんなにロード時間はかからない見込みですが、ロード中の画面とか作りたくなる可能性もありまして、ちょっと手法を調べておりました。
Windows で非同期読み込みというのをやったことが無く、どうやって実現するのか MSDN で探していたのですが、 CreateFile() にてファイルを開く際に FILE_FLAG_OVERLAPPED を指定し、続く API に OVERLAPPED 構造体のデータを作って渡すと、その API のファイル入出力が非同期になるそうです。
うそー、そんな簡単に。
もちろん、非同期読み込みならではの注意点をすべてケアしないといけなくなるわけですが、近いようなことは ActionScript でやってきたのでうまくいけばいいなぁ、と思います。ただ、描画に影響しないのかは実際にやってみないとわかりません。
当初の予定通り SQLite を使うようにすると非同期読み込みは簡単みたいです。 SELECT を投げたら、あとはループでぐるぐる回して、 if 文で「読み込み終わった?」というのを確認することができるとのこと。
ただ、どっちにしても DirectX なんかでテクスチャを生成するのに時間がかかったら意味ないかもしれません。ロード画面でアニメーションがカクッってなりそうです。
Contributions