diff options
| author | 2014-01-07 10:42:55 -0800 | |
|---|---|---|
| committer | 2014-01-10 17:18:53 -0800 | |
| commit | 7b4516e7ea552ad08d6e7277d311ef11bd8f12e8 (patch) | |
| tree | a97549bff020af39946aabd5a5c27c1151a90539 /libs/hwui/OpenGLRenderer.cpp | |
| parent | 0ffd9ca5798d6c55d2a02f453dd181899639dce2 (diff) | |
Calculate and show the shadow from a spot light.
Change-Id: Ia558852e8cde5d33866b22875eb501e4c6858819
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
| -rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 22cd2d414277..4f6da2b9eb1b 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -3194,10 +3194,18 @@ status_t OpenGLRenderer::drawShadow(const mat4& casterTransform, float casterAlp paint.setColor(mCaches.propertyShadowStrength << 24); paint.setAntiAlias(true); // want to use AlphaVertex - VertexBuffer shadowVertexBuffer; + VertexBuffer ambientShadowVertexBuffer; ShadowTessellator::tessellateAmbientShadow(width, height, casterTransform, - shadowVertexBuffer); - return drawVertexBuffer(shadowVertexBuffer, &paint); + ambientShadowVertexBuffer); + drawVertexBuffer(ambientShadowVertexBuffer, &paint); + + VertexBuffer spotShadowVertexBuffer; + ShadowTessellator::tessellateSpotShadow(width, height, + getWidth(), getHeight(), casterTransform, + spotShadowVertexBuffer); + drawVertexBuffer(spotShadowVertexBuffer, &paint); + + return DrawGlInfo::kStatusDrew; } status_t OpenGLRenderer::drawColorRects(const float* rects, int count, int color, |