aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar scroggo <scroggo@google.com>2016-01-04 07:16:32 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-01-04 07:16:32 -0800
commitffe031e65cda3f52e057dd7aafbc9407c25cbf8d (patch)
tree6551dc3aa92a50a50af76fd3b769ae721408f7e0
parent03f896810677bf648d110123ebaf6a8a7af2a667 (diff)
Add conversion from SaveLayerFlags to SaveFlags
-rw-r--r--include/core/SkCanvas.h5
-rw-r--r--src/core/SkCanvas.cpp12
2 files changed, 17 insertions, 0 deletions
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
index d36b9918e4..d046b8ef4c 100644
--- a/include/core/SkCanvas.h
+++ b/include/core/SkCanvas.h
@@ -1353,6 +1353,11 @@ protected:
bool clipRectBounds(const SkRect* bounds, SaveLayerFlags, SkIRect* intersection,
const SkImageFilter* imageFilter = NULL);
+#ifdef SK_SUPPORT_LEGACY_SAVEFLAGS
+ // Needed by SkiaCanvasProxy in Android. Make sure that class is updated
+ // before removing this method.
+ static uint32_t SaveLayerFlagsToSaveFlags(SaveLayerFlags);
+#endif
private:
static bool BoundsAffectsClip(SaveLayerFlags);
#ifdef SK_SUPPORT_LEGACY_SAVEFLAGS
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index a76f5a3b9f..e5ca9ce6c1 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1134,6 +1134,18 @@ uint32_t SkCanvas::SaveFlagsToSaveLayerFlags(SaveFlags flags) {
}
return layerFlags;
}
+
+uint32_t SkCanvas::SaveLayerFlagsToSaveFlags(SaveLayerFlags layerFlags) {
+ uint32_t saveFlags = 0;
+
+ if (0 == (layerFlags & kDontClipToLayer_PrivateSaveLayerFlag)) {
+ saveFlags |= kClipToLayer_SaveFlag;
+ }
+ if (0 == (layerFlags & kIsOpaque_SaveLayerFlag)) {
+ saveFlags |= kHasAlphaLayer_SaveFlag;
+ }
+ return saveFlags;
+}
#endif
int SkCanvas::saveLayer(const SkRect* bounds, const SkPaint* paint) {