Merge "Don't add clipped rects to layer regions. Bug #3350208" into honeycomb

This commit is contained in:
Romain Guy
2011-01-14 11:25:56 -08:00
committed by Android (Google) Code Review

View File

@@ -697,14 +697,14 @@ void OpenGLRenderer::dirtyLayer(const float left, const float top,
if ((mSnapshot->flags & Snapshot::kFlagFboTarget) && mSnapshot->region) { if ((mSnapshot->flags & Snapshot::kFlagFboTarget) && mSnapshot->region) {
Rect bounds(left, top, right, bottom); Rect bounds(left, top, right, bottom);
transform.mapRect(bounds); transform.mapRect(bounds);
bounds.intersect(*mSnapshot->clipRect); if (bounds.intersect(*mSnapshot->clipRect)) {
bounds.snapToPixelBoundaries(); bounds.snapToPixelBoundaries();
android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom); android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom);
if (!dirty.isEmpty()) { if (!dirty.isEmpty()) {
mSnapshot->region->orSelf(dirty); mSnapshot->region->orSelf(dirty);
} }
} }
}
#endif #endif
} }
@@ -713,14 +713,14 @@ void OpenGLRenderer::dirtyLayer(const float left, const float top,
#if RENDER_LAYERS_AS_REGIONS #if RENDER_LAYERS_AS_REGIONS
if ((mSnapshot->flags & Snapshot::kFlagFboTarget) && mSnapshot->region) { if ((mSnapshot->flags & Snapshot::kFlagFboTarget) && mSnapshot->region) {
Rect bounds(left, top, right, bottom); Rect bounds(left, top, right, bottom);
bounds.intersect(*mSnapshot->clipRect); if (bounds.intersect(*mSnapshot->clipRect)) {
bounds.snapToPixelBoundaries(); bounds.snapToPixelBoundaries();
android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom); android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom);
if (!dirty.isEmpty()) { if (!dirty.isEmpty()) {
mSnapshot->region->orSelf(dirty); mSnapshot->region->orSelf(dirty);
} }
} }
}
#endif #endif
} }