am 851beae7: Merge "Properly handle dirty rectangles generated from 9-patches Bug #3409580" into honeycomb
* commit '851beae717dc8e9b66c214d9d6aab2e76d52b086': Properly handle dirty rectangles generated from 9-patches Bug #3409580
This commit is contained in:
@@ -1217,17 +1217,18 @@ void OpenGLRenderer::drawPatch(SkBitmap* bitmap, const int32_t* xDivs, const int
|
|||||||
#if RENDER_LAYERS_AS_REGIONS
|
#if RENDER_LAYERS_AS_REGIONS
|
||||||
// Mark the current layer dirty where we are going to draw the patch
|
// Mark the current layer dirty where we are going to draw the patch
|
||||||
if (hasLayer() && mesh->hasEmptyQuads) {
|
if (hasLayer() && mesh->hasEmptyQuads) {
|
||||||
|
const float offsetX = left + mSnapshot->transform->getTranslateX();
|
||||||
|
const float offsetY = top + mSnapshot->transform->getTranslateY();
|
||||||
const size_t count = mesh->quads.size();
|
const size_t count = mesh->quads.size();
|
||||||
for (size_t i = 0; i < count; i++) {
|
for (size_t i = 0; i < count; i++) {
|
||||||
const Rect& bounds = mesh->quads.itemAt(i);
|
const Rect& bounds = mesh->quads.itemAt(i);
|
||||||
if (pureTranslate) {
|
if (pureTranslate) {
|
||||||
const float x = (int) floorf(bounds.left + 0.5f);
|
const float x = (int) floorf(bounds.left + offsetX + 0.5f);
|
||||||
const float y = (int) floorf(bounds.top + 0.5f);
|
const float y = (int) floorf(bounds.top + offsetY + 0.5f);
|
||||||
dirtyLayer(x, y, x + bounds.getWidth(), y + bounds.getHeight(),
|
dirtyLayer(x, y, x + bounds.getWidth(), y + bounds.getHeight());
|
||||||
*mSnapshot->transform);
|
|
||||||
} else {
|
} else {
|
||||||
dirtyLayer(bounds.left, bounds.top, bounds.right, bounds.bottom,
|
dirtyLayer(left + bounds.left, top + bounds.top,
|
||||||
*mSnapshot->transform);
|
left + bounds.right, top + bounds.bottom, *mSnapshot->transform);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user