From d869f6d3b606e68ff9c6a5944639efb72748ca7d Mon Sep 17 00:00:00 2001 From: Ramkumar Radhakrishnan Date: Tue, 7 May 2013 15:59:11 -0700 Subject: 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 --- cmds/bootanimation/BootAnimation.cpp | 12 ++++++++++++ cmds/bootanimation/BootAnimation.h | 6 ++++++ 2 files changed, 18 insertions(+) (limited to 'cmds') diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp index f7a75d3..9d9b20b 100644 --- a/cmds/bootanimation/BootAnimation.cpp +++ b/cmds/bootanimation/BootAnimation.cpp @@ -337,6 +337,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 control = session()->createSurface(String8("BootAnimation"), diff --git a/cmds/bootanimation/BootAnimation.h b/cmds/bootanimation/BootAnimation.h index 758f7f7..09ea484 100644 --- a/cmds/bootanimation/BootAnimation.h +++ b/cmds/bootanimation/BootAnimation.h @@ -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(); -- cgit v1.1