diff options
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 |
commit | 20f68782a4ea71c6a977d7f87d8288d3daa265ec (patch) | |
tree | 5f286e70c9d2b870d3594354e321795496ef9b4e /libs/ui/Surface.cpp | |
parent | d8fb7b586f3cfac42694208547b58438d7f3b3ed (diff) | |
download | frameworks_native-20f68782a4ea71c6a977d7f87d8288d3daa265ec.zip frameworks_native-20f68782a4ea71c6a977d7f87d8288d3daa265ec.tar.gz frameworks_native-20f68782a4ea71c6a977d7f87d8288d3daa265ec.tar.bz2 |
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.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libs/ui/Surface.cpp b/libs/ui/Surface.cpp index 6437619..6db30c3 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; |