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

Commit 751ff5fe authored by Ramkumar Radhakrishnan's avatar Ramkumar Radhakrishnan Committed by kaiyiz
Browse files

framework/base: Create surface based on the panel orientation.

  - Create Surface for boot animation based on panel orientation
  - Set the display projection values based on panel orientation.

Change-Id: Iaf66ac13cc44cf7910ff150b3a104eb52bcefdbf
CRs-Fixed: 784522
parent 1fff63c2
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -331,6 +331,18 @@ status_t BootAnimation::readyToRun() {
    status_t status = SurfaceComposerClient::getDisplayInfo(dtoken, &dinfo);
    if (status)
        return -1;
    char value[PROPERTY_VALUE_MAX];
    property_get("persist.panel.orientation", value, "0");
    int orient = atoi(value) / 90;

    if(orient == eOrientation90 || orient == eOrientation270) {
        int temp = dinfo.h;
        dinfo.h = dinfo.w;
        dinfo.w = temp;
    }

    Rect destRect(dinfo.w, dinfo.h);
    mSession->setDisplayProjection(dtoken, orient, destRect, destRect);

    // create the native surface
    sp<SurfaceControl> control = session()->createSurface(String8("BootAnimation"),
+6 −0
Original line number Diff line number Diff line
@@ -40,6 +40,12 @@ class SurfaceControl;
class BootAnimation : public Thread, public IBinder::DeathRecipient
{
public:
    enum {
        eOrientationDefault     = 0,
        eOrientation90          = 1,
        eOrientation180         = 2,
        eOrientation270         = 3,
    };
                BootAnimation();
    virtual     ~BootAnimation();