From 253ed06781698a14aa838327d4d1135a11e01e3a Mon Sep 17 00:00:00 2001 From: Mathias Agopian <> Date: Fri, 27 Mar 2009 18:12:49 -0700 Subject: AI 143321: am: CL 143172 am: CL 142875 [1732012] for some reason these files didn't go through in the preview check-in. Original author: mathias Merged from: //branches/cupcake/... Original author: android-build Merged from: //branches/donutburger/... Automated import of CL 143321 --- libs/surfaceflinger/LayerOrientationAnimRotate.cpp | 14 +++++++------- libs/surfaceflinger/LayerOrientationAnimRotate.h | 1 + 2 files changed, 8 insertions(+), 7 deletions(-) (limited to 'libs') diff --git a/libs/surfaceflinger/LayerOrientationAnimRotate.cpp b/libs/surfaceflinger/LayerOrientationAnimRotate.cpp index 12d5d80..89ffb19 100644 --- a/libs/surfaceflinger/LayerOrientationAnimRotate.cpp +++ b/libs/surfaceflinger/LayerOrientationAnimRotate.cpp @@ -65,6 +65,8 @@ LayerOrientationAnimRotate::LayerOrientationAnimRotate( mLastAngle = 0; mLastScale = 0; mNeedsBlending = false; + const GraphicPlane& plane(graphicPlane(0)); + mOriginalTargetOrientation = plane.getOrientation(); } LayerOrientationAnimRotate::~LayerOrientationAnimRotate() @@ -117,10 +119,6 @@ void LayerOrientationAnimRotate::onDraw(const Region& clip) const { // Animation... - // FIXME: works only for portrait framebuffers - const Point size(getPhysicalSize()); - const float TARGET_SCALE = size.x * (1.0f / size.y); - const nsecs_t now = systemTime(); float angle, scale, alpha; @@ -154,6 +152,9 @@ void LayerOrientationAnimRotate::onDraw(const Region& clip) const scale = 1.0f; } } else { + // FIXME: works only for portrait framebuffers + const Point size(getPhysicalSize()); + const float TARGET_SCALE = size.x * (1.0f / size.y); const float normalizedTime = float(now - mStartTime) / DURATION; if (normalizedTime <= 1.0f) { mLastNormalizedTime = normalizedTime; @@ -212,8 +213,7 @@ void LayerOrientationAnimRotate::drawScaled(float f, float s, float alpha) const t.format = src.format; t.data = (GGLubyte*)(intptr_t(src.base) + src.offset); - const int targetOrientation = plane.getOrientation(); - if (!targetOrientation) { + if (!mOriginalTargetOrientation) { f = -f; } @@ -246,7 +246,7 @@ void LayerOrientationAnimRotate::drawScaled(float f, float s, float alpha) const drawWithOpenGL(clip, mTextureName, t); if (alpha > 0) { - const float sign = (!targetOrientation) ? 1.0f : -1.0f; + const float sign = (!mOriginalTargetOrientation) ? 1.0f : -1.0f; tr.set(f + sign*(M_PI * 0.5f * ROTATION_FACTOR), w*0.5f, h*0.5f); tr.scale(s, w*0.5f, h*0.5f); tr.transform(self.mVertices[0], 0, 0); diff --git a/libs/surfaceflinger/LayerOrientationAnimRotate.h b/libs/surfaceflinger/LayerOrientationAnimRotate.h index 5ca5780..5fbbd42 100644 --- a/libs/surfaceflinger/LayerOrientationAnimRotate.h +++ b/libs/surfaceflinger/LayerOrientationAnimRotate.h @@ -60,6 +60,7 @@ private: nsecs_t mStartTime; nsecs_t mFinishTime; bool mOrientationCompleted; + int mOriginalTargetOrientation; mutable bool mFirstRedraw; mutable float mLastNormalizedTime; mutable float mLastAngle; -- cgit v1.1