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

Commit e529ece3 authored by Romain Guy's avatar Romain Guy
Browse files

Applies a layer's color filter even when the layer is a quad

Bug #7238059

Change-Id: Ib4736a419bc1a9a67a01d090516ed049fe3aebca
parent 72a37470
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -2729,13 +2729,13 @@ status_t OpenGLRenderer::drawLayer(Layer* layer, float x, float y, SkPaint* pain
    mCaches.activeTexture(0);

    if (CC_LIKELY(!layer->region.isEmpty())) {
        SkiaColorFilter* oldFilter = mColorFilter;
        mColorFilter = layer->getColorFilter();

        if (layer->region.isRect()) {
            composeLayerRect(layer, layer->regionRect);
        } else if (layer->mesh) {
            const float a = layer->getAlpha() / 255.0f;
            SkiaColorFilter *oldFilter = mColorFilter;
            mColorFilter = layer->getColorFilter();

            setupDraw();
            setupDrawWithTexture();
            setupDrawColor(a, a, a, a);
@@ -2764,13 +2764,13 @@ status_t OpenGLRenderer::drawLayer(Layer* layer, float x, float y, SkPaint* pain

            finishDrawTexture();

            mColorFilter = oldFilter;

#if DEBUG_LAYERS_AS_REGIONS
            drawRegionRects(layer->region);
#endif
        }

        mColorFilter = oldFilter;

        if (debugLayerUpdate) {
            drawColorRect(x, y, x + layer->layer.getWidth(), y + layer->layer.getHeight(),
                    0x7f00ff00, SkXfermode::kSrcOver_Mode);