OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 #include "Test.h" | 8 #include "Test.h" |
9 #include "SkColor.h" | 9 #include "SkColor.h" |
10 #include "SkColorPriv.h" | 10 #include "SkColorPriv.h" |
11 #include "SkColorFilter.h" | 11 #include "SkColorFilter.h" |
12 #include "SkLumaColorFilter.h" | 12 #include "SkLumaColorFilter.h" |
13 #include "SkRandom.h" | 13 #include "SkRandom.h" |
14 #include "SkXfermode.h" | 14 #include "SkXfermode.h" |
15 #include "SkOrderedReadBuffer.h" | 15 #include "SkOrderedReadBuffer.h" |
16 #include "SkOrderedWriteBuffer.h" | 16 #include "SkOrderedWriteBuffer.h" |
17 | 17 |
18 static SkFlattenable* reincarnate_flattenable(SkFlattenable* obj) { | 18 static SkColorFilter* reincarnate_colorfilter(SkFlattenable* obj) { |
19 SkOrderedWriteBuffer wb(1024); | 19 SkOrderedWriteBuffer wb(1024); |
20 wb.writeFlattenable(obj); | 20 wb.writeFlattenable(obj); |
21 | 21 |
22 size_t size = wb.size(); | 22 size_t size = wb.size(); |
23 SkAutoSMalloc<1024> storage(size); | 23 SkAutoSMalloc<1024> storage(size); |
24 // make a copy into storage | 24 // make a copy into storage |
25 wb.writeToMemory(storage.get()); | 25 wb.writeToMemory(storage.get()); |
26 | 26 |
27 SkOrderedReadBuffer rb(storage.get(), size); | 27 SkOrderedReadBuffer rb(storage.get(), size); |
28 return rb.readFlattenable(); | 28 return rb.readColorFilter(); |
29 } | |
30 | |
31 template <typename T> T* reincarnate(T* obj) { | |
32 return (T*)reincarnate_flattenable(obj); | |
33 } | 29 } |
34 | 30 |
35 /////////////////////////////////////////////////////////////////////////////// | 31 /////////////////////////////////////////////////////////////////////////////// |
36 | 32 |
37 #define ILLEGAL_MODE ((SkXfermode::Mode)-1) | 33 #define ILLEGAL_MODE ((SkXfermode::Mode)-1) |
38 | 34 |
39 static void test_asColorMode(skiatest::Reporter* reporter) { | 35 static void test_asColorMode(skiatest::Reporter* reporter) { |
40 SkRandom rand; | 36 SkRandom rand; |
41 | 37 |
42 for (int mode = 0; mode <= SkXfermode::kLastMode; mode++) { | 38 for (int mode = 0; mode <= SkXfermode::kLastMode; mode++) { |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 expectedMode = SkXfermode::kSrc_Mode; | 71 expectedMode = SkXfermode::kSrc_Mode; |
76 } | 72 } |
77 } | 73 } |
78 | 74 |
79 // SkDebugf("--- got [%d %x] expected [%d %x]\n", m, c, expectedMode, exp
ectedColor); | 75 // SkDebugf("--- got [%d %x] expected [%d %x]\n", m, c, expectedMode, exp
ectedColor); |
80 | 76 |
81 REPORTER_ASSERT(reporter, c == expectedColor); | 77 REPORTER_ASSERT(reporter, c == expectedColor); |
82 REPORTER_ASSERT(reporter, m == expectedMode); | 78 REPORTER_ASSERT(reporter, m == expectedMode); |
83 | 79 |
84 { | 80 { |
85 SkColorFilter* cf2 = reincarnate(cf); | 81 SkColorFilter* cf2 = reincarnate_colorfilter(cf); |
86 SkAutoUnref aur2(cf2); | 82 SkAutoUnref aur2(cf2); |
87 REPORTER_ASSERT(reporter, cf2); | 83 REPORTER_ASSERT(reporter, cf2); |
88 | 84 |
89 SkColor c2 = ~color; | 85 SkColor c2 = ~color; |
90 SkXfermode::Mode m2 = ILLEGAL_MODE; | 86 SkXfermode::Mode m2 = ILLEGAL_MODE; |
91 REPORTER_ASSERT(reporter, cf2->asColorMode(&c2, &m2)); | 87 REPORTER_ASSERT(reporter, cf2->asColorMode(&c2, &m2)); |
92 REPORTER_ASSERT(reporter, c2 == expectedColor); | 88 REPORTER_ASSERT(reporter, c2 == expectedColor); |
93 REPORTER_ASSERT(reporter, m2 == expectedMode); | 89 REPORTER_ASSERT(reporter, m2 == expectedMode); |
94 } | 90 } |
95 } | 91 } |
(...skipping 30 matching lines...) Expand all Loading... |
126 REPORTER_ASSERT(reporter, SkGetPackedA32(out) <= i); | 122 REPORTER_ASSERT(reporter, SkGetPackedA32(out) <= i); |
127 REPORTER_ASSERT(reporter, SkGetPackedR32(out) == 0); | 123 REPORTER_ASSERT(reporter, SkGetPackedR32(out) == 0); |
128 REPORTER_ASSERT(reporter, SkGetPackedG32(out) == 0); | 124 REPORTER_ASSERT(reporter, SkGetPackedG32(out) == 0); |
129 REPORTER_ASSERT(reporter, SkGetPackedB32(out) == 0); | 125 REPORTER_ASSERT(reporter, SkGetPackedB32(out) == 0); |
130 } | 126 } |
131 } | 127 } |
132 | 128 |
133 #include "TestClassDef.h" | 129 #include "TestClassDef.h" |
134 DEFINE_TESTCLASS("ColorFilter", ColorFilterTestClass, test_asColorMode) | 130 DEFINE_TESTCLASS("ColorFilter", ColorFilterTestClass, test_asColorMode) |
135 DEFINE_TESTCLASS("LumaColorFilter", LumaColorFilterTestClass, test_lumaColorFilt
er) | 131 DEFINE_TESTCLASS("LumaColorFilter", LumaColorFilterTestClass, test_lumaColorFilt
er) |
OLD | NEW |