WindowModePatch 0.63 Alphaを公開

今回は二週間前後での更新となりました。ちょっと前回更新したときに気になっていたことを調べてみるとおもしろいことが分かってしまったのでそれに対する更新と要望に対する更新の二つをやっています。このターンでの更新は致命的な問題が無い限りはこれが最後だと思います。

 

DirectDrawのパレット処理で勘違いが

これが気になっていた項目です。今回の修正ではいろいろとテストしているとパレット処理に関しても何かおかしい、と違和感を感じていたのであるテストプログラムを使って仮想マシン上にあるWinXPでテストを行ってみた結果がびっくり。動作をかなり勘違いしていました。で、これに関して何か記述がないかとヘルプを見回っているとDirectDraw側のヘルプにパレット処理に関する記述があったのでそれを確認した結果自分の実装が間違っていたことが分かりました。で、これを修正。

この勘違いの修正でDirect3D9を使ってDirectDrawをエミュレーションしている方は問題が解消されたのですが、代わりにDirectDrawだけを使ってエミュレーションしている方がものすごい色化けが発生してしまい大変なことに。こちらの方はパレット処理に関する手順前後だったようで、それを解消して終了しました。これでDirectDrawを使ったパレット処理に関する色化け系の問題はほとんど修正されたはずです。

 

フォント名を指定しないとデフォルトになるのね

で、もう一つの問題はいろいろと問題を読み替えていった結果、「WindowModePatch側からフォント名を指定できる様にできないか?」という問題と理解しまして設定項目を一つ追加することで対応しました。事実上フォントの強制設定機能を取り込んだ形になっています。こちらの設定は設定ファイルに直接書き込むタイプなのでそれはご了承ください、と。そしてCreateFont等の関数の仕様を見ていると「フォント名を指定しないで作成するとシステムのデフォルトのフォントを使用する」と言うことでフォントによっては確かに大変なことになるよな~という感想をいだきました。あとはこのCreateFontという関数ですが、WinAPI系の中でも非常に引数の数が多い関数です。スタブを実装するときに引数がありすぎて長すぎるのなんの。興味がある方はヘルプを見てみるといいと思います。

 


コメントを残す

メールアドレスが公開されることはありません。

*

この記事のトラックバック用URL