displayhardware: fix not obeying ro.sf.lcd_density when specified

Change-Id: I71efd6aebfdb0323b07327f5e448a5cb5eb0fad6
Signed-off-by: Dima Zavin <dima@android.com>
This commit is contained in:
Dima Zavin 2012-03-21 23:37:46 -07:00 committed by The Android Automerger
parent f30fe1e818
commit 297abcadcb

View File

@ -245,27 +245,33 @@ void DisplayHardware::init(uint32_t dpy)
mFlags |= BUFFER_PRESERVED; mFlags |= BUFFER_PRESERVED;
} }
} }
/* use the xdpi as our density baseline */
mDensity = mDpiX;
/* Read density from build-specific ro.sf.lcd_density property /* Read density from build-specific ro.sf.lcd_density property
* except if it is overridden by qemu.sf.lcd_density. * except if it is overridden by qemu.sf.lcd_density.
*/ */
if (property_get("qemu.sf.lcd_density", property, NULL) <= 0) { if (property_get("qemu.sf.lcd_density", property, NULL) <= 0) {
if (property_get("ro.sf.lcd_density", property, NULL) <= 0) { if (property_get("ro.sf.lcd_density", property, NULL) <= 0) {
if (mDpiX && mDpiY) { if (mDpiX && mDpiY) {
ALOGI("Using density info from display: xdpi=%d ydpi=%d\n", ALOGI("Using density info from display: xdpi=%.1f ydpi=%.1f\n",
mDpiX, mDpiY); mDpiX, mDpiY);
} else { } else {
ALOGW("No display dpi and ro.sf.lcd_density not defined, using 160 dpi by default."); ALOGW("No display dpi and ro.sf.lcd_density not defined, using 160 dpi by default.");
mDpiX = mDpiY = 160; mDpiX = mDpiY = mDensity = 160;
} }
} else {
/* force density to what the build requested */
mDensity = atoi(property);
} }
} else { } else {
/* for the emulator case, reset the dpi values too */ /* for the emulator case, reset the dpi values too */
mDpiX = mDpiY = atoi(property); mDpiX = mDpiY = mDensity = atoi(property);
} }
/* use the xdpi as our density baseline */ /* set the actual density scale */
mDensity = mDpiX * (1.0f / 160.0f); mDensity *= (1.0f / 160.0f);
/* /*
* Create our OpenGL ES context * Create our OpenGL ES context