From fdbec3e4828f93bfa5cde758ad0e77b89c5c2ecd Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Wed, 19 Jan 2011 10:37:35 -0800 Subject: Fix 9patches in Launcher Change-Id: Ieedf36ccaab253909b44ed8c222d523867f095be --- libs/hwui/Patch.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'libs') diff --git a/libs/hwui/Patch.cpp b/libs/hwui/Patch.cpp index 3f0036a..999e4ea 100644 --- a/libs/hwui/Patch.cpp +++ b/libs/hwui/Patch.cpp @@ -167,6 +167,10 @@ void Patch::updateVertices(const float bitmapWidth, const float bitmapHeight, float v2 = fmax(0.0f, stepY - 0.5f) / bitmapHeight; if (stepY > 0.0f) { + if (i == mYCount - 1 && mYDivs[i] == bitmapHeight) { + y2 = bottom - top; + v2 = 1.0f; + } generateRow(vertex, y1, y2, v1, v2, stretchX, right - left, bitmapWidth, quadCount); } @@ -177,8 +181,10 @@ void Patch::updateVertices(const float bitmapWidth, const float bitmapHeight, previousStepY = stepY; } - generateRow(vertex, y1, bottom - top, v1, 1.0f, stretchX, right - left, - bitmapWidth, quadCount); + if (previousStepY != bitmapHeight) { + generateRow(vertex, y1, bottom - top, v1, 1.0f, stretchX, right - left, + bitmapWidth, quadCount); + } if (verticesCount > 0) { Caches::getInstance().bindMeshBuffer(meshBuffer); @@ -216,6 +222,10 @@ void Patch::generateRow(TextureVertex*& vertex, float y1, float y2, float v1, fl float u2 = fmax(0.0f, stepX - 0.5f) / bitmapWidth; if (stepX > 0.0f) { + if (i == mXCount - 1 && mXDivs[i] == bitmapWidth) { + x2 = bitmapWidth; + u2 = 1.0f; + } generateQuad(vertex, x1, y1, x2, y2, u1, v1, u2, v2, quadCount); } @@ -225,7 +235,9 @@ void Patch::generateRow(TextureVertex*& vertex, float y1, float y2, float v1, fl previousStepX = stepX; } - generateQuad(vertex, x1, y1, width, y2, u1, v1, 1.0f, v2, quadCount); + if (previousStepX != bitmapWidth) { + generateQuad(vertex, x1, y1, width, y2, u1, v1, 1.0f, v2, quadCount); + } } void Patch::generateQuad(TextureVertex*& vertex, float x1, float y1, float x2, float y2, -- cgit v1.1