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

Side by Side Diff: skia/ext/analysis_canvas_unittest.cc

Issue 851503003: Update from https://crrev.com/311076 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 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
« no previous file with comments | « skia/ext/analysis_canvas.cc ('k') | skia/ext/benchmarking_canvas.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/compiler_specific.h" 5 #include "base/compiler_specific.h"
6 #include "skia/ext/analysis_canvas.h" 6 #include "skia/ext/analysis_canvas.h"
7 #include "skia/ext/refptr.h" 7 #include "skia/ext/refptr.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "third_party/skia/include/core/SkPicture.h" 9 #include "third_party/skia/include/core/SkPicture.h"
10 #include "third_party/skia/include/core/SkPictureRecorder.h" 10 #include "third_party/skia/include/core/SkPictureRecorder.h"
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 } 192 }
193 193
194 TEST(AnalysisCanvasTest, ClipPath) { 194 TEST(AnalysisCanvasTest, ClipPath) {
195 skia::AnalysisCanvas canvas(255, 255); 195 skia::AnalysisCanvas canvas(255, 255);
196 196
197 // Skia will look for paths that are actually rects and treat 197 // Skia will look for paths that are actually rects and treat
198 // them as such. We add a divot to the following path to prevent 198 // them as such. We add a divot to the following path to prevent
199 // this optimization and truly test clipPath's behavior. 199 // this optimization and truly test clipPath's behavior.
200 SkPath path; 200 SkPath path;
201 path.moveTo(0, 0); 201 path.moveTo(0, 0);
202 path.lineTo(128, 50); 202 path.lineTo(128, 50);
203 path.lineTo(255, 0); 203 path.lineTo(255, 0);
204 path.lineTo(255, 255); 204 path.lineTo(255, 255);
205 path.lineTo(0, 255); 205 path.lineTo(0, 255);
206 206
207 SkColor outputColor; 207 SkColor outputColor;
208 SolidColorFill(canvas); 208 SolidColorFill(canvas);
209 canvas.clipPath(path); 209 canvas.clipPath(path);
210 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 210 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
211 211
212 canvas.save(); 212 canvas.save();
213 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 213 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
214 214
215 canvas.clipPath(path); 215 canvas.clipPath(path);
216 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 216 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
217 217
218 canvas.restore(); 218 canvas.restore();
219 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 219 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
220 220
221 SolidColorFill(canvas); 221 SolidColorFill(canvas);
222 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 222 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
223 } 223 }
224 224
225 TEST(AnalysisCanvasTest, SaveLayerRestore) { 225 TEST(AnalysisCanvasTest, SaveLayerRestore) {
226 skia::AnalysisCanvas canvas(255, 255); 226 skia::AnalysisCanvas canvas(255, 255);
227 227
228 SkColor outputColor; 228 SkColor outputColor;
229 SolidColorFill(canvas); 229 SolidColorFill(canvas);
230 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor)); 230 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor));
231 231
232 SkRect bounds = SkRect::MakeWH(255, 255); 232 SkRect bounds = SkRect::MakeWH(255, 255);
233 SkPaint paint; 233 SkPaint paint;
234 paint.setColor(SkColorSetARGB(255, 255, 255, 255)); 234 paint.setColor(SkColorSetARGB(255, 255, 255, 255));
235 paint.setXfermodeMode(SkXfermode::kSrcOver_Mode); 235 paint.setXfermodeMode(SkXfermode::kSrcOver_Mode);
236 236
237 // This should force non-transparency 237 // This should force non-transparency
238 canvas.saveLayer(&bounds, &paint); 238 canvas.saveLayer(&bounds, &paint);
239 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor)); 239 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor));
240 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor); 240 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor);
241 241
242 TransparentFill(canvas); 242 TransparentFill(canvas);
243 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 243 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
244 244
245 SolidColorFill(canvas); 245 SolidColorFill(canvas);
246 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor)); 246 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor));
247 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor); 247 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor);
248 248
249 paint.setXfermodeMode(SkXfermode::kDst_Mode); 249 paint.setXfermodeMode(SkXfermode::kDst_Mode);
250 250
251 // This should force non-solid color 251 // This should force non-solid color
252 canvas.saveLayer(&bounds, &paint); 252 canvas.saveLayer(&bounds, &paint);
253 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 253 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
254 254
255 TransparentFill(canvas); 255 TransparentFill(canvas);
256 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 256 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
257 257
258 SolidColorFill(canvas); 258 SolidColorFill(canvas);
259 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 259 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
260 260
261 canvas.restore(); 261 canvas.restore();
262 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 262 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
263 263
264 TransparentFill(canvas); 264 TransparentFill(canvas);
265 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 265 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
266 266
267 SolidColorFill(canvas); 267 SolidColorFill(canvas);
268 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor)); 268 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor));
269 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor); 269 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor);
270 270
271 canvas.restore(); 271 canvas.restore();
272 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor)); 272 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor));
273 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor); 273 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor);
274 274
275 TransparentFill(canvas); 275 TransparentFill(canvas);
276 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor)); 276 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor));
277 EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor); 277 EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor);
278 278
279 SolidColorFill(canvas); 279 SolidColorFill(canvas);
280 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor)); 280 EXPECT_TRUE(canvas.GetColorIfSolid(&outputColor));
281 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor); 281 EXPECT_NE(static_cast<SkColor>(SK_ColorTRANSPARENT), outputColor);
282 } 282 }
283 283
284 TEST(AnalysisCanvasTest, EarlyOutNotSolid) { 284 TEST(AnalysisCanvasTest, EarlyOutNotSolid) {
285 SkTileGridFactory::TileGridInfo tile_grid_info; 285 SkRTreeFactory factory;
286 tile_grid_info.fTileInterval.set(256, 256);
287 tile_grid_info.fOffset.setZero();
288 tile_grid_info.fMargin.setEmpty();
289 SkTileGridFactory factory(tile_grid_info);
290 SkPictureRecorder recorder; 286 SkPictureRecorder recorder;
291 287
292 // Create a picture with 3 commands, last of which is non-solid. 288 // Create a picture with 3 commands, last of which is non-solid.
293 skia::RefPtr<SkCanvas> record_canvas = 289 skia::RefPtr<SkCanvas> record_canvas =
294 skia::SharePtr(recorder.beginRecording(256, 256, &factory)); 290 skia::SharePtr(recorder.beginRecording(256, 256, &factory));
295 291
296 std::string text = "text"; 292 std::string text = "text";
297 SkPoint point = SkPoint::Make(SkIntToScalar(25), SkIntToScalar(25)); 293 SkPoint point = SkPoint::Make(SkIntToScalar(25), SkIntToScalar(25));
298 294
299 SkPaint paint; 295 SkPaint paint;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 342 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
347 343
348 canvas.restore(); 344 canvas.restore();
349 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 345 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
350 346
351 SolidColorFill(canvas); 347 SolidColorFill(canvas);
352 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor)); 348 EXPECT_FALSE(canvas.GetColorIfSolid(&outputColor));
353 } 349 }
354 350
355 } // namespace skia 351 } // namespace skia
OLDNEW
« no previous file with comments | « skia/ext/analysis_canvas.cc ('k') | skia/ext/benchmarking_canvas.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698