summaryrefslogtreecommitdiffstats
path: root/libs
diff options
context:
space:
mode:
authorMathias Agopian <>2009-03-27 18:12:49 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-27 18:12:49 -0700
commit253ed06781698a14aa838327d4d1135a11e01e3a (patch)
treee0ba16ab58ef333b88b471a905e60217e3bb068c /libs
parentc08731e756868653d09d3e49b723706df3687070 (diff)
downloadframeworks_native-253ed06781698a14aa838327d4d1135a11e01e3a.zip
frameworks_native-253ed06781698a14aa838327d4d1135a11e01e3a.tar.gz
frameworks_native-253ed06781698a14aa838327d4d1135a11e01e3a.tar.bz2
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
Diffstat (limited to 'libs')
-rw-r--r--libs/surfaceflinger/LayerOrientationAnimRotate.cpp14
-rw-r--r--libs/surfaceflinger/LayerOrientationAnimRotate.h1
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;