目次 - API(機能別) - ヒント - SDL_HINT_WINDOWS_DPI_AWARENESS

SDL_HINT_WINDOWS_DPI_AWARENESS

SDLがプロセスのDPI認識を設定するか否かを設定するヒント

""DPI認識を変更しない (デフォルト)
"unaware"プロセスを高DPI非対応(Unaware)に設定する (Windows 8.1以降)
"system"システムDPI(System Aware)に設定する (Vista以降)
"permonitor"ディスプレイごとのDPI(Per-Monitor Aware)に設定する (Windows 8.1以降)
"permonitorv2"ディスプレイごとのDPI V2(Per-Monitor V2 Aware)に設定する (Windows 10 バージョン1607以降). "permonitor"との最も大きな見た目の違いは, 拡大率の異なるディスプレイの間にドラッグしたとき, ウィンドウタイトルバーが正しいサイズに拡大縮小される点である. これが推奨されるDPI認識である

詳細

このヒントはビデオサブシステムを初期化する前に設定する必要がある.

DPI認識(DPI awareness)を設定する主な目的は, 高DPIモニタのSDLウィンドウがOSによってビットマップ拡大縮小されないようにすることにある.

このヒントは外的な方法でDPI認識を設定する(例: SetProcessDpiAwarenessContextを呼ぶ)ことと同じで, SDLに仮想化した座標系を使わせることはない. そのため, 高DPIディスプレイでも1SDL座標は1ピクセルとなる.

詳細はhttps://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windowsを参照すること.

設定しようとしたDPI認識が実行中のOSで有効でない場合, SDLは有効で最も近いものに設定する.

SDL Wikiへのリンク

SDL_HINT_WINDOWS_DPI_AWARENESS - SDL Wiki