diff options
author | Mathias Agopian <> | 2009-03-25 23:26:39 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-25 23:26:39 -0700 |
commit | 192f79fe71af21e6a877bd298b33be92bee6b353 (patch) | |
tree | 2cb7e28deea77cf5c617b2f58bd7a4472f1975e1 | |
parent | ceff6e1874d760f4d5029b49b4da344b428555e5 (diff) | |
download | frameworks_native-192f79fe71af21e6a877bd298b33be92bee6b353.zip frameworks_native-192f79fe71af21e6a877bd298b33be92bee6b353.tar.gz frameworks_native-192f79fe71af21e6a877bd298b33be92bee6b353.tar.bz2 |
Automated import from //branches/cupcake/...@142875,142875
-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; |