surfaceflinger: use display dpi if not forced with ro.sf.lcd_nensity
Change-Id: I52c4b872e0f2c088c2a6ada7a5bb15db071f0002
Signed-off-by: Dima Zavin <dima@android.com>
diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp b/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp
index 9baae80..3a0ff71 100644
--- a/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp
+++ b/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp
@@ -251,15 +251,21 @@
*/
if (property_get("qemu.sf.lcd_density", property, NULL) <= 0) {
if (property_get("ro.sf.lcd_density", property, NULL) <= 0) {
- ALOGW("ro.sf.lcd_density not defined, using 160 dpi by default.");
- strcpy(property, "160");
+ if (mDpiX && mDpiY) {
+ ALOGI("Using density info from display: xdpi=%d ydpi=%d\n",
+ mDpiX, mDpiY);
+ } else {
+ ALOGW("No display dpi and ro.sf.lcd_density not defined, using 160 dpi by default.");
+ mDpiX = mDpiY = 160;
+ }
}
} else {
/* for the emulator case, reset the dpi values too */
mDpiX = mDpiY = atoi(property);
}
- mDensity = atoi(property) * (1.0f/160.0f);
+ /* use the xdpi as our density baseline */
+ mDensity = mDpiX * (1.0f / 160.0f);
/*
* Create our OpenGL ES context