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

Commit 444e936b authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "hwui: send TextureView hint to SF" into udc-dev

parents 69435cc9 cab4afeb
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -206,6 +206,7 @@ public class TextureView extends View {
     */
     */
    public TextureView(@NonNull Context context) {
    public TextureView(@NonNull Context context) {
        super(context);
        super(context);
        mRenderNode.setIsTextureView();
    }
    }


    /**
    /**
@@ -216,6 +217,7 @@ public class TextureView extends View {
     */
     */
    public TextureView(@NonNull Context context, @Nullable AttributeSet attrs) {
    public TextureView(@NonNull Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        super(context, attrs);
        mRenderNode.setIsTextureView();
    }
    }


    /**
    /**
@@ -229,6 +231,7 @@ public class TextureView extends View {
     */
     */
    public TextureView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
    public TextureView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        super(context, attrs, defStyleAttr);
        mRenderNode.setIsTextureView();
    }
    }


    /**
    /**
@@ -247,6 +250,7 @@ public class TextureView extends View {
    public TextureView(@NonNull Context context, @Nullable AttributeSet attrs,
    public TextureView(@NonNull Context context, @Nullable AttributeSet attrs,
            int defStyleAttr, int defStyleRes) {
            int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        super(context, attrs, defStyleAttr, defStyleRes);
        mRenderNode.setIsTextureView();
    }
    }


    /**
    /**
+13 −0
Original line number Original line Diff line number Diff line
@@ -1561,6 +1561,16 @@ public final class RenderNode {
        return nGetUniqueId(mNativeRenderNode);
        return nGetUniqueId(mNativeRenderNode);
    }
    }


    /**
     * Captures whether this RenderNote represents a TextureView
     * TODO(b/281695725): Clean this up once TextureView use setFrameRate API
     *
     * @hide
     */
    public void setIsTextureView() {
        nSetIsTextureView(mNativeRenderNode);
    }

    ///////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////
    // Animations
    // Animations
    ///////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////
@@ -1891,4 +1901,7 @@ public final class RenderNode {


    @CriticalNative
    @CriticalNative
    private static native long nGetUniqueId(long renderNode);
    private static native long nGetUniqueId(long renderNode);

    @CriticalNative
    private static native void nSetIsTextureView(long renderNode);
}
}
+3 −0
Original line number Original line Diff line number Diff line
@@ -152,6 +152,9 @@ void RenderNode::damageSelf(TreeInfo& info) {
            // TODO: Get this from the display list ops or something
            // TODO: Get this from the display list ops or something
            info.damageAccumulator->dirty(DIRTY_MIN, DIRTY_MIN, DIRTY_MAX, DIRTY_MAX);
            info.damageAccumulator->dirty(DIRTY_MIN, DIRTY_MIN, DIRTY_MAX, DIRTY_MAX);
        }
        }
        if (!mIsTextureView) {
            info.out.solelyTextureViewUpdates = false;
        }
    }
    }
}
}


+4 −0
Original line number Original line Diff line number Diff line
@@ -221,6 +221,8 @@ public:


    int64_t uniqueId() const { return mUniqueId; }
    int64_t uniqueId() const { return mUniqueId; }


    void setIsTextureView() { mIsTextureView = true; }

    void markDrawStart(SkCanvas& canvas);
    void markDrawStart(SkCanvas& canvas);
    void markDrawEnd(SkCanvas& canvas);
    void markDrawEnd(SkCanvas& canvas);


@@ -290,6 +292,8 @@ private:
    bool mHasHolePunches;
    bool mHasHolePunches;
    StretchMask mStretchMask;
    StretchMask mStretchMask;


    bool mIsTextureView = false;

    // METHODS & FIELDS ONLY USED BY THE SKIA RENDERER
    // METHODS & FIELDS ONLY USED BY THE SKIA RENDERER
public:
public:
    /**
    /**
+4 −0
Original line number Original line Diff line number Diff line
@@ -123,6 +123,10 @@ public:
        // This is used to post a message to redraw when it is time to draw the
        // This is used to post a message to redraw when it is time to draw the
        // next frame of an AnimatedImageDrawable.
        // next frame of an AnimatedImageDrawable.
        nsecs_t animatedImageDelay = kNoAnimatedImageDelay;
        nsecs_t animatedImageDelay = kNoAnimatedImageDelay;
        // This is used to determine if there were only TextureView updates in this frame.
        // This info is passed to SurfaceFlinger to determine whether it should use vsyncIds
        // for refresh rate selection.
        bool solelyTextureViewUpdates = true;
    } out;
    } out;


    // This flag helps to disable projection for receiver nodes that do not have any backward
    // This flag helps to disable projection for receiver nodes that do not have any backward
Loading