4大(?)ブラウザーの High DPI 対応

執筆日時:

Windows 8.1 では“Per-Monitor DPI”がサポートされる。これはモニターごとに異なる DPI を設定したマルチモニター環境で、アプリがモニターの DPI 設定を認識し、自動でスケーリングするという機能だ。――まぁ、WM_DPICHANGED(0x02E0)メッセージが飛んでくるだけなので、アプリ側の対応が必須なのだけど。

Besides bugfixes, the highlight of things of this Opera 17 Next release:

  • More settings and preferences, like startup handling options, manage search engines,
  • Pinned tabs,
  • DPI aware on Windows,
  • Enhanced extensions APIs and possibility to hide extensions buttons.
Opera Desktop Team - Opera 17 Next

「Opera 17 Next」(Opera、「Opera 17」のベータ版「Opera 17 Next」を公開 - 窓の杜)ではなんと“DPI aware on Windows”なのだそうで、これが“Per-Monitor DPI”なのかなぁ、と期待していたのだけど。

f:id:daruyanagi:20130910075911p:plain

ちゃんとスケーリングせえへん。ただ拡大しているだけなので、表示がぼやけてる。

f:id:daruyanagi:20130910074524p:plain

実はこれ“試験運用機能”として提供されていて、opera://flags で有効にして Opera を再起動しなきゃいけない。

f:id:daruyanagi:20130910075704p:plain

とりあえず、できた。クッキリカッチリ、美しいレンダリングだ。

でもこれ、実は――

f:id:daruyanagi:20130910074627p:plain

“System Aware”! これは単に「システムの DPI 設定をアプリに反映させますよ」というだけのもので、モニターごとの DPI 設定を検知する“Per-Monitor Aware”ではない。とても残念だ。

ちなみに、4大(?)ブラウザーの対応状況を調べてみたところ、以下の通りになった。ちなみに、Windows Sysinternals、高機能タスクマネージャー「Process Explorer」v15.4を公開 - 窓の杜 を使うと簡単に調べられる(要 Windows 8.1)。

初期状態 拡張設定
Internet Explorer 11 Per-Monitor Aware -
Google Chrome 29 Unaware Unaware(項目はあるが動作しない)
Mozilla Firefox 23 System Aware -
Opera 17 Unaware System Aware

ブラウザーによって Stable だったり Beta だったりが不公平だけど、そこは勘弁して。とりあえずシステムにインストールされていたブラウザーで試しただけで……全部統一するのは面倒臭かったのデス。

それにしても、Google Chrome の未対応はとくに残念。Flag はあるのだけど、自分の環境では動作しなかった。Surface Pro の DPI 設定は初期状態で 150% なので、最近アプリの High DPI 対応に敏感になっているのだよね。非対応アプリだと表示がボヤけてあかん。クロスプラットフォームなアプリはここらへんの対応が全体的に弱い印象。Windows Forms? 知らない子ですね……。