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

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

Ensure we start every frame in the proper GL state

Bug #6345013, #6314960

Change-Id: I6985f7f233eb6a5f9223e9f4be3f323154b5dbf0
parent 1b8f499a
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -278,6 +278,13 @@ 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;
}

@@ -2787,6 +2794,7 @@ void OpenGLRenderer::drawTextureMesh(float left, float top, float right, float b
void OpenGLRenderer::chooseBlending(bool blend, SkXfermode::Mode mode,
        ProgramDescription& description, bool swapSrcDst) {
    blend = blend || mode != SkXfermode::kSrcOver_Mode;

    if (blend) {
        // These blend modes are not supported by OpenGL directly and have
        // to be implemented using shaders. Since the shader will perform