int SDL_GetDisplayDPI(int displayIndex, float* ddpi, float* hdpi, float* vdpi)
displayIndex | DPI情報を求めるディスプレイの番号 |
ddpi | 斜め方向のDPIを代入するポインタ. NULLも可 |
hdpi | 水平方向ののDPIを代入するポインタ. NULLも可 |
vdpi | 垂直方向ののDPIを代入するポインタ. NULLも可 |
成功のとき0, 失敗のとき-1を戻す. SDL_GetError()を呼んで詳細を知ることができる.
斜め, 水平, 垂直DPIは, それぞれ引数をNULLにしないことで求める情報を選択できる.
一般的にこの関数が失敗するのは, DPI情報がないか, displayIndexが範囲外のときである.
注意: このDPIはハードウェアが報告したものである. そして常に信用できるものではない! ほとんどの場合, SDL_GetWindowSize()を使うと物理ピクセル数ではなく論理ピクセル数のウィンドウのサイズが得られ, その後SDL_GL_GetDrawableSize(), SDL_Vulkan_GetDrawableSize(), SDL_Metal_GetDrawableSize(), SDL_GetRendererOutputSize()を使い, 2つの値を比較して実際の拡大率を求める方がよい. SDL3では高DPIについてより一貫性, 信頼性があり明確なものになるように検討している.