aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SkCanvas.cpp1
-rw-r--r--src/core/SkClipOpPriv.h22
-rw-r--r--src/core/SkClipStack.cpp15
-rw-r--r--src/core/SkPictureCommon.h2
-rw-r--r--src/core/SkPictureFlat.h2
-rw-r--r--src/core/SkPictureRecord.cpp1
-rw-r--r--src/core/SkRecordDraw.cpp6
7 files changed, 37 insertions, 12 deletions
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 430556db7e..f8069ee2d3 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -48,6 +48,7 @@
#include "SkGrPriv.h"
#endif
+#include "SkClipOpPriv.h"
#define RETURN_ON_NULL(ptr) do { if (nullptr == (ptr)) return; } while (0)
diff --git a/src/core/SkClipOpPriv.h b/src/core/SkClipOpPriv.h
new file mode 100644
index 0000000000..5de8449399
--- /dev/null
+++ b/src/core/SkClipOpPriv.h
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2016 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SkClipOpPriv_DEFINED
+#define SkClipOpPriv_DEFINED
+
+#include "SkClipOp.h"
+
+#ifndef SK_SUPPORT_LEGACY_CLIPOPS_PLAIN_ENUM
+const SkClipOp kDifference_SkClipOp = SkClipOp::kDifference;
+const SkClipOp kIntersect_SkClipOp = SkClipOp::kIntersect;
+const SkClipOp kUnion_SkClipOp = SkClipOp::kUnion;
+const SkClipOp kXOR_SkClipOp = SkClipOp::kXOR;
+const SkClipOp kReverseDifference_SkClipOp = SkClipOp::kReverseDifference;
+const SkClipOp kReplace_SkClipOp = SkClipOp::kReplace;
+#endif
+
+#endif
diff --git a/src/core/SkClipStack.cpp b/src/core/SkClipStack.cpp
index 1a1e85f4c5..c7d5359760 100644
--- a/src/core/SkClipStack.cpp
+++ b/src/core/SkClipStack.cpp
@@ -10,6 +10,7 @@
#include "SkClipStack.h"
#include "SkPath.h"
#include "SkPathOps.h"
+#include "SkClipOpPriv.h"
#include <new>
@@ -951,16 +952,16 @@ void SkClipStack::Element::dump() const {
"reverse-difference",
"replace",
};
- static_assert(0 == kDifference_SkClipOp, "op_str");
- static_assert(1 == kIntersect_SkClipOp, "op_str");
- static_assert(2 == kUnion_SkClipOp, "op_str");
- static_assert(3 == kXOR_SkClipOp, "op_str");
- static_assert(4 == kReverseDifference_SkClipOp, "op_str");
- static_assert(5 == kReplace_SkClipOp, "op_str");
+ static_assert(0 == static_cast<int>(kDifference_SkClipOp), "op_str");
+ static_assert(1 == static_cast<int>(kIntersect_SkClipOp), "op_str");
+ static_assert(2 == static_cast<int>(kUnion_SkClipOp), "op_str");
+ static_assert(3 == static_cast<int>(kXOR_SkClipOp), "op_str");
+ static_assert(4 == static_cast<int>(kReverseDifference_SkClipOp), "op_str");
+ static_assert(5 == static_cast<int>(kReplace_SkClipOp), "op_str");
static_assert(SK_ARRAY_COUNT(kOpStrings) == SkRegion::kOpCnt, "op_str");
SkDebugf("Type: %s, Op: %s, AA: %s, Save Count: %d\n", kTypeStrings[fType],
- kOpStrings[fOp], (fDoAA ? "yes" : "no"), fSaveCount);
+ kOpStrings[static_cast<int>(fOp)], (fDoAA ? "yes" : "no"), fSaveCount);
switch (fType) {
case kEmpty_Type:
SkDebugf("\n");
diff --git a/src/core/SkPictureCommon.h b/src/core/SkPictureCommon.h
index 9b0a2f7c04..51724afcb5 100644
--- a/src/core/SkPictureCommon.h
+++ b/src/core/SkPictureCommon.h
@@ -119,7 +119,7 @@ struct SkPathCounter {
void operator()(const SkRecords::ClipPath& op) {
// TODO: does the SkRegion op matter?
- if (op.opAA.aa && !op.path.isConvex()) {
+ if (op.opAA.aa() && !op.path.isConvex()) {
fNumSlowPathsAndDashEffects++;
}
}
diff --git a/src/core/SkPictureFlat.h b/src/core/SkPictureFlat.h
index d5263ca80b..1ac91b7ab5 100644
--- a/src/core/SkPictureFlat.h
+++ b/src/core/SkPictureFlat.h
@@ -130,7 +130,7 @@ enum SaveLayerRecFlatFlags {
static inline uint32_t ClipParams_pack(SkClipOp op, bool doAA) {
unsigned doAABit = doAA ? 1 : 0;
- return (doAABit << 4) | op;
+ return (doAABit << 4) | static_cast<int>(op);
}
static inline SkClipOp ClipParams_unpackRegionOp(uint32_t packed) {
diff --git a/src/core/SkPictureRecord.cpp b/src/core/SkPictureRecord.cpp
index a0ac76d7a6..98677dd5eb 100644
--- a/src/core/SkPictureRecord.cpp
+++ b/src/core/SkPictureRecord.cpp
@@ -13,6 +13,7 @@
#include "SkRSXform.h"
#include "SkTextBlob.h"
#include "SkTSearch.h"
+#include "SkClipOpPriv.h"
#define HEAP_BLOCK_SIZE 4096
diff --git a/src/core/SkRecordDraw.cpp b/src/core/SkRecordDraw.cpp
index 05261bb59f..fe39cf2aeb 100644
--- a/src/core/SkRecordDraw.cpp
+++ b/src/core/SkRecordDraw.cpp
@@ -85,9 +85,9 @@ DRAW(SetMatrix, setMatrix(SkMatrix::Concat(fInitialCTM, r.matrix)));
DRAW(Concat, concat(r.matrix));
DRAW(Translate, translate(r.dx, r.dy));
-DRAW(ClipPath, clipPath(r.path, r.opAA.op, r.opAA.aa));
-DRAW(ClipRRect, clipRRect(r.rrect, r.opAA.op, r.opAA.aa));
-DRAW(ClipRect, clipRect(r.rect, r.opAA.op, r.opAA.aa));
+DRAW(ClipPath, clipPath(r.path, r.opAA.op(), r.opAA.aa()));
+DRAW(ClipRRect, clipRRect(r.rrect, r.opAA.op(), r.opAA.aa()));
+DRAW(ClipRect, clipRect(r.rect, r.opAA.op(), r.opAA.aa()));
DRAW(ClipRegion, clipRegion(r.region, r.op));
#ifdef SK_EXPERIMENTAL_SHADOWING