モノトーンの伝説日記

Apex Legends, Splatoon, Programming, and so on...

高解像度厨が 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 について。

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