aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/PaintTest.cpp
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-04-16 12:58:02 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-04-16 12:58:02 +0000
commit85faf50875fcf6008880a98aaa05d12ae8dad343 (patch)
tree13c16498ac9084aa5da8339b8ff05146c22c6fac /tests/PaintTest.cpp
parent001f4ed2fb62ecdc98ce2884d925de11b7516d23 (diff)
remove legacy filter-flags, and store FilterLevel directly
BUG=skia: R=robertphillips@google.com, humper@google.com, jvanverth@google.com, mtklein@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/239393002 git-svn-id: http://skia.googlecode.com/svn/trunk@14217 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests/PaintTest.cpp')
-rw-r--r--tests/PaintTest.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/PaintTest.cpp b/tests/PaintTest.cpp
index cfbe23aa6f..98110e0d8d 100644
--- a/tests/PaintTest.cpp
+++ b/tests/PaintTest.cpp
@@ -229,6 +229,76 @@ DEF_TEST(Paint_regression_cubic, reporter) {
REPORTER_ASSERT(reporter, maxR.contains(strokeR));
}
+DEF_TEST(Paint_flattening, reporter) {
+ const SkPaint::FilterLevel levels[] = {
+ SkPaint::kNone_FilterLevel,
+ SkPaint::kLow_FilterLevel,
+ SkPaint::kMedium_FilterLevel,
+ SkPaint::kHigh_FilterLevel,
+ };
+ const SkPaint::Hinting hinting[] = {
+ SkPaint::kNo_Hinting,
+ SkPaint::kSlight_Hinting,
+ SkPaint::kNormal_Hinting,
+ SkPaint::kFull_Hinting,
+ };
+ const SkPaint::Align align[] = {
+ SkPaint::kLeft_Align,
+ SkPaint::kCenter_Align,
+ SkPaint::kRight_Align
+ };
+ const SkPaint::Cap caps[] = {
+ SkPaint::kButt_Cap,
+ SkPaint::kRound_Cap,
+ SkPaint::kSquare_Cap,
+ };
+ const SkPaint::Join joins[] = {
+ SkPaint::kMiter_Join,
+ SkPaint::kRound_Join,
+ SkPaint::kBevel_Join,
+ };
+ const SkPaint::TextEncoding encodings[] = {
+ SkPaint::kUTF8_TextEncoding,
+ SkPaint::kUTF16_TextEncoding,
+ SkPaint::kUTF32_TextEncoding,
+ SkPaint::kGlyphID_TextEncoding,
+ };
+ const SkPaint::Style styles[] = {
+ SkPaint::kFill_Style,
+ SkPaint::kStroke_Style,
+ SkPaint::kStrokeAndFill_Style,
+ };
+
+#define FOR_SETUP(index, array, setter) \
+ for (size_t index = 0; index < SK_ARRAY_COUNT(array); ++index) { \
+ paint.setter(array[index]); \
+
+ SkPaint paint;
+ paint.setFlags(0x1234);
+
+ FOR_SETUP(i, levels, setFilterLevel)
+ FOR_SETUP(j, hinting, setHinting)
+ FOR_SETUP(k, align, setTextAlign)
+ FOR_SETUP(l, caps, setStrokeCap)
+ FOR_SETUP(m, joins, setStrokeJoin)
+ FOR_SETUP(n, encodings, setTextEncoding)
+ FOR_SETUP(p, styles, setStyle)
+
+ SkWriteBuffer writer;
+ paint.flatten(writer);
+
+ const uint32_t* written = writer.getWriter32()->contiguousArray();
+ SkReadBuffer reader(written, writer.bytesWritten());
+
+ SkPaint paint2;
+ paint2.unflatten(reader);
+ REPORTER_ASSERT(reporter, paint2 == paint);
+
+ }}}}}}}
+#undef FOR_SETUP
+
+}
+
// found and fixed for android: not initializing rect for string's of length 0
DEF_TEST(Paint_regression_measureText, reporter) {