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" |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 } | 139 } |
140 } | 140 } |
141 | 141 |
142 /** | 142 /** |
143 This test fails: SkFourByteInterp does *not* preserve opaque destinations. | 143 This test fails: SkFourByteInterp does *not* preserve opaque destinations. |
144 SkAlpha255To256 implemented as (alpha + 1) is faster than | 144 SkAlpha255To256 implemented as (alpha + 1) is faster than |
145 (alpha + (alpha >> 7)), but inaccurate, and Skia intends to phase it out. | 145 (alpha + (alpha >> 7)), but inaccurate, and Skia intends to phase it out. |
146 */ | 146 */ |
147 /* | 147 /* |
148 static void test_interp(skiatest::Reporter* reporter) { | 148 static void test_interp(skiatest::Reporter* reporter) { |
149 SkMWCRandom r; | 149 SkRandom r; |
150 | 150 |
151 U8CPU a0 = 0; | 151 U8CPU a0 = 0; |
152 U8CPU a255 = 255; | 152 U8CPU a255 = 255; |
153 for (int i = 0; i < 200; i++) { | 153 for (int i = 0; i < 200; i++) { |
154 SkColor colorSrc = r.nextU(); | 154 SkColor colorSrc = r.nextU(); |
155 SkColor colorDst = r.nextU(); | 155 SkColor colorDst = r.nextU(); |
156 SkPMColor src = SkPreMultiplyColor(colorSrc); | 156 SkPMColor src = SkPreMultiplyColor(colorSrc); |
157 SkPMColor dst = SkPreMultiplyColor(colorDst); | 157 SkPMColor dst = SkPreMultiplyColor(colorDst); |
158 | 158 |
159 REPORTER_ASSERT(reporter, SkFourByteInterp(src, dst, a0) == dst); | 159 REPORTER_ASSERT(reporter, SkFourByteInterp(src, dst, a0) == dst); |
160 REPORTER_ASSERT(reporter, SkFourByteInterp(src, dst, a255) == src); | 160 REPORTER_ASSERT(reporter, SkFourByteInterp(src, dst, a255) == src); |
161 } | 161 } |
162 } | 162 } |
163 */ | 163 */ |
164 | 164 |
165 static inline void test_fast_interp(skiatest::Reporter* reporter) { | 165 static inline void test_fast_interp(skiatest::Reporter* reporter) { |
166 SkMWCRandom r; | 166 SkRandom r; |
167 | 167 |
168 U8CPU a0 = 0; | 168 U8CPU a0 = 0; |
169 U8CPU a255 = 255; | 169 U8CPU a255 = 255; |
170 for (int i = 0; i < 200; i++) { | 170 for (int i = 0; i < 200; i++) { |
171 SkColor colorSrc = r.nextU(); | 171 SkColor colorSrc = r.nextU(); |
172 SkColor colorDst = r.nextU(); | 172 SkColor colorDst = r.nextU(); |
173 SkPMColor src = SkPreMultiplyColor(colorSrc); | 173 SkPMColor src = SkPreMultiplyColor(colorSrc); |
174 SkPMColor dst = SkPreMultiplyColor(colorDst); | 174 SkPMColor dst = SkPreMultiplyColor(colorDst); |
175 | 175 |
176 REPORTER_ASSERT(reporter, SkFastFourByteInterp(src, dst, a0) == dst); | 176 REPORTER_ASSERT(reporter, SkFastFourByteInterp(src, dst, a0) == dst); |
177 REPORTER_ASSERT(reporter, SkFastFourByteInterp(src, dst, a255) == src); | 177 REPORTER_ASSERT(reporter, SkFastFourByteInterp(src, dst, a255) == src); |
178 } | 178 } |
179 } | 179 } |
180 | 180 |
181 static void TestColor(skiatest::Reporter* reporter) { | 181 static void TestColor(skiatest::Reporter* reporter) { |
182 test_premul(reporter); | 182 test_premul(reporter); |
183 //test_interp(reporter); | 183 //test_interp(reporter); |
184 test_fast_interp(reporter); | 184 test_fast_interp(reporter); |
185 // test_565blend(); | 185 // test_565blend(); |
186 } | 186 } |
187 | 187 |
188 #include "TestClassDef.h" | 188 #include "TestClassDef.h" |
189 DEFINE_TESTCLASS("Color", ColorTestClass, TestColor) | 189 DEFINE_TESTCLASS("Color", ColorTestClass, TestColor) |
OLD | NEW |