今は、Windows用AmuseGraphicsの開発フェーズなのだが、他ソフトの不具合対応も必要なので、中々、先に進まない。DPI対応化は至って困難だからだ。DPI対応である旨を記述しておくと、ダイアログなんかは、メインモニター側のDPIに合わせて描画され、異なるDPIのサブモニターがある場合に、そのモニターにウインドウを移動しても、DPIの違いに合わせた拡大/縮小を自動的に行ってくれるのだが、Per-Monitor対応である旨を記述してしまうと、このDPIの違いに合わせた拡大/縮小が行われない訳だ。DPI対応にしたければ、ダイアログのサイズばかりか、フォントなんかのサイズも変更が必要だし、コンボボックスだとかボタンのイメージ画像についてさえ、自前で変更する必要が出てくる。DPI対応が行えたのは、Windowsが提供しているGUI部品なんかを全く使わず、自前ですべてのGUIを描画していたソフトなんかに限られた訳だ。DPI対応である旨の記述をマニフェストを書いておけば、ダイアログなんかのサイズ変更はWindowsが行うように変更された。Ver1.3.1については、Per-Monitor対応にしてみている訳だ。DPI対応である旨の記述を行っておくと、ダイアログなんかの描画は自動的にモニターのDPIに最適化されるのだが、ダイアログにピクセル座標を使って自前で描画している内容については、自分で何とかする必要がある。Mirror-DTCの場合、バージョン情報ダイアログのリンク先表示なんかがこれに当たるのだが、その他にも、GetSystemMetricsなんかで得られるGUI関連のサイズについては、Per-Monitor対応されないので、そういう値を参照している場合にも、対応が必要だ。DPI対応するにあたっては、GetSystemMetricsで得られる値を表示するモニターのDPIに合わせて修正する必要があった。普通のソフトの場合、上記の様なことだけを気にしていればよいのだが、Mirror-DTCサーバーの場合、キャプチャー系の処理が必要になるので、より一層、注意しなければならない処理が増える。具体的には、モニター毎にDPIが異なる場合、マウスカーソルのサイズについても、モニター毎に変化するのだが、OSにカーソル画像を描画させると、システムモニターでの表示サイズで描画される。今回、Mirror-DTCサーバーでは、上記のマウスカーソル画像をモニターのDPIに合わせて拡大/縮小する自前ルーチンも追加する必要にせまられた訳だ。Updateで、やっと、実現可能な感じにはなったのだが、まだまだ、実際に対応を行うとなると、色々と小細工は必要になるかもしれない。ちなみに、色々な環境でHiDPI絡みのテストを行っていた所、現行のVer1.3.0サーバーについては、Windows7環境では、HiDPIに未対応として扱われる事が判った。DPI対応と記述されている筈なので、少なくとも画面キャプチャー系でWindowsに座標変換されてキャプチャーが正しく行えなくなる問題は回避できているつもりだったのだが、そうではなかった訳だ。2013では、Windows7に配慮する記述が出力されていなかった訳だ。2015では、HiDPI対応について設定は変更していないのだが、Windows7に配慮した記述が出力される様になっている。DPI対応として、問題なく動作する様になる筈だ。Adsense)サービスを利用しています。使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。パートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。