| 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 |