Fix performance regression
authorCraig Robbins <kde.psych@gmail.com>
Thu, 5 Feb 2015 07:22:10 +0000 (17:22 +1000)
committerCraig Robbins <kde.psych@gmail.com>
Thu, 5 Feb 2015 07:34:10 +0000 (17:34 +1000)
src/porting.cpp

index e99d084261804964bb5c967257c7c77bfd7cb155..8a685539b20d13cbaee599d3b01706a905ee3c85 100644 (file)
@@ -647,7 +647,8 @@ const char *getVideoDriverFriendlyName(irr::video::E_DRIVER_TYPE type)
 
 #ifndef __ANDROID__
 #ifdef XORG_USED
-float getDisplayDensity()
+
+static float calcDisplayDensity()
 {
        const char* current_display = getenv("DISPLAY");
 
@@ -665,7 +666,7 @@ float getDisplayDensity()
 
                                XCloseDisplay(x11display);
 
-                               return (std::max(dpi_height,dpi_width) / 96.0);
+                               return std::max(dpi_height,dpi_width) / 96.0;
                        }
                }
 
@@ -673,6 +674,14 @@ float getDisplayDensity()
        return g_settings->getFloat("screen_dpi")/96.0;
 }
 
+
+float getDisplayDensity()
+{
+       static float cached_display_density = calcDisplayDensity();
+       return cached_display_density;
+}
+
+
 #else
 float getDisplayDensity()
 {