Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0cb151f authored by Hashcode's avatar Hashcode Committed by Steve Kondik
Browse files

surfaceflinger: odd hw rotation (90/270) patch for swapping width/height

This patch works in addition to the following commit
re-implementing ro.sf.hwrotation:
https://github.com/CyanogenMod/android_frameworks_native/commit/7d283431efffc4402cb1a6cacf5da64729c883bb

When using values of 90 and 270 for ro.sf.hwrotation the
LCD width and height also need to be swapped to display properly.

Change-Id: I2874fdb8f8d8b855df6d62d338c9a22360491973
NOTE: This patch does not fix the initial startup of bootanimation
parent af3ae11e
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -601,10 +601,21 @@ status_t SurfaceFlinger::getDisplayConfigs(const sp<IBinder>& display,
            info.orientation = 0;
        }

        char value[PROPERTY_VALUE_MAX];
        property_get("ro.sf.hwrotation", value, "0");
        int additionalRot = atoi(value) / 90;
        if ((type == DisplayDevice::DISPLAY_PRIMARY) && (additionalRot & DisplayState::eOrientationSwapMask)) {
            info.h = hwConfig->getWidth();
            info.w = hwConfig->getHeight();
            info.xdpi = ydpi;
            info.ydpi = xdpi;
        }
        else {
            info.w = hwConfig->getWidth();
            info.h = hwConfig->getHeight();
            info.xdpi = xdpi;
            info.ydpi = ydpi;
        }
        info.fps = 1e9 / hwConfig->getVsyncPeriod();
        info.appVsyncOffset = VSYNC_EVENT_PHASE_OFFSET_NS;