sdlGetDisplayDpi function

int sdlGetDisplayDpi(
  1. int displayIndex,
  2. Pointer<Float> ddpi,
  3. Pointer<Float> hdpi,
  4. Pointer<Float> vdpi,
)

Get the dots/pixels-per-inch for a display.

Diagonal, horizontal and vertical DPI can all be optionally returned if the appropriate parameter is non-NULL.

A failure of this function usually means that either no DPI information is available or the displayIndex is out of range.

WARNING: This reports the DPI that the hardware reports, and it is not always reliable! It is almost always better to use SDL_GetWindowSize() to find the window size, which might be in logical points instead of pixels, and then SDL_GL_GetDrawableSize(), SDL_Vulkan_GetDrawableSize(), SDL_Metal_GetDrawableSize(), or SDL_GetRendererOutputSize(), and compare the two values to get an actual scaling value between the two. We will be rethinking how high-dpi details should be managed in SDL3 to make things more consistent, reliable, and clear.

\param displayIndex the index of the display from which DPI information should be queried \param ddpi a pointer filled in with the diagonal DPI of the display; may be NULL \param hdpi a pointer filled in with the horizontal DPI of the display; may be NULL \param vdpi a pointer filled in with the vertical DPI of the display; may be NULL \returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.

\since This function is available since SDL 2.0.4.

\sa SDL_GetNumVideoDisplays

extern DECLSPEC int SDLCALL SDL_GetDisplayDPI(int displayIndex, float * ddpi, float * hdpi, float * vdpi)

Implementation

int sdlGetDisplayDpi(int displayIndex, Pointer<Float> ddpi, Pointer<Float> hdpi,
    Pointer<Float> vdpi) {
  final sdlGetDisplayDpiLookupFunction = libSdl2.lookupFunction<
      Int32 Function(Int32 displayIndex, Pointer<Float> ddpi,
          Pointer<Float> hdpi, Pointer<Float> vdpi),
      int Function(int displayIndex, Pointer<Float> ddpi, Pointer<Float> hdpi,
          Pointer<Float> vdpi)>('SDL_GetDisplayDPI');
  return sdlGetDisplayDpiLookupFunction(displayIndex, ddpi, hdpi, vdpi);
}