Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d91b425 authored by Jamie Gennis's avatar Jamie Gennis
Browse files

SurfaceFlinger: fix the transform hint

This change fixes the transform hint to use only the global display
transform rather than incorporating the transient layer-specific
transform used during animations.

Bug: 5366891
Change-Id: I5408dcd3f4771d010953e8a696a484c835bfe81e
parent 673a6445
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -578,7 +578,7 @@ uint32_t Layer::getEffectiveUsage(uint32_t usage) const
uint32_t Layer::getTransformHint() const {
uint32_t Layer::getTransformHint() const {
    uint32_t orientation = 0;
    uint32_t orientation = 0;
    if (!mFlinger->mDebugDisableTransformHint) {
    if (!mFlinger->mDebugDisableTransformHint) {
        orientation = getOrientation();
        orientation = getPlaneOrientation();
        if (orientation & Transform::ROT_INVALID) {
        if (orientation & Transform::ROT_INVALID) {
            orientation = 0;
            orientation = 0;
        }
        }
+2 −0
Original line number Original line Diff line number Diff line
@@ -45,6 +45,7 @@ LayerBase::LayerBase(SurfaceFlinger* flinger, DisplayID display)
      mFlinger(flinger), mFiltering(false),
      mFlinger(flinger), mFiltering(false),
      mNeedsFiltering(false), mInOverlay(false),
      mNeedsFiltering(false), mInOverlay(false),
      mOrientation(0),
      mOrientation(0),
      mPlaneOrientation(0),
      mTransactionFlags(0),
      mTransactionFlags(0),
      mPremultipliedAlpha(true), mName("unnamed"), mDebug(false),
      mPremultipliedAlpha(true), mName("unnamed"), mDebug(false),
      mInvalidate(0)
      mInvalidate(0)
@@ -256,6 +257,7 @@ void LayerBase::validateVisibility(const Transform& planeTransform)


    // cache a few things...
    // cache a few things...
    mOrientation = tr.getOrientation();
    mOrientation = tr.getOrientation();
    mPlaneOrientation = planeTransform.getOrientation();
    mTransform = tr;
    mTransform = tr;
    mTransformedBounds = tr.makeBounds(w, h);
    mTransformedBounds = tr.makeBounds(w, h);
}
}
+2 −0
Original line number Original line Diff line number Diff line
@@ -221,6 +221,7 @@ public:
    inline  State&          currentState()          { return mCurrentState; }
    inline  State&          currentState()          { return mCurrentState; }


    int32_t  getOrientation() const { return mOrientation; }
    int32_t  getOrientation() const { return mOrientation; }
    int32_t  getPlaneOrientation() const { return mPlaneOrientation; }
    
    
protected:
protected:
    const GraphicPlane& graphicPlane(int dpy) const;
    const GraphicPlane& graphicPlane(int dpy) const;
@@ -254,6 +255,7 @@ private:
protected:
protected:
                // cached during validateVisibility()
                // cached during validateVisibility()
                int32_t         mOrientation;
                int32_t         mOrientation;
                int32_t         mPlaneOrientation;
                Transform       mTransform;
                Transform       mTransform;
                GLfloat         mVertices[4][2];
                GLfloat         mVertices[4][2];
                Rect            mTransformedBounds;
                Rect            mTransformedBounds;