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

Commit 4ab1691d authored by Hashcode's avatar Hashcode Committed by Ricardo Cerqueira
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.

NOTE: This patch does not fix the initial startup of bootanimation

Change-Id: Iab9de66348967a378dd73a41bc96d632f750386c
Signed-off-by: default avatarHashcode <hashcode0f@gmail.com>
parent beb3f603
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
@@ -715,10 +715,21 @@ status_t SurfaceFlinger::getDisplayInfo(const sp<IBinder>& display, DisplayInfo*
        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 = hwc.getWidth(type);
        info->w = hwc.getHeight(type);
        info->xdpi = ydpi;
        info->ydpi = xdpi;
    }
    else {
        info->w = hwc.getWidth(type);
        info->h = hwc.getHeight(type);
        info->xdpi = xdpi;
        info->ydpi = ydpi;
    }
    info->fps = float(1e9 / hwc.getRefreshPeriod(type));

    // All non-virtual displays are currently considered secure.