From 3abd0933604edd2bfdff84fd401d90aab56d6e01 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Wed, 17 Jan 2024 07:22:11 -0500 Subject: [PATCH] ecore_drm2: Add API to return Display DPI --- src/lib/ecore_drm2/Ecore_Drm2.h | 1 + src/lib/ecore_drm2/ecore_drm2_displays.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h index eea8d0ae55..0261484989 100644 --- a/src/lib/ecore_drm2/Ecore_Drm2.h +++ b/src/lib/ecore_drm2/Ecore_Drm2.h @@ -110,6 +110,7 @@ EAPI Eina_Bool ecore_drm2_display_possible_crtc_get(Ecore_Drm2_Display *disp, Ec EAPI int ecore_drm2_display_supported_rotations_get(Ecore_Drm2_Display *disp); EAPI void ecore_drm2_display_relative_mode_set(Ecore_Drm2_Display *disp, Ecore_Drm2_Relative_Mode mode); EAPI void ecore_drm2_display_relative_to_set(Ecore_Drm2_Display *disp, const char *relative); +EAPI void ecore_drm2_display_dpi_get(Ecore_Drm2_Display *disp, int *xdpi, int *ydpi); # endif diff --git a/src/lib/ecore_drm2/ecore_drm2_displays.c b/src/lib/ecore_drm2/ecore_drm2_displays.c index 7d420e4f58..2809a2368e 100644 --- a/src/lib/ecore_drm2/ecore_drm2_displays.c +++ b/src/lib/ecore_drm2/ecore_drm2_displays.c @@ -950,3 +950,16 @@ ecore_drm2_display_relative_to_set(Ecore_Drm2_Display *disp, const char *relativ EINA_SAFETY_ON_NULL_RETURN(disp); eina_stringshare_replace(&disp->relative.to, relative); } + +EAPI void +ecore_drm2_display_dpi_get(Ecore_Drm2_Display *disp, int *xdpi, int *ydpi) +{ + EINA_SAFETY_ON_NULL_RETURN(disp); + EINA_SAFETY_ON_TRUE_RETURN(!disp->state.current->enabled); + + if (xdpi) + *xdpi = ((25.4 * (disp->state.current->mode->width)) / disp->pw); + + if (ydpi) + *ydpi = ((25.4 * (disp->state.current->mode->height)) / disp->ph); +}