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

Commit a3af75cf authored by Chris Craik's avatar Chris Craik Committed by Android Git Automerger
Browse files

am 5db573c7: am 969b5ff4: Merge "Fix garbage showing up beneath dialogs" into lmp-dev

* commit '5db573c733367bba7fd05d99632a5f475d7aadda':
  Fix garbage showing up beneath dialogs
parents 8b56ed5a 1f203b3a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -134,6 +134,8 @@ OpenGLRenderer::OpenGLRenderer(RenderState& renderState)
        , mExtensions(Extensions::getInstance())
        , mRenderState(renderState)
        , mScissorOptimizationDisabled(false)
        , mSuppressTiling(false)
        , mFirstFrameAfterResize(true)
        , mCountOverdraw(false)
        , mLightCenter((Vector3){FLT_MIN, FLT_MIN, FLT_MIN})
        , mLightRadius(FLT_MIN)
@@ -179,6 +181,7 @@ void OpenGLRenderer::onViewportInitialized() {
    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

    glEnableVertexAttribArray(Program::kBindingPosition);
    mFirstFrameAfterResize = true;
}

void OpenGLRenderer::setupFrameState(float left, float top,
@@ -202,7 +205,9 @@ status_t OpenGLRenderer::startFrame() {
    // Functors break the tiling extension in pretty spectacular ways
    // This ensures we don't use tiling when a functor is going to be
    // invoked during the frame
    mSuppressTiling = mCaches.hasRegisteredFunctors();
    mSuppressTiling = mCaches.hasRegisteredFunctors()
            || mFirstFrameAfterResize;
    mFirstFrameAfterResize = false;

    startTilingCurrentClip(true);

+1 −0
Original line number Diff line number Diff line
@@ -1013,6 +1013,7 @@ private:

    // No-ops start/endTiling when set
    bool mSuppressTiling;
    bool mFirstFrameAfterResize;

    // If true, this renderer will setup drawing to emulate
    // an increment stencil buffer in the color buffer
+7 −0
Original line number Diff line number Diff line
@@ -49,6 +49,13 @@ void StatefulBaseRenderer::setViewport(int width, int height) {
    mHeight = height;
    mFirstSnapshot->initializeViewport(width, height);
    onViewportInitialized();

    // create a temporary 1st snapshot, so old snapshots are released,
    // and viewport can be queried safely.
    // TODO: remove, combine viewport + save stack initialization
    mSnapshot = new Snapshot(mFirstSnapshot,
            SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag);
    mSaveCount = 1;
}

///////////////////////////////////////////////////////////////////////////////
+1 −1
Original line number Diff line number Diff line
@@ -119,10 +119,10 @@ void CanvasContext::pauseSurface(ANativeWindow* window) {
    stopDrawing();
}

// TODO: don't pass viewport size, it's automatic via EGL
void CanvasContext::setup(int width, int height, const Vector3& lightCenter, float lightRadius,
        uint8_t ambientShadowAlpha, uint8_t spotShadowAlpha) {
    if (!mCanvas) return;
    mCanvas->setViewport(width, height);
    mCanvas->initLight(lightCenter, lightRadius, ambientShadowAlpha, spotShadowAlpha);
}