スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 今週末には何とか | トップページ | 使い込み中 »

積極的なRetina対応

今は、macOS用ネイティブ版AGMPlayerの開発フェーズで、Windows版のストリーム録画機能を除いた機能は、一応、実装できている。なので、このレベルで一旦リリースする事にして仕上げ作業中なのだが、今回は積極的なRetina対応もしている。

何度か書いた様に、Windowsの場合、HiDPI対応というのは、イマイチ、良く判らない。これは何故なのか、というと、WindowsでのHiDPI対応というのは、基本的には、Windowsの標準DPIは96DPIなので、より高いDPIが選択された場合には、DPI増加分に見合った分だけ、表示サイズを大きくする、という事でしかないからだ。

つまり、アプリ開発者的には、具体的に何をすれば良いかが判らない訳なのだが、更に言えば、Windowsの場合、何も考慮しないと、HiDPI対応として必要になる対応の多くは、OS側が勝手に行ってしまう。

しかし、その対応の多くは不完全なので、完全を目指すのであれば、アプリケーション側がその対応をやめさせ、自前で何とかする必要がある、という状況になっているので、何だか、良く判らない訳だ。

と、言う事で、Windows環境でのHiDPI対応というのは、本来なら、非常に単純明快な筈なのだが、アプリが積極的に対応しない場合、OSが自動で中途半端な対応をしてしまう分、厄介になっている。

これに対して、macOS環境でのHiDPI対応というのは、基本的には、より単純なのだが、Windowsのソレと比べても、OSの自動対応がより進んでいる分、更に厄介になっている、と、言えなくもないかもしれない。

具体的には、macOS環境でのDPIは、Windows環境のソレとは異なり、ソフト的には2種類しかない。なので、DPI変化に対する対応はより単純になるのだが、アプリ側がどういう対応をすれば良いのか、という点については、Windows環境よりも判りづらいかもしれない。

何故なら、普通のアプリの場合、アプリ側が何も意識しなくても、非Retinaディスプレイに接続されていても、Retinaディスプレイに接続されていても、普通に表示されるアプリが構築されるからだ。

と、言う事で、macOSのアプリの場合、macOSが良きに計らってくれるので、別段、Retina対応を行わなくても、普通に使えるアプリを構築できるのだが、特別な対応を行わないと、実質的に、画像表示なんかは拡大表示になる場合がある。

例えば、元々、フルHDの画像をメモリ上に持っていて、それをWindowに表示しようとした場合、Windowsの自動処理では、一旦、96DPIで描画された後、本来のDPIにされるので、確実に拡大表示される事になるので画像はボヤける。

これに対して、macOSの場合には、API単位で自動処理が行われるので、Retinaディスプレイに接続されている場合には、メモリ上の画像はRetinaディスプレイの解像度に合わせて縮小表示される格好になるので、非Retinaディスプレイに接続されている場合よりも、高精細に表示される事になるのが普通だ。

しかし、アプリがWindowのサイズを認識し、そのサイズに合わせてレンダリングした画像をWindowに表示する場合には、Retinaディスプレイに接続されていても、OSからは非Retinaディスプレイに接続されている場合と同じWindowサイズが報告されるので、そもそものレンダリング画像の解像度が非Retina相当になる。

つまり、この様な場合には、Retinaディスプレイに接続された場合、Windowに表示される画像は拡大表示される格好になるので、ボヤける事になる訳だ。

と、言う事で、AGMPlayerのライブラリビューやプレイビューのコントロールパネルは、上記の様に、その領域サイズに合わせて画像をレンダリングして表示しているので、より積極的な対応を行わないと、Retinaディスプレイに接続されている環境では、相対的にピンボケな感じの表示が行われてしまう。

なので、今回、Retinaディスプレイに接続されている場合には、その解像度を使いきれる様に、対横ともに2倍、つまり、4倍のピクセルを使ってレンダリングする格好にしている。

現行のJava版では、そんな事はしていないので、近日中にリリースされるネイティブ版は、Retinaディスプレイでは、Java版よりも、より綺麗に表示される事になる筈だ。

ちなみに、上記では、Retinaディスプレイと書いているのだが、実際には、モニターの解像度がHiDPIモードに設定された場合には、同様の処理が行われる。

つまり、作者のメイン環境の様に、Mac mini等に普通のフルHDモニターを外付けしている様な環境でも、そのモニターの解像度をTiExtender等を使ってHiDPI解像度に切り替えれば、綺麗に表示される様になる訳だ。

« 今週末には何とか | トップページ | 使い込み中 »

トラックバック

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

この記事へのトラックバック一覧です: 積極的なRetina対応:

« 今週末には何とか | トップページ | 使い込み中 »

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