diff options
| author | 2011-01-19 10:37:35 -0800 | |
|---|---|---|
| committer | 2011-01-19 10:37:35 -0800 | |
| commit | fdbec3e4828f93bfa5cde758ad0e77b89c5c2ecd (patch) | |
| tree | cc77b42b6e772ca9093eeb99a80d97f1b49cfea9 /libs/hwui/Patch.cpp | |
| parent | 7890fe2da4719bf72b4fbcbef20a555d5fbd94bb (diff) | |
Fix 9patches in Launcher
Change-Id: Ieedf36ccaab253909b44ed8c222d523867f095be
Diffstat (limited to 'libs/hwui/Patch.cpp')
| -rw-r--r-- | libs/hwui/Patch.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/libs/hwui/Patch.cpp b/libs/hwui/Patch.cpp index 3f0036aab80a..999e4eacaba2 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, |