diff options
author | Mathias Agopian <> | 2009-03-27 16:13:24 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-27 16:13:24 -0700 |
commit | cb93c5a1a39bb4feaa776393f0d4afb5bf6aae26 (patch) | |
tree | 697f60d79f47fedaf1726c950de2a4602ddb3c99 | |
parent | 66b8ec99c5fc505877b3711a52e284bbb451f836 (diff) | |
download | frameworks_base-cb93c5a1a39bb4feaa776393f0d4afb5bf6aae26.zip frameworks_base-cb93c5a1a39bb4feaa776393f0d4afb5bf6aae26.tar.gz frameworks_base-cb93c5a1a39bb4feaa776393f0d4afb5bf6aae26.tar.bz2 |
AI 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/...
Automated import of CL 143172
-rw-r--r-- | libs/surfaceflinger/LayerOrientationAnimRotate.cpp | 14 | ||||
-rw-r--r-- | libs/surfaceflinger/LayerOrientationAnimRotate.h | 1 |
2 files changed, 8 insertions, 7 deletions
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; |