スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 次はWin版Mirror-DTC | トップページ | 今日は少し苦労した »

Per-Monitor DPI対応は完了

今は、Windows用AmuseGraphicsの開発フェーズなのだが、他ソフトの不具合対応も必要なので、中々、先に進まない。今日も、Win版Mirror-DTC Ver1.3.1の変更作業を行っていたのだが、Windows10 Creators Update以降用のPer-Monitor DPI対応は終わった。

現行版のMirror-DTCは、クライアントについてはSystem DPI対応になっていて、サーバーについては、不完全なPer-Monitor DPI対応になっている。

つまり、クライアントはシングルモニター構成のマシンだとか、デュアルモニター構成のマシンでも、スケーリング設定が全てのモニターで同一の環境でなら、問題なくスケーリング設定に準じた描画が行われるのだが、サーバーについては、少し変になっている。

現行版サーバーでは何が変なのか、というと、表示されるダイアログ等は、基本的には、メインモニターのDPI用に表示され、別モニターに移動しても、サイズが変化しない。

System DPI対応の場合、基本的には、メインモニター側のDPI用に表示されるのだが、別モニター側で別のDPI用にスケーリング設定されている場合には、ダイアログ等をそのモニターに移動すれば、拡大/縮小が行われる。

Per-Monitor DPI対応の場合にも、デュアルモニター構成で、両方のスケーリングが異なる場合には、ダイアログ等をモニター間で移動すれば、そのダイアログのサイズは変化するのがあるべき姿だ。

にも拘わらず、:現行版のMirror-DTCサーバーでは、例えば、簡易サーバーを立ち上げた直後に表示される設定ダイアログは、前述の様に、スケーリング設定が異なるモニター間を移動させてもサイズが変化しないのだが、これは何故なのか、というと、Mirror-DTCサーバー的には、OSに対してPer-Monitor DPI対応のソフトだ、と、宣言しているのだが、実際には、スケーリングに対応する描画は行わせていないからだ。

と、言う事で、現行版のサーバーは、HiDPI対応に関しては、ある意味、おきて破りな感じのソフトになっているのだが、クライアントについては素直にSystem DPI対応ソフトという事にしているにも関わらず、何故、サーバーだけをこんな感じにしたのか、というと、OSに対してPer-Monitor DPI対応ソフトだ、と、宣言しないと、OSに色々と細工されてしまうので、画面キャプチャー時の座標系が訳が分からなくなるからだ。

つまり、現行版のサーバーでは、実際の所としては、HiDPI対応には興味がなく、OSに勝手な真似をさせない為だけに、Per-Monitor DPI対応ソフトだ、と、宣言している恰好になっている訳だ。

と、言う事で、現行版のMirror-DTCでは、クライアント/サーバー共に、デュアルモニター構成マシンでモニター毎に異なるスケーリング設定が行われている場合には、それらに最適化した画面描画は行われていないのだが、次バージョンでは、Windows10 Creators Update以降の環境でなら、普通のPer-Monitor DPI対応の描画が行われる様になる。

ちなみに、何故、次バージョンのPer-Monitor DPI対応が適用されるのがWindows10 Creators Update以降の環境に限定されるのか、というと、Creators Updateで追加された機能を利用しているからだ。

つまり、ManifestにCreators Updateで追加された新しいPer-Monitor DPIに対応している、と、記述しておくと、Creators Update以降の環境では、ダイアログ等の挙動が変化する。

具体的には、ダイアログをスケーリング設定が異なるモニター間で移動するとOSが勝手に、そのダイアログのサイズをスケーリングに合わせて変更し、かつ、表示しているテキストフォント等も、そのスケーリングに合わせて調整するので、通常のダイアログについては、手間いらずにPer-Monitor DPI対応が実現される訳だ。

もっとも、ダイアログに自前描画を行っていたりする場合には、その描画については自前対応が必要になるので、完全自動という訳には行かないのだが、作者製ソフトの殆どのダイアログでは、そんな描画は行っていないので、Windows10 Creators Updateで追加された新しい機能を利用すれば、Per-Monitor DPIに対応させるのも簡単な訳だ。

と、言う事なので、作者製ソフトは、基本的には、System DPIにのみ対応させていたのだが、これからリリースするソフトについては、Windows10 Creators Update以降用にPer-Monitor DPI対応を行っていく事になる筈だ。

まあ、その恩恵を受けるのは、デュアルモニター構成で各モニターのスケーリングを変えている人に限られるのだが、少なくとも作者のMacBook Pro 15インチ2016モデルの場合、内蔵モニターを100%のスケーリングで見るのは小さすぎるし、作者の外付けモニターは24インチのフルHDタイプなので、スケーリングは100%にするのが基本だ。

なので、今年の4月にMacBook Pro 15インチ 2016モデルを購入した作者的には、マトモなPer-Monitor DPI対応が行われているソフトが欲しくなる訳なのだが、Surfaceなんかでも、内蔵モニターはサイズが小さい割には解像度が高いので、作者と同じような境遇に陥っている人は、それなりに多くなってきている筈ではある。

« 次はWin版Mirror-DTC | トップページ | 今日は少し苦労した »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/65951096

この記事へのトラックバック一覧です: Per-Monitor DPI対応は完了:

« 次はWin版Mirror-DTC | トップページ | 今日は少し苦労した »

2018年1月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google