読者です 読者をやめる 読者になる 読者になる

モノトーンの伝説日記

OBS Studio と Blackmagic Design が大好き。

高解像度厨が Windows 8.1 のスケーリングについてのお話を書いてみる。(1)

 おはようございます、モノトーンです。

 Windows 8.1 を常用していますが、プチフリ以外は特に問題なく使えている現状であります。色々とお話したいと思います。

概要

  1. Windows 8.1 でのスケーリング
  2. DPI を設計するときの参考値

1. Windows 8.1 でのスケーリング

1.1. 従来通りの “System Dpi”

 1 つの指標として System Dpi というものがあります。その名の通り、XP 時代からあるやつです。XP、Vista はリブート、7 以後はログアウトで反映できます (もちろん Windows 8.1 も一部反映するのにログアウトが必要)。

 こちらは、Windows 8 から本格的に使われている印象です。ただ、Surface Pro とか 125 % スケーリングとかになっていると思います? (たぶん) これは、従来の Windows は最低解像度として 1024x768 (XGA) を採用しているからです。Surface Pro のスケーリング 150% の論理解像度は 1280x720 になるため、これだと表示しきれないウィンドウが出てきてしまいます。したがって、スケーリングを 125% にすることで、1536x864 となり、これで仕様を満たすことができます。

 Windows 8.1 から変わります1024x720 が最低解像度となります。スーパーバーデフォルト height は 40 px なので、1024x680 に収まるようにウィンドウを設計してください。はい、これは従来の 16:9 デバイスの不便さを解消するためのものです。まあ、作業エリア糞狭くなるんですけど、苦肉の策でしょうねぇ…

1.2. Windows 8.1 から追加された “Monitor Dpi”

 その名の通り、モニターごとの Dpi 値です。ここら辺の検証はまだ浅いので、後日プログラミング面からのアプローチはさせていただく予定です。

 実験的に Windows 8.1 とテレビをつないで検証してみました。http://twitpic.com/d084cv

 このようにモニターごとにウィンドウサイズが変わります。これに関して次のシナリオを考えてみます:

⑴ 内臓 (Primary) 100%、外部 (Secondary) 200% の場合

 つまり、System Dpi = 100%、Primary Monitor Dpi = 100%、Secondary Monitor Dpi = 200% です。このとき、

① DPI を知らないアプリケーションでは、100% で表示します。200% 側に移動するとシステムが無理やりスケーリングします。

② System DPI のみを知っているアプリケーションでは、100% で表示します。200% 側に移動するとシステムが無理やりスケーリングします。

③ Monitor DPI をも知っているアプリケーションでは、アプリケーションが制御します。

逆に…

⑵ 内臓 (Primary) 200%、外部 (Secondary) 100% の場合

System Dpi = 200%、Primary Monitor Dpi = 200%、Secondary Monitor Dpi = 100% です。このとき、

① DPI を知らないアプリケーションでは、100% で表示します。200% 側ではスケーリングされます。

② System DPI のみを知っているアプリケーションでは、200% で表示します。100% 側に移動するとシステムが無理やりスケーリング (縮小) します。

③ Monitor DPI をも知っているアプリケーションでは、アプリケーションが制御します。

 ということで、\Monitor DPI 対応しよう/

2. DPI を設計するときの参考値

 Windows 8.1 から次の値がシステムデフォルトになる予定です。

 

サイズ解像度パネル PPIOS DPIスケーリング値
10.6" FHD (1920x1080) 208 144 150%
10.6" FWXGA (1366x768) 148 96 100%
11.6" WUXGA (1920x1200) 195 144 150%
11.6" FWXGA 135 96 100%
13.3" WUXGA 170 144 150%
13.3" WQHD (2560x1440) 221 192 200%
13.3" FWXGA 118 96 100%
15.4" FHD 143 120 125%
15.6" WQHD+ (3200x1800) 235 192 200%
17.0" FHD 130 120 125%
23.0" QFHD (3840x2160) 192 192 200%
24.0" WQHD 122 120 125%

 この表から見て取れること、それは「100%」「125%」「150%」「200%」しかないことです。Web ページ制作するときも、これだけの画像を用意すればいいです… (俺 175 % 用意してたんだよぉ… (´・ω・`))

総括

 Windows 8.1 からモニターごとに DPI が扱えるようになって、内臓ディスプレイの高解像度化がさらに進みそうです。native での実装はたぶんフリーだと対応しないんでしょうね… ね… (俺はフリーでも対応するけどな…)

 WPF はどうなるんですかね、やっぱりきっちり対応されるんでしょうねw

 では! 次回は API について。

こちらの記事もご覧ください