From d5e8ade498b41b42874273cbfa375aed7b4d6a08 Mon Sep 17 00:00:00 2001 From: ztenghui Date: Wed, 13 Aug 2014 15:48:02 -0700 Subject: Ambient shadow tessellation improvement. Using the vertices, instead of ray casting for the triangulation. This request a dynamic index buffer associated with vertex buffer, so we update the VertexBuffer to support it. The ambient shadow could be 3x-6x times faster for circle and rect now. b/16712006 b/14257173 Change-Id: I2f22a8fe19bc59acee5c18e4a3a395acd5042a66 --- libs/hwui/OpenGLRenderer.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libs/hwui/OpenGLRenderer.cpp') diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index bbf055116752..0f36c0658dd0 100755 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -2417,6 +2417,10 @@ status_t OpenGLRenderer::drawVertexBuffer(float translateX, float translateY, } else if (mode == VertexBuffer::kTwoPolyRingShadow) { mCaches.bindShadowIndicesBuffer(); glDrawElements(GL_TRIANGLE_STRIP, TWO_POLY_RING_SHADOW_INDEX_COUNT, GL_UNSIGNED_SHORT, 0); + } else if (mode == VertexBuffer::kIndices) { + mCaches.unbindIndicesBuffer(); + glDrawElements(GL_TRIANGLE_STRIP, vertexBuffer.getIndexCount(), GL_UNSIGNED_SHORT, + vertexBuffer.getIndices()); } if (isAA) { -- cgit v1.2.3-59-g8ed1b