Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: tests/ColorFilterTest.cpp

Issue 26702002: force readbuffer clients to use specialized readFoo for flattenables (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/pipe/SkGPipeRead.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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)
OLDNEW
« no previous file with comments | « src/pipe/SkGPipeRead.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698