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

Commit a82ffc54 authored by sergeyv's avatar sergeyv
Browse files

Fix opacity setup in FrameBuilder

bug:27941278
Change-Id: Ib0599f669406d2fb477d51d5ba701a89f83f9bd9
parent 1b8189d8
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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
+1 −2
Original line number Diff line number Diff line
@@ -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());
@@ -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) {