aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar tomhudson <tomhudson@google.com>2015-10-01 08:02:22 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-10-01 08:02:23 -0700
commit458633496cda2714f175a71e0500335b3681ff16 (patch)
tree610a2d6874df9edbc79f867a34ade022ebaba5f7
parent7a14b310d6c618fa2151d93a43b29f9599adc32a (diff)
Add overrides to SkAndroidSDKCanvas, update SkHwuiRenderer
We can not call android::uirenderer::DisplayListCanvas::reset() after the object has been constructed (due to an assert), so remove that call. Add two missing overrides to SkAndroidSDKCanvas: onDrawAtlas() and onDrawImageNine(). BUG=skia:4216 R=djsollen@google.com patch from issue 1377533003 at patchset 20001 (http://crrev.com/1377533003#ps20001) Review URL: https://codereview.chromium.org/1369923003
-rw-r--r--src/utils/android/SkAndroidSDKCanvas.cpp26
-rw-r--r--src/utils/android/SkAndroidSDKCanvas.h5
-rw-r--r--src/utils/android/SkHwuiRenderer.cpp1
3 files changed, 29 insertions, 3 deletions
diff --git a/src/utils/android/SkAndroidSDKCanvas.cpp b/src/utils/android/SkAndroidSDKCanvas.cpp
index 51064736a1..e6f802fc5b 100644
--- a/src/utils/android/SkAndroidSDKCanvas.cpp
+++ b/src/utils/android/SkAndroidSDKCanvas.cpp
@@ -248,12 +248,34 @@ void SkAndroidSDKCanvas::onDrawImageRect(const SkImage* image,
}
void SkAndroidSDKCanvas::onDrawPicture(const SkPicture* picture,
- const SkMatrix* matrix,
- const SkPaint* paint) {
+ const SkMatrix* matrix,
+ const SkPaint* paint) {
FILTER_PTR(paint);
fProxyTarget->drawPicture(picture, matrix, filteredPaint);
}
+void SkAndroidSDKCanvas::onDrawAtlas(const SkImage* atlas,
+ const SkRSXform xform[],
+ const SkRect tex[],
+ const SkColor colors[],
+ int count,
+ SkXfermode::Mode mode,
+ const SkRect* cullRect,
+ const SkPaint* paint) {
+ FILTER_PTR(paint);
+ fProxyTarget->drawAtlas(atlas, xform, tex, colors, count, mode, cullRect,
+ filteredPaint);
+}
+
+void SkAndroidSDKCanvas::onDrawImageNine(const SkImage* image,
+ const SkIRect& center,
+ const SkRect& dst,
+ const SkPaint* paint) {
+ FILTER_PTR(paint);
+ fProxyTarget->drawImageNine(image, center, dst, filteredPaint);
+}
+
+
void SkAndroidSDKCanvas::onDrawDrawable(SkDrawable* drawable, const SkMatrix* matrix) {
fProxyTarget->drawDrawable(drawable, matrix);
}
diff --git a/src/utils/android/SkAndroidSDKCanvas.h b/src/utils/android/SkAndroidSDKCanvas.h
index 73da861282..08b73f144c 100644
--- a/src/utils/android/SkAndroidSDKCanvas.h
+++ b/src/utils/android/SkAndroidSDKCanvas.h
@@ -75,6 +75,11 @@ protected:
void onDrawImageRect(const SkImage*, const SkRect*, const SkRect&, const SkPaint*,
SrcRectConstraint) override;
void onDrawPicture(const SkPicture*, const SkMatrix*, const SkPaint*);
+ void onDrawAtlas(const SkImage*, const SkRSXform[], const SkRect[],
+ const SkColor[], int count, SkXfermode::Mode,
+ const SkRect* cull, const SkPaint*) override;
+ void onDrawImageNine(const SkImage*, const SkIRect& center,
+ const SkRect& dst, const SkPaint*) override;
// PASS THROUGH
diff --git a/src/utils/android/SkHwuiRenderer.cpp b/src/utils/android/SkHwuiRenderer.cpp
index 4493be6baa..064801f94e 100644
--- a/src/utils/android/SkHwuiRenderer.cpp
+++ b/src/utils/android/SkHwuiRenderer.cpp
@@ -61,7 +61,6 @@ void SkHwuiRenderer::initialize(SkISize size) {
}
SkCanvas* SkHwuiRenderer::prepareToDraw() {
- this->canvas->reset(size.width(), size.height());
this->canvas->clipRect(0, 0, this->size.width(), this->size.height(),
SkRegion::Op::kReplace_Op);
return this->canvas->asSkCanvas();