From 4b63df35baa5d3c9337724682e35508a06555885 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 14 Nov 2015 03:18:00 +0100 Subject: [PATCH] (Android) Should cache DPI once and then just return the value without doing costly popen calls every time --- gfx/drivers_context/androidegl_ctx.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gfx/drivers_context/androidegl_ctx.c b/gfx/drivers_context/androidegl_ctx.c index ba705aea97..206d62227b 100644 --- a/gfx/drivers_context/androidegl_ctx.c +++ b/gfx/drivers_context/androidegl_ctx.c @@ -438,9 +438,8 @@ static void dpi_get_density(char *s, size_t len) static bool android_gfx_ctx_get_metrics(void *data, enum display_metric_types type, float *value) { - int dpi; + static int dpi = -1; char density[PROP_VALUE_MAX] = {0}; - dpi_get_density(density, sizeof(density)); switch (type) { @@ -449,9 +448,13 @@ static bool android_gfx_ctx_get_metrics(void *data, case DISPLAY_METRIC_MM_HEIGHT: return false; case DISPLAY_METRIC_DPI: - if (density[0] == '\0') - return false; - dpi = atoi(density); + if (dpi == -1) + { + dpi_get_density(density, sizeof(density)); + if (density[0] == '\0') + return false; + dpi = atoi(density); + } *value = (float)dpi; break; case DISPLAY_METRIC_NONE: