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

Commit 0b1591c1 authored by Chris Craik's avatar Chris Craik Committed by Android (Google) Code Review
Browse files

Merge "Modulate shadow alpha by caster alpha"

parents ee642010 919e95cc
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -661,7 +661,8 @@ void DisplayList::iterate3dChildren(ChildrenSelectMode mode, OpenGLRenderer& ren
        if (mode == kNegativeZChildren && zValue > 0.0f) break;

        DisplayList* child = childOp->mDisplayList;
        if (mode == kPositiveZChildren && zValue > 0.0f && child->mCastsShadow) {
        if (mode == kPositiveZChildren && zValue > 0.0f
                && child->mCastsShadow && child->mAlpha > 0.0f) {
            /* draw shadow with parent matrix applied, passing in the child's total matrix
             * TODO: consider depth in more complex scenarios (neg z, added shadow depth)
             */
+2 −2
Original line number Diff line number Diff line
@@ -3233,7 +3233,7 @@ status_t OpenGLRenderer::drawShadow(const mat4& casterTransform, float casterAlp

    // draw caster's shadows
    if (mCaches.propertyAmbientShadowStrength > 0) {
        paint.setARGB(mCaches.propertyAmbientShadowStrength, 0, 0, 0);
        paint.setARGB(casterAlpha * mCaches.propertyAmbientShadowStrength, 0, 0, 0);
        VertexBuffer ambientShadowVertexBuffer;
        ShadowTessellator::tessellateAmbientShadow(casterPolygon, casterVertexCount,
                ambientShadowVertexBuffer);
@@ -3241,7 +3241,7 @@ status_t OpenGLRenderer::drawShadow(const mat4& casterTransform, float casterAlp
    }

    if (mCaches.propertySpotShadowStrength > 0) {
        paint.setARGB(mCaches.propertySpotShadowStrength, 0, 0, 0);
        paint.setARGB(casterAlpha * mCaches.propertySpotShadowStrength, 0, 0, 0);
        VertexBuffer spotShadowVertexBuffer;
        Vector3 lightPosScale(mCaches.propertyLightPosXScale,
                mCaches.propertyLightPosYScale, mCaches.propertyLightPosZScale);