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

Commit 5ba87a00 authored by Romain Guy's avatar Romain Guy Committed by Android Git Automerger
Browse files

am e5a4a3dc: Merge "Ensure we always set the proper blending mode Bug #6527305" into jb-dev

* commit 'e5a4a3dc':
  Ensure we always set the proper blending mode Bug #6527305
parents f6f26949 e5a4a3dc
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -296,7 +296,8 @@ void DisplayList::output(OpenGLRenderer& renderer, uint32_t level) {
        indent[i] = ' ';
    }
    indent[count] = '\0';
    ALOGD("%sStart display list (%p, %s)", (char*) indent + 2, this, mName.string());
    ALOGD("%sStart display list (%p, %s, render=%d)", (char*) indent + 2, this,
            mName.string(), isRenderable());

    ALOGD("%s%s %d", indent, "Save", SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag);
    int saveCount = renderer.getSaveCount() - 1;
+16 −9
Original line number Diff line number Diff line
@@ -176,14 +176,26 @@ void OpenGLRenderer::prepareDirty(float left, float top, float right, float bott
    mSnapshot->fbo = getTargetFbo();
    mSaveCount = 1;

    glViewport(0, 0, mWidth, mHeight);
    mCaches.setScissor(left, mSnapshot->height - bottom, right - left, bottom - top);

    mSnapshot->setClip(left, top, right, bottom);
    mDirtyClip = false;
    mDirtyClip = opaque;

    syncState();

    if (!opaque) {
        mCaches.setScissor(left, mSnapshot->height - bottom, right - left, bottom - top);
        glClear(GL_COLOR_BUFFER_BIT);
    } else {
        mCaches.resetScissor();
    }
}

void OpenGLRenderer::syncState() {
    glViewport(0, 0, mWidth, mHeight);

    if (mCaches.blend) {
        glEnable(GL_BLEND);
    } else {
        glDisable(GL_BLEND);
    }
}

@@ -290,11 +302,6 @@ status_t OpenGLRenderer::invokeFunctors(Rect& dirty) {
        }
    }

    // Restore state possibly changed by the functors in process mode
    GLboolean value;
    glGetBooleanv(GL_BLEND, &value);
    mCaches.blend = value;

    mCaches.activeTexture(0);

    return result;
+6 −0
Original line number Diff line number Diff line
@@ -214,6 +214,12 @@ protected:
    void drawTextureLayer(Layer* layer, const Rect& rect);

private:
    /**
     * Ensures the state of the renderer is the same as the state of
     * the GL context.
     */
    void syncState();

    /**
     * Saves the current state of the renderer as a new snapshot.
     * The new snapshot is saved in mSnapshot and the previous snapshot