summaryrefslogtreecommitdiff
path: root/libs/ui/Surface.cpp
diff options
context:
space:
mode:
author Mathias Agopian <mathias@google.com> 2009-05-11 00:03:41 -0700
committer Mathias Agopian <mathias@google.com> 2009-05-17 23:34:16 -0700
commit6158b1bf0364da1582468a98ec09d004ba99deec (patch)
tree6fc11335f772f84dbee308e830d807fe0df1f815 /libs/ui/Surface.cpp
parent11be99de5f3901c32130ea4c5fd52e62e1845e73 (diff)
Region now has its own implementation instead of relying on SkRegion, which allows us to break libui's dependency on libcorecg.
Diffstat (limited to 'libs/ui/Surface.cpp')
-rw-r--r--libs/ui/Surface.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/libs/ui/Surface.cpp b/libs/ui/Surface.cpp
index 6437619b20e2..6db30c3a2efc 100644
--- a/libs/ui/Surface.cpp
+++ b/libs/ui/Surface.cpp
@@ -125,15 +125,17 @@ static void copyBlt(
uint8_t* dst_bits;
dst->lock(GRALLOC_USAGE_SW_WRITE_OFTEN, reg.bounds(), (void**)&dst_bits);
- Region::iterator iterator(reg);
- if (iterator) {
+ size_t c;
+ Rect const* const rects = reg.getArray(&c);
+
+ if (c) {
// NOTE: dst and src must be the same format
- Rect r;
const size_t bpp = bytesPerPixel(src->format);
const size_t dbpr = dst->stride * bpp;
const size_t sbpr = src->stride * bpp;
- while (iterator.iterate(&r)) {
+ for (size_t i=0 ; i<c ; i++) {
+ const Rect& r = rects[i];
ssize_t h = r.height();
if (h <= 0) continue;
size_t size = r.width() * bpp;