summaryrefslogtreecommitdiff
path: root/libs/hwui/AmbientShadow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/AmbientShadow.cpp')
-rw-r--r--libs/hwui/AmbientShadow.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/libs/hwui/AmbientShadow.cpp b/libs/hwui/AmbientShadow.cpp
index 181230ad7547..9cc83ed68755 100644
--- a/libs/hwui/AmbientShadow.cpp
+++ b/libs/hwui/AmbientShadow.cpp
@@ -117,10 +117,13 @@ void AmbientShadow::createAmbientShadow(bool isCasterOpaque,
// inner ring of points
float opacity = 1.0 / (1 + rayHeight[rayIndex] * heightFactor);
+ // NOTE: Shadow alpha values are transformed when stored in alphavertices,
+ // so that they can be consumed directly by gFS_Main_ApplyVertexAlphaShadowInterp
+ float transformedOpacity = acos(1.0f - 2.0f * opacity);
AlphaVertex::set(&shadowVertices[rays + rayIndex],
intersection.x,
intersection.y,
- opacity);
+ transformedOpacity);
}
if (isCasterOpaque) {