プログラマのつれづれなるままにプログラマのつれづれなるままに音宮志久が思ったことなどをネタにします。プログラムネタ・数学ネタがメインです。画面の拡大動作について画面の拡大動作についてコメントを残すちょっといろいろなゲームでのアスペクト比維持のための動作をみてみましたが、いくつかパターンがあるようです。以下のような種類ですね。機能を無視してディスプレイ側の機能に任せる(スマートズーム機能に任せる)ユーザーにディスプレイのアスペクト比に合わせるように設定してもらって拡大+レターボックス(ピラーボックス)処理をグラフィックカードに処理してもらうディスプレイの限界で拡大されると仮定してそのサイズに広がったときに正しくなるように必要に応じて縦方向(あるいは横方向)に縮めて描画してしまうアスペクト比の保持機能があるプログラムはだいたい二番目の方式をとるものがほとんどです。WindowModePatchも二番目の方式です。目は対応しなくてもいいので簡単ですが、ディスプレイの種類によっては横に引き延ばされたように見えるので、立ち絵が横に伸びたりしてギャルゲーなどではちょっと不気味になってしまいます。三番目については、この方式をとっているプログラムはそれほど多くないのですが、この方式の場合、ディスプレイのアスペクト比の検知に失敗すると描画が見苦しくなるのと、システムカーソルが横方向に拡大しているように見えるのでちょっと微妙ですが、うまくはまればきれいに見えます。一度見たときはスマートズームモードだったのでびっくりしましたが・・・。どちらにしても、実装するにはマウスのカーソル位置を内部で変換するために必要な処理を行う必要があるディスプレイの最適なアスペクト比を検知する必要がある初期化解像度(内部解像度)と実際の表示解像度の差を埋めるための処理を描画直前に挟む必要があるをちゃんと行う必要があります。拡大処理が線形補完のために画面がぼやけてしまうのが欠点です自前でやるならうまいこと拡大してくださいね~。ちなみにそろそろ修正版をリリースします。ほとんど修正されていません。気になった点だけです・・・。次はCOMとHRESULTの処理でしょうかね~。記事を書くことで自分の復習+メモ書きにもなるので使えます・・・。コメントをキャンセルメールアドレスが公開されることはありません。気になるプログラムネタや数学ネタがあったら書き込みたいのだが残業が長すぎて眠気が全くとれず体調があまりよくない。過労などでぶっ倒れるかもしれない。あと、さすがに独り身が寂しいのでなんとかしたいと考えてはいるのだが...。関連記事はありません。アクセスカウンタアクセス数:スポンサーリンクモバイルバージョンに。