| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <stdint.h> | 5 #include <stdint.h> |
| 6 | 6 |
| 7 #include "base/compiler_specific.h" | 7 #include "base/compiler_specific.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "cc/test/geometry_test_utils.h" | 9 #include "cc/test/geometry_test_utils.h" |
| 10 #include "skia/ext/pixel_ref_utils.h" | 10 #include "skia/ext/pixel_ref_utils.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 recorder->beginRecording(layer_rect.width(), layer_rect.height()); | 51 recorder->beginRecording(layer_rect.width(), layer_rect.height()); |
| 52 | 52 |
| 53 canvas->save(); | 53 canvas->save(); |
| 54 canvas->translate(-layer_rect.x(), -layer_rect.y()); | 54 canvas->translate(-layer_rect.x(), -layer_rect.y()); |
| 55 canvas->clipRect(SkRect::MakeXYWH( | 55 canvas->clipRect(SkRect::MakeXYWH( |
| 56 layer_rect.x(), layer_rect.y(), layer_rect.width(), layer_rect.height())); | 56 layer_rect.x(), layer_rect.y(), layer_rect.width(), layer_rect.height())); |
| 57 | 57 |
| 58 return canvas; | 58 return canvas; |
| 59 } | 59 } |
| 60 | 60 |
| 61 SkPicture* StopRecording(SkPictureRecorder* recorder, SkCanvas* canvas) { | 61 sk_sp<SkPicture> StopRecording(SkPictureRecorder* recorder, SkCanvas* canvas) { |
| 62 canvas->restore(); | 62 canvas->restore(); |
| 63 return recorder->endRecordingAsPicture(); | 63 return recorder->finishRecordingAsPicture(); |
| 64 } | 64 } |
| 65 | 65 |
| 66 } // namespace | 66 } // namespace |
| 67 | 67 |
| 68 void VerifyScales(SkScalar x_scale, | 68 void VerifyScales(SkScalar x_scale, |
| 69 SkScalar y_scale, | 69 SkScalar y_scale, |
| 70 const SkMatrix& matrix, | 70 const SkMatrix& matrix, |
| 71 int source_line) { | 71 int source_line) { |
| 72 SkSize scales; | 72 SkSize scales; |
| 73 bool success = matrix.decomposeScale(&scales); | 73 bool success = matrix.decomposeScale(&scales); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 97 | 97 |
| 98 canvas->save(); | 98 canvas->save(); |
| 99 canvas->scale(2.f, 3.f); | 99 canvas->scale(2.f, 3.f); |
| 100 canvas->drawPaint(second_paint); | 100 canvas->drawPaint(second_paint); |
| 101 canvas->restore(); | 101 canvas->restore(); |
| 102 | 102 |
| 103 // Total clip is now (34, 45, 56, 55) | 103 // Total clip is now (34, 45, 56, 55) |
| 104 canvas->clipRect(SkRect::MakeWH(100, 100)); | 104 canvas->clipRect(SkRect::MakeWH(100, 100)); |
| 105 canvas->drawPaint(third_paint); | 105 canvas->drawPaint(third_paint); |
| 106 | 106 |
| 107 skia::RefPtr<SkPicture> picture = | 107 sk_sp<SkPicture> picture = StopRecording(&recorder, canvas); |
| 108 skia::AdoptRef(StopRecording(&recorder, canvas)); | |
| 109 | 108 |
| 110 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; | 109 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 111 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); | 110 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 112 | 111 |
| 113 EXPECT_EQ(4u, pixel_refs.size()); | 112 EXPECT_EQ(4u, pixel_refs.size()); |
| 114 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 256, 256), | 113 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 256, 256), |
| 115 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); | 114 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 116 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); | 115 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); |
| 117 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); | 116 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 118 EXPECT_FLOAT_RECT_EQ(gfx::RectF(34, 45, 56, 67), | 117 EXPECT_FLOAT_RECT_EQ(gfx::RectF(34, 45, 56, 67), |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 canvas->drawPoints(SkCanvas::kPolygon_PointMode, 3, points, second_paint); | 156 canvas->drawPoints(SkCanvas::kPolygon_PointMode, 3, points, second_paint); |
| 158 | 157 |
| 159 canvas->restore(); | 158 canvas->restore(); |
| 160 | 159 |
| 161 points[0].set(50, 55); | 160 points[0].set(50, 55); |
| 162 points[1].set(50, 55); | 161 points[1].set(50, 55); |
| 163 points[2].set(200, 200); | 162 points[2].set(200, 200); |
| 164 // (50, 55, 150, 145). | 163 // (50, 55, 150, 145). |
| 165 canvas->drawPoints(SkCanvas::kPolygon_PointMode, 3, points, third_paint); | 164 canvas->drawPoints(SkCanvas::kPolygon_PointMode, 3, points, third_paint); |
| 166 | 165 |
| 167 skia::RefPtr<SkPicture> picture = | 166 sk_sp<SkPicture> picture = StopRecording(&recorder, canvas); |
| 168 skia::AdoptRef(StopRecording(&recorder, canvas)); | |
| 169 | 167 |
| 170 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; | 168 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 171 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); | 169 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 172 | 170 |
| 173 EXPECT_EQ(3u, pixel_refs.size()); | 171 EXPECT_EQ(3u, pixel_refs.size()); |
| 174 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 10, 90, 90), | 172 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 10, 90, 90), |
| 175 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); | 173 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 176 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); | 174 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); |
| 177 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); | 175 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 178 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 10, 90, 90), | 176 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 10, 90, 90), |
| (...skipping 30 matching lines...) Expand all Loading... |
| 209 // (5, 50, 25, 35) | 207 // (5, 50, 25, 35) |
| 210 canvas->drawRect(SkRect::MakeXYWH(0, 33, 25, 35), second_paint); | 208 canvas->drawRect(SkRect::MakeXYWH(0, 33, 25, 35), second_paint); |
| 211 | 209 |
| 212 canvas->restore(); | 210 canvas->restore(); |
| 213 | 211 |
| 214 canvas->clipRect(SkRect::MakeXYWH(50, 50, 50, 50)); | 212 canvas->clipRect(SkRect::MakeXYWH(50, 50, 50, 50)); |
| 215 canvas->translate(20, 20); | 213 canvas->translate(20, 20); |
| 216 // (20, 20, 100, 100) | 214 // (20, 20, 100, 100) |
| 217 canvas->drawRect(SkRect::MakeXYWH(0, 0, 100, 100), third_paint); | 215 canvas->drawRect(SkRect::MakeXYWH(0, 0, 100, 100), third_paint); |
| 218 | 216 |
| 219 skia::RefPtr<SkPicture> picture = | 217 sk_sp<SkPicture> picture = StopRecording(&recorder, canvas); |
| 220 skia::AdoptRef(StopRecording(&recorder, canvas)); | |
| 221 | 218 |
| 222 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; | 219 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 223 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); | 220 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 224 | 221 |
| 225 EXPECT_EQ(3u, pixel_refs.size()); | 222 EXPECT_EQ(3u, pixel_refs.size()); |
| 226 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 20, 30, 40), | 223 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 20, 30, 40), |
| 227 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); | 224 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 228 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); | 225 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); |
| 229 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); | 226 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 230 EXPECT_FLOAT_RECT_EQ(gfx::RectF(5, 50, 25, 35), | 227 EXPECT_FLOAT_RECT_EQ(gfx::RectF(5, 50, 25, 35), |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 canvas->drawRRect(rrect, second_paint); | 263 canvas->drawRRect(rrect, second_paint); |
| 267 | 264 |
| 268 canvas->restore(); | 265 canvas->restore(); |
| 269 | 266 |
| 270 canvas->clipRect(SkRect::MakeXYWH(50, 50, 50, 50)); | 267 canvas->clipRect(SkRect::MakeXYWH(50, 50, 50, 50)); |
| 271 canvas->translate(20, 20); | 268 canvas->translate(20, 20); |
| 272 rrect.setRect(SkRect::MakeXYWH(0, 0, 100, 100)); | 269 rrect.setRect(SkRect::MakeXYWH(0, 0, 100, 100)); |
| 273 // (20, 20, 100, 100) | 270 // (20, 20, 100, 100) |
| 274 canvas->drawRRect(rrect, third_paint); | 271 canvas->drawRRect(rrect, third_paint); |
| 275 | 272 |
| 276 skia::RefPtr<SkPicture> picture = | 273 sk_sp<SkPicture> picture = StopRecording(&recorder, canvas); |
| 277 skia::AdoptRef(StopRecording(&recorder, canvas)); | |
| 278 | 274 |
| 279 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; | 275 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 280 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); | 276 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 281 | 277 |
| 282 EXPECT_EQ(3u, pixel_refs.size()); | 278 EXPECT_EQ(3u, pixel_refs.size()); |
| 283 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 20, 30, 40), | 279 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 20, 30, 40), |
| 284 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); | 280 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 285 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); | 281 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); |
| 286 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); | 282 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 287 EXPECT_FLOAT_RECT_EQ(gfx::RectF(5, 50, 25, 35), | 283 EXPECT_FLOAT_RECT_EQ(gfx::RectF(5, 50, 25, 35), |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 // (1, 35, 25, 35) | 318 // (1, 35, 25, 35) |
| 323 canvas->drawRect(SkRect::MakeXYWH(0, 33, 25, 35), second_paint); | 319 canvas->drawRect(SkRect::MakeXYWH(0, 33, 25, 35), second_paint); |
| 324 | 320 |
| 325 canvas->restore(); | 321 canvas->restore(); |
| 326 | 322 |
| 327 canvas->clipRect(SkRect::MakeXYWH(50, 50, 50, 50)); | 323 canvas->clipRect(SkRect::MakeXYWH(50, 50, 50, 50)); |
| 328 canvas->translate(20, 20); | 324 canvas->translate(20, 20); |
| 329 // (20, 20, 100, 100). | 325 // (20, 20, 100, 100). |
| 330 canvas->drawRect(SkRect::MakeXYWH(0, 0, 100, 100), third_paint); | 326 canvas->drawRect(SkRect::MakeXYWH(0, 0, 100, 100), third_paint); |
| 331 | 327 |
| 332 skia::RefPtr<SkPicture> picture = | 328 sk_sp<SkPicture> picture = StopRecording(&recorder, canvas); |
| 333 skia::AdoptRef(StopRecording(&recorder, canvas)); | |
| 334 | 329 |
| 335 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; | 330 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 336 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); | 331 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 337 | 332 |
| 338 EXPECT_EQ(3u, pixel_refs.size()); | 333 EXPECT_EQ(3u, pixel_refs.size()); |
| 339 EXPECT_FLOAT_RECT_EQ(gfx::RectF(20, 10, 60, 20), | 334 EXPECT_FLOAT_RECT_EQ(gfx::RectF(20, 10, 60, 20), |
| 340 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); | 335 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 341 VerifyScales(2.f, 0.5f, pixel_refs[0].matrix, __LINE__); | 336 VerifyScales(2.f, 0.5f, pixel_refs[0].matrix, __LINE__); |
| 342 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); | 337 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 343 EXPECT_FLOAT_RECT_EQ(gfx::RectF(1, 35, 25, 35), | 338 EXPECT_FLOAT_RECT_EQ(gfx::RectF(1, 35, 25, 35), |
| (...skipping 28 matching lines...) Expand all Loading... |
| 372 | 367 |
| 373 canvas->save(); | 368 canvas->save(); |
| 374 canvas->clipRect(SkRect::MakeWH(50, 50)); | 369 canvas->clipRect(SkRect::MakeWH(50, 50)); |
| 375 | 370 |
| 376 // (12, 13, 38, 88), since clips are ignored as long as the shape is in the | 371 // (12, 13, 38, 88), since clips are ignored as long as the shape is in the |
| 377 // clip. | 372 // clip. |
| 378 canvas->drawPath(path, second_paint); | 373 canvas->drawPath(path, second_paint); |
| 379 | 374 |
| 380 canvas->restore(); | 375 canvas->restore(); |
| 381 | 376 |
| 382 skia::RefPtr<SkPicture> picture = | 377 sk_sp<SkPicture> picture = StopRecording(&recorder, canvas); |
| 383 skia::AdoptRef(StopRecording(&recorder, canvas)); | |
| 384 | 378 |
| 385 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; | 379 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 386 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); | 380 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 387 | 381 |
| 388 EXPECT_EQ(2u, pixel_refs.size()); | 382 EXPECT_EQ(2u, pixel_refs.size()); |
| 389 EXPECT_FLOAT_RECT_EQ(gfx::RectF(12, 13, 38, 88), | 383 EXPECT_FLOAT_RECT_EQ(gfx::RectF(12, 13, 38, 88), |
| 390 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); | 384 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 391 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); | 385 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); |
| 392 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); | 386 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 393 EXPECT_FLOAT_RECT_EQ(gfx::RectF(12, 13, 38, 88), | 387 EXPECT_FLOAT_RECT_EQ(gfx::RectF(12, 13, 38, 88), |
| (...skipping 21 matching lines...) Expand all Loading... |
| 415 path.moveTo(10, 50); | 409 path.moveTo(10, 50); |
| 416 path.lineTo(20, 50); | 410 path.lineTo(20, 50); |
| 417 path.lineTo(30, 50); | 411 path.lineTo(30, 50); |
| 418 path.lineTo(40, 50); | 412 path.lineTo(40, 50); |
| 419 path.lineTo(50, 50); | 413 path.lineTo(50, 50); |
| 420 | 414 |
| 421 canvas->drawText("text", 4, 50, 50, first_paint); | 415 canvas->drawText("text", 4, 50, 50, first_paint); |
| 422 canvas->drawPosText("text", 4, points, first_paint); | 416 canvas->drawPosText("text", 4, points, first_paint); |
| 423 canvas->drawTextOnPath("text", 4, path, NULL, first_paint); | 417 canvas->drawTextOnPath("text", 4, path, NULL, first_paint); |
| 424 | 418 |
| 425 skia::RefPtr<SkPicture> picture = | 419 sk_sp<SkPicture> picture = StopRecording(&recorder, canvas); |
| 426 skia::AdoptRef(StopRecording(&recorder, canvas)); | |
| 427 | 420 |
| 428 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; | 421 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 429 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); | 422 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 430 | 423 |
| 431 EXPECT_EQ(3u, pixel_refs.size()); | 424 EXPECT_EQ(3u, pixel_refs.size()); |
| 432 } | 425 } |
| 433 | 426 |
| 434 TEST(PixelRefUtilsTest, DrawVertices) { | 427 TEST(PixelRefUtilsTest, DrawVertices) { |
| 435 gfx::Rect layer_rect(0, 0, 256, 256); | 428 gfx::Rect layer_rect(0, 0, 256, 256); |
| 436 | 429 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 487 canvas->drawVertices(SkCanvas::kTriangles_VertexMode, | 480 canvas->drawVertices(SkCanvas::kTriangles_VertexMode, |
| 488 3, | 481 3, |
| 489 points, | 482 points, |
| 490 points, | 483 points, |
| 491 colors, | 484 colors, |
| 492 NULL, | 485 NULL, |
| 493 indecies, | 486 indecies, |
| 494 3, | 487 3, |
| 495 third_paint); | 488 third_paint); |
| 496 | 489 |
| 497 skia::RefPtr<SkPicture> picture = | 490 sk_sp<SkPicture> picture = StopRecording(&recorder, canvas); |
| 498 skia::AdoptRef(StopRecording(&recorder, canvas)); | |
| 499 | 491 |
| 500 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; | 492 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 501 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); | 493 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 502 | 494 |
| 503 EXPECT_EQ(3u, pixel_refs.size()); | 495 EXPECT_EQ(3u, pixel_refs.size()); |
| 504 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 10, 90, 90), | 496 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 10, 90, 90), |
| 505 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); | 497 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 506 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); | 498 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); |
| 507 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); | 499 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 508 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 10, 90, 90), | 500 EXPECT_FLOAT_RECT_EQ(gfx::RectF(10, 10, 90, 90), |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 | 548 |
| 557 canvas->restore(); | 549 canvas->restore(); |
| 558 | 550 |
| 559 canvas->rotate(27); | 551 canvas->rotate(27); |
| 560 canvas->scale(3.3f, 0.4f); | 552 canvas->scale(3.3f, 0.4f); |
| 561 | 553 |
| 562 canvas->drawImage(sixth.get(), 0, 0); | 554 canvas->drawImage(sixth.get(), 0, 0); |
| 563 | 555 |
| 564 canvas->restore(); | 556 canvas->restore(); |
| 565 | 557 |
| 566 skia::RefPtr<SkPicture> picture = | 558 sk_sp<SkPicture> picture = StopRecording(&recorder, canvas); |
| 567 skia::AdoptRef(StopRecording(&recorder, canvas)); | |
| 568 | 559 |
| 569 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; | 560 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 570 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); | 561 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 571 | 562 |
| 572 EXPECT_EQ(6u, pixel_refs.size()); | 563 EXPECT_EQ(6u, pixel_refs.size()); |
| 573 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 50, 50), | 564 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 50, 50), |
| 574 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); | 565 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 575 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); | 566 VerifyScales(1.f, 1.f, pixel_refs[0].matrix, __LINE__); |
| 576 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); | 567 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 577 EXPECT_FLOAT_RECT_EQ(gfx::RectF(25, 0, 50, 50), | 568 EXPECT_FLOAT_RECT_EQ(gfx::RectF(25, 0, 50, 50), |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 620 // (75, 50, 10, 10). | 611 // (75, 50, 10, 10). |
| 621 canvas->drawImageRect( | 612 canvas->drawImageRect( |
| 622 second.get(), SkRect::MakeXYWH(50, 50, 10, 10), &non_discardable_paint); | 613 second.get(), SkRect::MakeXYWH(50, 50, 10, 10), &non_discardable_paint); |
| 623 canvas->translate(5, 50); | 614 canvas->translate(5, 50); |
| 624 // (0, 30, 100, 100). One from bitmap, one from paint. | 615 // (0, 30, 100, 100). One from bitmap, one from paint. |
| 625 canvas->drawImageRect( | 616 canvas->drawImageRect( |
| 626 third.get(), SkRect::MakeXYWH(-30, -20, 100, 100), &first_paint); | 617 third.get(), SkRect::MakeXYWH(-30, -20, 100, 100), &first_paint); |
| 627 | 618 |
| 628 canvas->restore(); | 619 canvas->restore(); |
| 629 | 620 |
| 630 skia::RefPtr<SkPicture> picture = | 621 sk_sp<SkPicture> picture = StopRecording(&recorder, canvas); |
| 631 skia::AdoptRef(StopRecording(&recorder, canvas)); | |
| 632 | 622 |
| 633 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; | 623 std::vector<skia::PixelRefUtils::PositionPixelRef> pixel_refs; |
| 634 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); | 624 skia::PixelRefUtils::GatherDiscardablePixelRefs(picture.get(), &pixel_refs); |
| 635 | 625 |
| 636 EXPECT_EQ(4u, pixel_refs.size()); | 626 EXPECT_EQ(4u, pixel_refs.size()); |
| 637 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 100, 100), | 627 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 0, 100, 100), |
| 638 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); | 628 gfx::SkRectToRectF(pixel_refs[0].pixel_ref_rect)); |
| 639 VerifyScales(2.f, 2.f, pixel_refs[0].matrix, __LINE__); | 629 VerifyScales(2.f, 2.f, pixel_refs[0].matrix, __LINE__); |
| 640 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); | 630 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[0].filter_quality); |
| 641 EXPECT_FLOAT_RECT_EQ(gfx::RectF(75, 50, 10, 10), | 631 EXPECT_FLOAT_RECT_EQ(gfx::RectF(75, 50, 10, 10), |
| 642 gfx::SkRectToRectF(pixel_refs[1].pixel_ref_rect)); | 632 gfx::SkRectToRectF(pixel_refs[1].pixel_ref_rect)); |
| 643 VerifyScales(0.2f, 0.2f, pixel_refs[1].matrix, __LINE__); | 633 VerifyScales(0.2f, 0.2f, pixel_refs[1].matrix, __LINE__); |
| 644 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[1].filter_quality); | 634 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[1].filter_quality); |
| 645 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 30, 100, 100), | 635 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 30, 100, 100), |
| 646 gfx::SkRectToRectF(pixel_refs[2].pixel_ref_rect)); | 636 gfx::SkRectToRectF(pixel_refs[2].pixel_ref_rect)); |
| 647 VerifyScales(2.f, 2.f, pixel_refs[2].matrix, __LINE__); | 637 VerifyScales(2.f, 2.f, pixel_refs[2].matrix, __LINE__); |
| 648 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[2].filter_quality); | 638 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[2].filter_quality); |
| 649 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 30, 100, 100), | 639 EXPECT_FLOAT_RECT_EQ(gfx::RectF(0, 30, 100, 100), |
| 650 gfx::SkRectToRectF(pixel_refs[3].pixel_ref_rect)); | 640 gfx::SkRectToRectF(pixel_refs[3].pixel_ref_rect)); |
| 651 VerifyScales(2.f, 2.f, pixel_refs[3].matrix, __LINE__); | 641 VerifyScales(2.f, 2.f, pixel_refs[3].matrix, __LINE__); |
| 652 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[3].filter_quality); | 642 EXPECT_EQ(kNone_SkFilterQuality, pixel_refs[3].filter_quality); |
| 653 } | 643 } |
| 654 | 644 |
| 655 } // namespace skia | 645 } // namespace skia |
| OLD | NEW |