diff options
author | Jesse Hall <jessehall@google.com> | 2014-10-02 00:57:47 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-10-02 00:57:47 +0000 |
commit | 17290d483b986a9838aeeb85386c14681d0d5c44 (patch) | |
tree | f7ee98d3537f61412de89c0a0994335ba6d55df4 /services/surfaceflinger | |
parent | 7f8ecd6dba1637f035be88e426b8c617b803c98b (diff) | |
parent | bacc28ef1df329f4dc21bae44b09a6c5018af908 (diff) | |
download | frameworks_native-17290d483b986a9838aeeb85386c14681d0d5c44.zip frameworks_native-17290d483b986a9838aeeb85386c14681d0d5c44.tar.gz frameworks_native-17290d483b986a9838aeeb85386c14681d0d5c44.tar.bz2 |
am bacc28ef: surfaceflinger: Use landscape resolution for default dpi
* commit 'bacc28ef1df329f4dc21bae44b09a6c5018af908':
surfaceflinger: Use landscape resolution for default dpi
Diffstat (limited to 'services/surfaceflinger')
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp index 6302053..edfed49 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp +++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp @@ -314,9 +314,17 @@ void HWComposer::hotplug(int disp, int connected) { mEventHandler.onHotplugReceived(disp, bool(connected)); } -static float getDefaultDensity(uint32_t height) { - if (height >= 1080) return ACONFIGURATION_DENSITY_XHIGH; - else return ACONFIGURATION_DENSITY_TV; +static float getDefaultDensity(uint32_t width, uint32_t height) { + // Default density is based on TVs: 1080p displays get XHIGH density, + // lower-resolution displays get TV density. Maybe eventually we'll need + // to update it for 4K displays, though hopefully those just report + // accurate DPI information to begin with. This is also used for virtual + // displays and even primary displays with older hwcomposers, so be + // careful about orientation. + + uint32_t h = width < height ? width : height; + if (h >= 1080) return ACONFIGURATION_DENSITY_XHIGH; + else return ACONFIGURATION_DENSITY_TV; } static const uint32_t DISPLAY_ATTRIBUTES[] = { @@ -383,7 +391,7 @@ status_t HWComposer::queryDisplayProperties(int disp) { } if (config.xdpi == 0.0f || config.ydpi == 0.0f) { - float dpi = getDefaultDensity(config.height); + float dpi = getDefaultDensity(config.width, config.height); config.xdpi = dpi; config.ydpi = dpi; } @@ -408,7 +416,7 @@ status_t HWComposer::setVirtualDisplayProperties(int32_t id, DisplayConfig& config = mDisplayData[id].configs.editItemAt(configId); config.width = w; config.height = h; - config.xdpi = config.ydpi = getDefaultDensity(h); + config.xdpi = config.ydpi = getDefaultDensity(w, h); return NO_ERROR; } |