WindowModePatch 0.71 Alphaを公開

過去の記録を見てみると大体1年半ぶりの更新なんですね…。ちょっと感慨深いものが。とりあえずまだ生きていますよ~という意味とビルド環境の変化に対応するための試しという意味がかなり大きいバージョンとなっています。

 

開発環境をVisualStudio2017へと移行したためにいろいろと不具合が…

今回の大きな変化がこれです。一つ前まではVisualStudio2010だったのですが、今回は最新一つ手前のVisualStudio2017でビルドを行っています。というのも、昨年の段階でPCを組み直したときに環境をまっさらにした関係でVisualStudio2010の開発環境まで完全に吹っ飛んでしまったのが大きかったのと、その後開発環境を戻す余裕がなくなったためにどうせならとVisualStudio2017を購入したためにさらに開発環境の再構築に時間がかかってしまったのが大きかったです。実際にプロジェクトの更新だけではなくソースコードの漢字コードを変換していったり、ランタイムライブラリの動作が変更されているものがあったために対応する処理を書いたりするなどがあったためだったりします。

まあ、副産物としてWindowModePatchの設定ファイルの漢字コードをUTF-8に変更しております。もちろん、旧の設定ファイルであるShiftJIS形式でも読み込めますし、UNICODE形式で保存されても読み込めるようになっています。この「複数文字コードに対応したテキストファイルの読み込み処理」が作られたのがちょっと大きいです。こういうフリーソフト側に使うだけではなく仕事で作成するツール類にも使えるのが非常に大きかったりします。

 

一応DPIのスケーリング処理に「暫定的に」対応

といってもやっていることは「スケーリング処理をアプリケーション側で行うように見せかけているだけ」だったりします。実際、WindowModePatchは解像度変換機能がメインなので逆に現在のモニタの解像度に合わせた設定ができないと微妙に困るからですね。Win10の初期段階のものだと設定を正しくしないとマニフェストファイルにスケーリング処理対応の方法が書かれていない場合にWinAPI側で勝手にスケーリングされて設定の数字が誤ってしまう、という現象もありましたので。

一応この処理はWin10の1703(Creators Update)以降であれば(WindowModePatchが対応できれば)対応処理が入ると思います。問題はそれより古いバージョンでの動作。一応対応コードは書いておいたのでWin8.1以降であれば動いて「ほしい」コードなのですが、手元でやったいる段階では動かないことが多かったです。これについてはDPIAwarenessと呼ばれる部分の処理の説明をもう少し読み込んだ方がよいかもしれません。実際、はじめに思っていた設定値の役割が完全に逆になっていたことに気がついたのはかなり後だったりしますので。

 

対応したソフトが増えていないだろうとは思う

頑張ってDirectX5時代のDirect3Dに対応しようとした形跡が見えるコードは今のところ封印しておりますし、やりたいことも増えてきているながらやらなければならないことも増えてきていますので…。頑張って増やしていければな~と思いながら。


コメントを残す

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

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