summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/android/jni/PictureSet.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/android/jni/PictureSet.h')
-rw-r--r--Source/WebKit/android/jni/PictureSet.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/Source/WebKit/android/jni/PictureSet.h b/Source/WebKit/android/jni/PictureSet.h
index b177958..907fb92 100644
--- a/Source/WebKit/android/jni/PictureSet.h
+++ b/Source/WebKit/android/jni/PictureSet.h
@@ -56,15 +56,25 @@ namespace android {
PictureSet(const PictureSet& src) { set(src); }
virtual ~PictureSet();
void add(const SkRegion& area, SkPicture* picture,
- uint32_t elapsed, bool split)
+ uint32_t elapsed, bool split)
{
- add(area, picture, elapsed, split, emptyPicture(picture));
+ if (area.isRect()) {
+ add(area, picture, elapsed, split, false);
+ } else {
+ SkRegion::Iterator cliperator(area);
+ while (!cliperator.done()) {
+ SkIRect ir = cliperator.rect();
+ SkRegion newArea;
+ newArea.setRect(ir);
+ add(newArea, picture, elapsed, split, false);
+ cliperator.next();
+ }
+ }
}
void add(const SkRegion& area, SkPicture* picture,
uint32_t elapsed, bool split, bool empty);
const SkIRect& bounds(size_t i) const {
return mPictures[i].mArea.getBounds(); }
- bool build();
// Update mWidth/mHeight, and adds any additional inval region
void checkDimensions(int width, int height, SkRegion* inval);
void clear();
@@ -94,6 +104,8 @@ namespace android {
bool mBase : 8; // true if nothing is drawn underneath this
bool mEmpty : 8; // true if the picture only draws white
};
+ float mBaseArea;
+ float mAdditionalArea;
void add(const Pictures* temp);
WTF::Vector<Pictures> mPictures;
int mHeight;