Loading libs/hwui/FrameBuilder.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -522,7 +522,10 @@ static bool hasMergeableClip(const BakedOpState& state) { void FrameBuilder::deferBitmapOp(const BitmapOp& op) { BakedOpState* bakedState = tryBakeOpState(op); if (!bakedState) return; // quick rejected if (op.bitmap->isOpaque()) { bakedState->setupOpacity(op.paint); } // Don't merge non-simply transformed or neg scale ops, SET_TEXTURE doesn't handle rotation // Don't merge A8 bitmaps - the paint's color isn't compared by mergeId, or in Loading libs/hwui/tests/unit/FrameBuilderTests.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -298,7 +298,6 @@ RENDERTHREAD_TEST(FrameBuilder, avoidOverdraw_bitmaps) { class AvoidOverdrawBitmapsTestRenderer : public TestRendererBase { public: void onBitmapOp(const BitmapOp& op, const BakedOpState& state) override { EXPECT_LT(mIndex++, 2) << "Should be two bitmaps"; switch(mIndex++) { case 0: EXPECT_EQ(opaqueBitmap.pixelRef(), op.bitmap->pixelRef()); Loading Loading @@ -331,7 +330,7 @@ RENDERTHREAD_TEST(FrameBuilder, avoidOverdraw_bitmaps) { AvoidOverdrawBitmapsTestRenderer renderer; frameBuilder.replayBakedOps<TestDispatcher>(renderer); EXPECT_EQ(2, renderer.getIndex()) << "Expect exactly one op"; EXPECT_EQ(2, renderer.getIndex()) << "Expect exactly two ops"; } RENDERTHREAD_TEST(FrameBuilder, clippedMerging) { Loading Loading
libs/hwui/FrameBuilder.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -522,7 +522,10 @@ static bool hasMergeableClip(const BakedOpState& state) { void FrameBuilder::deferBitmapOp(const BitmapOp& op) { BakedOpState* bakedState = tryBakeOpState(op); if (!bakedState) return; // quick rejected if (op.bitmap->isOpaque()) { bakedState->setupOpacity(op.paint); } // Don't merge non-simply transformed or neg scale ops, SET_TEXTURE doesn't handle rotation // Don't merge A8 bitmaps - the paint's color isn't compared by mergeId, or in Loading
libs/hwui/tests/unit/FrameBuilderTests.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -298,7 +298,6 @@ RENDERTHREAD_TEST(FrameBuilder, avoidOverdraw_bitmaps) { class AvoidOverdrawBitmapsTestRenderer : public TestRendererBase { public: void onBitmapOp(const BitmapOp& op, const BakedOpState& state) override { EXPECT_LT(mIndex++, 2) << "Should be two bitmaps"; switch(mIndex++) { case 0: EXPECT_EQ(opaqueBitmap.pixelRef(), op.bitmap->pixelRef()); Loading Loading @@ -331,7 +330,7 @@ RENDERTHREAD_TEST(FrameBuilder, avoidOverdraw_bitmaps) { AvoidOverdrawBitmapsTestRenderer renderer; frameBuilder.replayBakedOps<TestDispatcher>(renderer); EXPECT_EQ(2, renderer.getIndex()) << "Expect exactly one op"; EXPECT_EQ(2, renderer.getIndex()) << "Expect exactly two ops"; } RENDERTHREAD_TEST(FrameBuilder, clippedMerging) { Loading