スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 構造体のサイズも変わる | トップページ | 来週末の完成を目指す »

ダイアログが多いので

今は、AmuseGraphics本体のバージョンアップ開発を行っていて、まず、文字セットをUnicodeに変更したのだが、今日は、HiDPI対応をやっていた。しかし、ダイアログが多いので、まだ少し作業が残っている。ここの所やってきているHiDPI対応の中では一番大変かもしれない。

かなり前に書いた様に、作者的には、HiDPI対応はMasterReversiにも行おうと考えている。

で、MasterReversiというのは、作者製ソフトの中では、最もダイアログ数が多いかもしれないし、特殊な描画方法を使っていたり、画面キャプチャーだとか仮想マウスキー入力なんかも行っている。

なので、HiDPI対応に関しては、Mirror-DTCサーバー並の対応も必要になる訳なので、多分、作者製ソフトの中では、HiDPI対応するのが最も大変なソフトになる筈だ。

もっとも、AmuseGraphicsについても、ダイアログ数は少なくは無いし、画面キャプチャーも行っている。

と、いう事なので、HiDPI対応はそれなりに大変なのだが、AmuseGraphicsというのはMFCアプリになるので、単なるダイアログについては、作者が何もしなくても、MFCが勝手にHiDPI対応してくれる。

にも関わらず、大変だ、と、書いているのは、AmuseGraphicsのダイアログには、普通のダイアログ部品以外に、BitBltを使って自前で画像を表示しているモノが結構あるからだ。

つまり、自前で画像を表示しているダイアログについても、ウインドウサイズだとか標準部品の大きさや表示位置はMFCが勝手にHiDPI対応してくれるのだが、自前で描画している画像については、何の対応もしてくれない訳だ。

このため、今日は、自前で画像表示しているダイアログについて、自分で、画像表示のHiDPI対応を行っていったのだが、少し変な感じだ。

何が変なのか、というと、MFCのHiDPI対応というのが、例えば、システム表示を1.25倍にすれば、1.25倍にしてくれるモノだとばかり思っていたのだが、微妙に拡大率が違った訳だ。更に言うと、縦方向と横方向の拡大率も微妙に違う。

なので、最初、作者的には、システムDPIに従って、自前で表示している画像のサイズや表示位置を調整していたのだが、ダイアログ上での表示位置が少し変になった。

このため、最終的には、標準の96DPI時のウインドウサイズに対して、現状のウインドウサイズの横幅が、何倍になっているか、というのを基準値として、画像のサイズと表示位置を調整する格好にした。

その結果、横方向については、問題は無くなったのだが、縦方向については、少し余白が残る感じになっている。

しかしまあ、気にしなければ気にならない程度ではあるので、これで良しとしたのだが、HiDPI対応については、数日前に、PC Watchにこんな記事が載っていた。

つまり、Windows環境のHiDPI対応については、マイクロソフト的には、デスクトップアプリを収束の方向に持っていきたい感じもあるので、あまり期待しない方が良いかもしれない訳だ。

もっとも、作者の現在の開発環境は、Mac mini Late2014にBootCampでインストールしたWindows8.1で、モニターとしては、24インチのフルHDモニターを接続している。

で、24インチのフルHDモニターなら、画面の解像度は1920x1080が推奨になり、スケーリングは必要ないのだが、現在は、敢えて、125%表示にしてある。

これは、HiDPI対応のデバッグのため、という事もあるのだが、その方が、文字フォントが少し綺麗になるし、表示も大きくなるので、目が楽だからだ。

と、いう事なので、作者的には、少なくとも、自前のソフトは全てHiDPI対応しようとしている訳なのだが、MasterReversiのHiDPI対応は大変かもしれない。

= この記事に関連する公開中ソフト =

AmuseGraphics

AmuseGraphics

(2016/05/04追加)

« 構造体のサイズも変わる | トップページ | 来週末の完成を目指す »

トラックバック

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

この記事へのトラックバック一覧です: ダイアログが多いので:

« 構造体のサイズも変わる | トップページ | 来週末の完成を目指す »

2017年8月
    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