| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 #include <memory> | 7 #include <memory> |
| 8 | 8 |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "cc/base/math_util.h" | 10 #include "cc/base/math_util.h" |
| 11 #include "cc/output/gl_renderer.h" | 11 #include "cc/output/gl_renderer.h" |
| 12 #include "cc/paint/paint_flags.h" |
| 12 #include "cc/quads/draw_quad.h" | 13 #include "cc/quads/draw_quad.h" |
| 13 #include "cc/quads/picture_draw_quad.h" | 14 #include "cc/quads/picture_draw_quad.h" |
| 14 #include "cc/quads/texture_draw_quad.h" | 15 #include "cc/quads/texture_draw_quad.h" |
| 15 #include "cc/resources/video_resource_updater.h" | 16 #include "cc/resources/video_resource_updater.h" |
| 16 #include "cc/test/fake_raster_source.h" | 17 #include "cc/test/fake_raster_source.h" |
| 17 #include "cc/test/fake_recording_source.h" | 18 #include "cc/test/fake_recording_source.h" |
| 18 #include "cc/test/pixel_test.h" | 19 #include "cc/test/pixel_test.h" |
| 19 #include "gpu/command_buffer/client/gles2_interface.h" | 20 #include "gpu/command_buffer/client/gles2_interface.h" |
| 20 #include "media/base/video_frame.h" | 21 #include "media/base/video_frame.h" |
| 21 #include "third_party/skia/include/core/SkColorPriv.h" | 22 #include "third_party/skia/include/core/SkColorPriv.h" |
| (...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 942 } | 943 } |
| 943 | 944 |
| 944 TYPED_TEST(IntersectingQuadSoftwareTest, PictureQuads) { | 945 TYPED_TEST(IntersectingQuadSoftwareTest, PictureQuads) { |
| 945 this->SetupQuadStateAndRenderPass(); | 946 this->SetupQuadStateAndRenderPass(); |
| 946 gfx::Rect outer_rect(this->quad_rect_); | 947 gfx::Rect outer_rect(this->quad_rect_); |
| 947 gfx::Rect inner_rect(this->quad_rect_.x() + (this->quad_rect_.width() / 4), | 948 gfx::Rect inner_rect(this->quad_rect_.x() + (this->quad_rect_.width() / 4), |
| 948 this->quad_rect_.y() + (this->quad_rect_.height() / 4), | 949 this->quad_rect_.y() + (this->quad_rect_.height() / 4), |
| 949 this->quad_rect_.width() / 2, | 950 this->quad_rect_.width() / 2, |
| 950 this->quad_rect_.height() / 2); | 951 this->quad_rect_.height() / 2); |
| 951 | 952 |
| 952 SkPaint black_paint; | 953 PaintFlags black_paint; |
| 953 black_paint.setColor(SK_ColorBLACK); | 954 black_paint.setColor(SK_ColorBLACK); |
| 954 SkPaint blue_paint; | 955 PaintFlags blue_paint; |
| 955 blue_paint.setColor(SK_ColorBLUE); | 956 blue_paint.setColor(SK_ColorBLUE); |
| 956 SkPaint green_paint; | 957 PaintFlags green_paint; |
| 957 green_paint.setColor(SK_ColorGREEN); | 958 green_paint.setColor(SK_ColorGREEN); |
| 958 | 959 |
| 959 std::unique_ptr<FakeRecordingSource> blue_recording = | 960 std::unique_ptr<FakeRecordingSource> blue_recording = |
| 960 FakeRecordingSource::CreateFilledRecordingSource(this->quad_rect_.size()); | 961 FakeRecordingSource::CreateFilledRecordingSource(this->quad_rect_.size()); |
| 961 blue_recording->add_draw_rect_with_paint(outer_rect, black_paint); | 962 blue_recording->add_draw_rect_with_paint(outer_rect, black_paint); |
| 962 blue_recording->add_draw_rect_with_paint(inner_rect, blue_paint); | 963 blue_recording->add_draw_rect_with_paint(inner_rect, blue_paint); |
| 963 blue_recording->Rerecord(); | 964 blue_recording->Rerecord(); |
| 964 scoped_refptr<FakeRasterSource> blue_raster_source = | 965 scoped_refptr<FakeRasterSource> blue_raster_source = |
| 965 FakeRasterSource::CreateFromRecordingSource(blue_recording.get(), false); | 966 FakeRasterSource::CreateFromRecordingSource(blue_recording.get(), false); |
| 966 | 967 |
| (...skipping 939 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1906 SolidColorDrawQuad* green = | 1907 SolidColorDrawQuad* green = |
| 1907 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1908 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1908 green->SetNew( | 1909 green->SetNew( |
| 1909 child_pass_shared_state, viewport_rect, viewport_rect, kCSSGreen, false); | 1910 child_pass_shared_state, viewport_rect, viewport_rect, kCSSGreen, false); |
| 1910 | 1911 |
| 1911 // Make a mask. | 1912 // Make a mask. |
| 1912 gfx::Rect mask_rect = viewport_rect; | 1913 gfx::Rect mask_rect = viewport_rect; |
| 1913 SkBitmap bitmap; | 1914 SkBitmap bitmap; |
| 1914 bitmap.allocPixels( | 1915 bitmap.allocPixels( |
| 1915 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); | 1916 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); |
| 1916 SkCanvas canvas(bitmap); | 1917 PaintCanvas canvas(bitmap); |
| 1917 SkPaint paint; | 1918 PaintFlags paint; |
| 1918 paint.setStyle(SkPaint::kStroke_Style); | 1919 paint.setStyle(PaintFlags::kStroke_Style); |
| 1919 paint.setStrokeWidth(SkIntToScalar(4)); | 1920 paint.setStrokeWidth(SkIntToScalar(4)); |
| 1920 paint.setColor(SK_ColorWHITE); | 1921 paint.setColor(SK_ColorWHITE); |
| 1921 canvas.clear(SK_ColorTRANSPARENT); | 1922 canvas.clear(SK_ColorTRANSPARENT); |
| 1922 gfx::Rect rect = mask_rect; | 1923 gfx::Rect rect = mask_rect; |
| 1923 while (!rect.IsEmpty()) { | 1924 while (!rect.IsEmpty()) { |
| 1924 rect.Inset(6, 6, 4, 4); | 1925 rect.Inset(6, 6, 4, 4); |
| 1925 canvas.drawRect( | 1926 canvas.drawRect( |
| 1926 SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height()), | 1927 SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height()), |
| 1927 paint); | 1928 paint); |
| 1928 rect.Inset(6, 6, 4, 4); | 1929 rect.Inset(6, 6, 4, 4); |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1999 SolidColorDrawQuad* green = | 2000 SolidColorDrawQuad* green = |
| 2000 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 2001 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 2001 green->SetNew(child_pass_shared_state, viewport_rect, viewport_rect, | 2002 green->SetNew(child_pass_shared_state, viewport_rect, viewport_rect, |
| 2002 kCSSGreen, false); | 2003 kCSSGreen, false); |
| 2003 | 2004 |
| 2004 // Make a mask. | 2005 // Make a mask. |
| 2005 gfx::Rect mask_rect = viewport_rect; | 2006 gfx::Rect mask_rect = viewport_rect; |
| 2006 SkBitmap bitmap; | 2007 SkBitmap bitmap; |
| 2007 bitmap.allocPixels( | 2008 bitmap.allocPixels( |
| 2008 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); | 2009 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); |
| 2009 SkCanvas canvas(bitmap); | 2010 PaintCanvas canvas(bitmap); |
| 2010 SkPaint paint; | 2011 PaintFlags paint; |
| 2011 paint.setStyle(SkPaint::kStroke_Style); | 2012 paint.setStyle(PaintFlags::kStroke_Style); |
| 2012 paint.setStrokeWidth(SkIntToScalar(4)); | 2013 paint.setStrokeWidth(SkIntToScalar(4)); |
| 2013 paint.setColor(SK_ColorWHITE); | 2014 paint.setColor(SK_ColorWHITE); |
| 2014 canvas.clear(SK_ColorTRANSPARENT); | 2015 canvas.clear(SK_ColorTRANSPARENT); |
| 2015 gfx::Rect rect = mask_rect; | 2016 gfx::Rect rect = mask_rect; |
| 2016 while (!rect.IsEmpty()) { | 2017 while (!rect.IsEmpty()) { |
| 2017 rect.Inset(6, 6, 4, 4); | 2018 rect.Inset(6, 6, 4, 4); |
| 2018 canvas.drawRect( | 2019 canvas.drawRect( |
| 2019 SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height()), | 2020 SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height()), |
| 2020 paint); | 2021 paint); |
| 2021 rect.Inset(6, 6, 4, 4); | 2022 rect.Inset(6, 6, 4, 4); |
| (...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2492 std::unique_ptr<RenderPass> pass = | 2493 std::unique_ptr<RenderPass> pass = |
| 2493 CreateTestRenderPass(id, viewport, transform_to_root); | 2494 CreateTestRenderPass(id, viewport, transform_to_root); |
| 2494 | 2495 |
| 2495 // One clipped blue quad in the lower right corner. Outside the clip | 2496 // One clipped blue quad in the lower right corner. Outside the clip |
| 2496 // is red, which should not appear. | 2497 // is red, which should not appear. |
| 2497 gfx::Rect blue_rect(gfx::Size(100, 100)); | 2498 gfx::Rect blue_rect(gfx::Size(100, 100)); |
| 2498 gfx::Rect blue_clip_rect(gfx::Point(50, 50), gfx::Size(50, 50)); | 2499 gfx::Rect blue_clip_rect(gfx::Point(50, 50), gfx::Size(50, 50)); |
| 2499 | 2500 |
| 2500 std::unique_ptr<FakeRecordingSource> blue_recording = | 2501 std::unique_ptr<FakeRecordingSource> blue_recording = |
| 2501 FakeRecordingSource::CreateFilledRecordingSource(blue_rect.size()); | 2502 FakeRecordingSource::CreateFilledRecordingSource(blue_rect.size()); |
| 2502 SkPaint red_paint; | 2503 PaintFlags red_paint; |
| 2503 red_paint.setColor(SK_ColorRED); | 2504 red_paint.setColor(SK_ColorRED); |
| 2504 blue_recording->add_draw_rect_with_paint(blue_rect, red_paint); | 2505 blue_recording->add_draw_rect_with_paint(blue_rect, red_paint); |
| 2505 SkPaint blue_paint; | 2506 PaintFlags blue_paint; |
| 2506 blue_paint.setColor(SK_ColorBLUE); | 2507 blue_paint.setColor(SK_ColorBLUE); |
| 2507 blue_recording->add_draw_rect_with_paint(blue_clip_rect, blue_paint); | 2508 blue_recording->add_draw_rect_with_paint(blue_clip_rect, blue_paint); |
| 2508 blue_recording->Rerecord(); | 2509 blue_recording->Rerecord(); |
| 2509 | 2510 |
| 2510 scoped_refptr<FakeRasterSource> blue_raster_source = | 2511 scoped_refptr<FakeRasterSource> blue_raster_source = |
| 2511 FakeRasterSource::CreateFromRecordingSource(blue_recording.get(), false); | 2512 FakeRasterSource::CreateFromRecordingSource(blue_recording.get(), false); |
| 2512 | 2513 |
| 2513 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); | 2514 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); |
| 2514 gfx::Transform blue_quad_to_target_transform; | 2515 gfx::Transform blue_quad_to_target_transform; |
| 2515 blue_quad_to_target_transform.Translate(offset.x(), offset.y()); | 2516 blue_quad_to_target_transform.Translate(offset.x(), offset.y()); |
| 2516 gfx::Rect blue_target_clip_rect = MathUtil::MapEnclosingClippedRect( | 2517 gfx::Rect blue_target_clip_rect = MathUtil::MapEnclosingClippedRect( |
| 2517 blue_quad_to_target_transform, blue_clip_rect); | 2518 blue_quad_to_target_transform, blue_clip_rect); |
| 2518 SharedQuadState* blue_shared_state = | 2519 SharedQuadState* blue_shared_state = |
| 2519 CreateTestSharedQuadStateClipped(blue_quad_to_target_transform, blue_rect, | 2520 CreateTestSharedQuadStateClipped(blue_quad_to_target_transform, blue_rect, |
| 2520 blue_target_clip_rect, pass.get()); | 2521 blue_target_clip_rect, pass.get()); |
| 2521 | 2522 |
| 2522 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2523 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 2523 | 2524 |
| 2524 blue_quad->SetNew(blue_shared_state, | 2525 blue_quad->SetNew(blue_shared_state, |
| 2525 viewport, // Intentionally bigger than clip. | 2526 viewport, // Intentionally bigger than clip. |
| 2526 gfx::Rect(), viewport, gfx::RectF(viewport), | 2527 gfx::Rect(), viewport, gfx::RectF(viewport), |
| 2527 viewport.size(), nearest_neighbor, texture_format, viewport, | 2528 viewport.size(), nearest_neighbor, texture_format, viewport, |
| 2528 1.f, std::move(blue_raster_source)); | 2529 1.f, std::move(blue_raster_source)); |
| 2529 | 2530 |
| 2530 // One viewport-filling green quad. | 2531 // One viewport-filling green quad. |
| 2531 std::unique_ptr<FakeRecordingSource> green_recording = | 2532 std::unique_ptr<FakeRecordingSource> green_recording = |
| 2532 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2533 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2533 SkPaint green_paint; | 2534 PaintFlags green_paint; |
| 2534 green_paint.setColor(SK_ColorGREEN); | 2535 green_paint.setColor(SK_ColorGREEN); |
| 2535 green_recording->add_draw_rect_with_paint(viewport, green_paint); | 2536 green_recording->add_draw_rect_with_paint(viewport, green_paint); |
| 2536 green_recording->Rerecord(); | 2537 green_recording->Rerecord(); |
| 2537 scoped_refptr<FakeRasterSource> green_raster_source = | 2538 scoped_refptr<FakeRasterSource> green_raster_source = |
| 2538 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); | 2539 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); |
| 2539 | 2540 |
| 2540 gfx::Transform green_quad_to_target_transform; | 2541 gfx::Transform green_quad_to_target_transform; |
| 2541 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 2542 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
| 2542 green_quad_to_target_transform, viewport, pass.get()); | 2543 green_quad_to_target_transform, viewport, pass.get()); |
| 2543 | 2544 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 2564 bool nearest_neighbor = false; | 2565 bool nearest_neighbor = false; |
| 2565 | 2566 |
| 2566 int id = 1; | 2567 int id = 1; |
| 2567 gfx::Transform transform_to_root; | 2568 gfx::Transform transform_to_root; |
| 2568 std::unique_ptr<RenderPass> pass = | 2569 std::unique_ptr<RenderPass> pass = |
| 2569 CreateTestRenderPass(id, viewport, transform_to_root); | 2570 CreateTestRenderPass(id, viewport, transform_to_root); |
| 2570 | 2571 |
| 2571 // One viewport-filling 0.5-opacity green quad. | 2572 // One viewport-filling 0.5-opacity green quad. |
| 2572 std::unique_ptr<FakeRecordingSource> green_recording = | 2573 std::unique_ptr<FakeRecordingSource> green_recording = |
| 2573 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2574 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2574 SkPaint green_paint; | 2575 PaintFlags green_paint; |
| 2575 green_paint.setColor(SK_ColorGREEN); | 2576 green_paint.setColor(SK_ColorGREEN); |
| 2576 green_recording->add_draw_rect_with_paint(viewport, green_paint); | 2577 green_recording->add_draw_rect_with_paint(viewport, green_paint); |
| 2577 green_recording->Rerecord(); | 2578 green_recording->Rerecord(); |
| 2578 scoped_refptr<FakeRasterSource> green_raster_source = | 2579 scoped_refptr<FakeRasterSource> green_raster_source = |
| 2579 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); | 2580 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); |
| 2580 | 2581 |
| 2581 gfx::Transform green_quad_to_target_transform; | 2582 gfx::Transform green_quad_to_target_transform; |
| 2582 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 2583 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
| 2583 green_quad_to_target_transform, viewport, pass.get()); | 2584 green_quad_to_target_transform, viewport, pass.get()); |
| 2584 green_shared_state->opacity = 0.5f; | 2585 green_shared_state->opacity = 0.5f; |
| 2585 | 2586 |
| 2586 PictureDrawQuad* green_quad = | 2587 PictureDrawQuad* green_quad = |
| 2587 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2588 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 2588 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, | 2589 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, |
| 2589 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, | 2590 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, |
| 2590 texture_format, viewport, 1.f, green_raster_source.get()); | 2591 texture_format, viewport, 1.f, green_raster_source.get()); |
| 2591 | 2592 |
| 2592 // One viewport-filling white quad. | 2593 // One viewport-filling white quad. |
| 2593 std::unique_ptr<FakeRecordingSource> white_recording = | 2594 std::unique_ptr<FakeRecordingSource> white_recording = |
| 2594 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2595 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2595 SkPaint white_paint; | 2596 PaintFlags white_paint; |
| 2596 white_paint.setColor(SK_ColorWHITE); | 2597 white_paint.setColor(SK_ColorWHITE); |
| 2597 white_recording->add_draw_rect_with_paint(viewport, white_paint); | 2598 white_recording->add_draw_rect_with_paint(viewport, white_paint); |
| 2598 white_recording->Rerecord(); | 2599 white_recording->Rerecord(); |
| 2599 scoped_refptr<FakeRasterSource> white_raster_source = | 2600 scoped_refptr<FakeRasterSource> white_raster_source = |
| 2600 FakeRasterSource::CreateFromRecordingSource(white_recording.get(), false); | 2601 FakeRasterSource::CreateFromRecordingSource(white_recording.get(), false); |
| 2601 | 2602 |
| 2602 gfx::Transform white_quad_to_target_transform; | 2603 gfx::Transform white_quad_to_target_transform; |
| 2603 SharedQuadState* white_shared_state = CreateTestSharedQuadState( | 2604 SharedQuadState* white_shared_state = CreateTestSharedQuadState( |
| 2604 white_quad_to_target_transform, viewport, pass.get()); | 2605 white_quad_to_target_transform, viewport, pass.get()); |
| 2605 | 2606 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2653 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); | 2654 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); |
| 2654 ASSERT_NE(surface, nullptr); | 2655 ASSERT_NE(surface, nullptr); |
| 2655 SkCanvas* canvas = surface->getCanvas(); | 2656 SkCanvas* canvas = surface->getCanvas(); |
| 2656 canvas->drawPoint(0, 0, SK_ColorGREEN); | 2657 canvas->drawPoint(0, 0, SK_ColorGREEN); |
| 2657 canvas->drawPoint(0, 1, SK_ColorBLUE); | 2658 canvas->drawPoint(0, 1, SK_ColorBLUE); |
| 2658 canvas->drawPoint(1, 0, SK_ColorBLUE); | 2659 canvas->drawPoint(1, 0, SK_ColorBLUE); |
| 2659 canvas->drawPoint(1, 1, SK_ColorGREEN); | 2660 canvas->drawPoint(1, 1, SK_ColorGREEN); |
| 2660 | 2661 |
| 2661 std::unique_ptr<FakeRecordingSource> recording = | 2662 std::unique_ptr<FakeRecordingSource> recording = |
| 2662 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2663 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2663 SkPaint paint; | 2664 PaintFlags paint; |
| 2664 paint.setFilterQuality(kLow_SkFilterQuality); | 2665 paint.setFilterQuality(kLow_SkFilterQuality); |
| 2665 recording->add_draw_image_with_paint(surface->makeImageSnapshot(), | 2666 recording->add_draw_image_with_paint(surface->makeImageSnapshot(), |
| 2666 gfx::Point(), paint); | 2667 gfx::Point(), paint); |
| 2667 recording->Rerecord(); | 2668 recording->Rerecord(); |
| 2668 scoped_refptr<FakeRasterSource> raster_source = | 2669 scoped_refptr<FakeRasterSource> raster_source = |
| 2669 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); | 2670 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); |
| 2670 | 2671 |
| 2671 gfx::Transform quad_to_target_transform; | 2672 gfx::Transform quad_to_target_transform; |
| 2672 SharedQuadState* shared_state = | 2673 SharedQuadState* shared_state = |
| 2673 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); | 2674 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 2702 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); | 2703 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); |
| 2703 ASSERT_NE(surface, nullptr); | 2704 ASSERT_NE(surface, nullptr); |
| 2704 SkCanvas* canvas = surface->getCanvas(); | 2705 SkCanvas* canvas = surface->getCanvas(); |
| 2705 canvas->drawPoint(0, 0, SK_ColorGREEN); | 2706 canvas->drawPoint(0, 0, SK_ColorGREEN); |
| 2706 canvas->drawPoint(0, 1, SK_ColorBLUE); | 2707 canvas->drawPoint(0, 1, SK_ColorBLUE); |
| 2707 canvas->drawPoint(1, 0, SK_ColorBLUE); | 2708 canvas->drawPoint(1, 0, SK_ColorBLUE); |
| 2708 canvas->drawPoint(1, 1, SK_ColorGREEN); | 2709 canvas->drawPoint(1, 1, SK_ColorGREEN); |
| 2709 | 2710 |
| 2710 std::unique_ptr<FakeRecordingSource> recording = | 2711 std::unique_ptr<FakeRecordingSource> recording = |
| 2711 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2712 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2712 SkPaint paint; | 2713 PaintFlags paint; |
| 2713 paint.setFilterQuality(kLow_SkFilterQuality); | 2714 paint.setFilterQuality(kLow_SkFilterQuality); |
| 2714 recording->add_draw_image_with_paint(surface->makeImageSnapshot(), | 2715 recording->add_draw_image_with_paint(surface->makeImageSnapshot(), |
| 2715 gfx::Point(), paint); | 2716 gfx::Point(), paint); |
| 2716 recording->Rerecord(); | 2717 recording->Rerecord(); |
| 2717 scoped_refptr<FakeRasterSource> raster_source = | 2718 scoped_refptr<FakeRasterSource> raster_source = |
| 2718 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); | 2719 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); |
| 2719 | 2720 |
| 2720 gfx::Transform quad_to_target_transform; | 2721 gfx::Transform quad_to_target_transform; |
| 2721 SharedQuadState* shared_state = | 2722 SharedQuadState* shared_state = |
| 2722 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); | 2723 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2907 // a few extra "cleanup rects" need to be added to clobber the blending | 2908 // a few extra "cleanup rects" need to be added to clobber the blending |
| 2908 // to make the output image more clean. This will also test subrects | 2909 // to make the output image more clean. This will also test subrects |
| 2909 // of the layer. | 2910 // of the layer. |
| 2910 gfx::Transform green_quad_to_target_transform; | 2911 gfx::Transform green_quad_to_target_transform; |
| 2911 gfx::Rect green_rect1(gfx::Point(80, 0), gfx::Size(20, 100)); | 2912 gfx::Rect green_rect1(gfx::Point(80, 0), gfx::Size(20, 100)); |
| 2912 gfx::Rect green_rect2(gfx::Point(0, 80), gfx::Size(100, 20)); | 2913 gfx::Rect green_rect2(gfx::Point(0, 80), gfx::Size(100, 20)); |
| 2913 | 2914 |
| 2914 std::unique_ptr<FakeRecordingSource> green_recording = | 2915 std::unique_ptr<FakeRecordingSource> green_recording = |
| 2915 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2916 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2916 | 2917 |
| 2917 SkPaint red_paint; | 2918 PaintFlags red_paint; |
| 2918 red_paint.setColor(SK_ColorRED); | 2919 red_paint.setColor(SK_ColorRED); |
| 2919 green_recording->add_draw_rect_with_paint(viewport, red_paint); | 2920 green_recording->add_draw_rect_with_paint(viewport, red_paint); |
| 2920 SkPaint green_paint; | 2921 PaintFlags green_paint; |
| 2921 green_paint.setColor(SK_ColorGREEN); | 2922 green_paint.setColor(SK_ColorGREEN); |
| 2922 green_recording->add_draw_rect_with_paint(green_rect1, green_paint); | 2923 green_recording->add_draw_rect_with_paint(green_rect1, green_paint); |
| 2923 green_recording->add_draw_rect_with_paint(green_rect2, green_paint); | 2924 green_recording->add_draw_rect_with_paint(green_rect2, green_paint); |
| 2924 green_recording->Rerecord(); | 2925 green_recording->Rerecord(); |
| 2925 scoped_refptr<FakeRasterSource> green_raster_source = | 2926 scoped_refptr<FakeRasterSource> green_raster_source = |
| 2926 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); | 2927 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); |
| 2927 | 2928 |
| 2928 SharedQuadState* top_right_green_shared_quad_state = | 2929 SharedQuadState* top_right_green_shared_quad_state = |
| 2929 CreateTestSharedQuadState(green_quad_to_target_transform, viewport, | 2930 CreateTestSharedQuadState(green_quad_to_target_transform, viewport, |
| 2930 pass.get()); | 2931 pass.get()); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2979 | 2980 |
| 2980 std::unique_ptr<FakeRecordingSource> recording = | 2981 std::unique_ptr<FakeRecordingSource> recording = |
| 2981 FakeRecordingSource::CreateFilledRecordingSource(layer_rect.size()); | 2982 FakeRecordingSource::CreateFilledRecordingSource(layer_rect.size()); |
| 2982 | 2983 |
| 2983 Region outside(layer_rect); | 2984 Region outside(layer_rect); |
| 2984 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); | 2985 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); |
| 2985 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { | 2986 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { |
| 2986 recording->add_draw_rect_with_paint(iter.rect(), red_paint); | 2987 recording->add_draw_rect_with_paint(iter.rect(), red_paint); |
| 2987 } | 2988 } |
| 2988 | 2989 |
| 2989 SkPaint blue_paint; | 2990 PaintFlags blue_paint; |
| 2990 blue_paint.setColor(SK_ColorBLUE); | 2991 blue_paint.setColor(SK_ColorBLUE); |
| 2991 recording->add_draw_rectf_with_paint(blue_layer_rect1, blue_paint); | 2992 recording->add_draw_rectf_with_paint(blue_layer_rect1, blue_paint); |
| 2992 recording->add_draw_rectf_with_paint(blue_layer_rect2, blue_paint); | 2993 recording->add_draw_rectf_with_paint(blue_layer_rect2, blue_paint); |
| 2993 recording->Rerecord(); | 2994 recording->Rerecord(); |
| 2994 scoped_refptr<FakeRasterSource> raster_source = | 2995 scoped_refptr<FakeRasterSource> raster_source = |
| 2995 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); | 2996 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); |
| 2996 | 2997 |
| 2997 gfx::Rect content_union_rect( | 2998 gfx::Rect content_union_rect( |
| 2998 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); | 2999 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); |
| 2999 | 3000 |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3199 | 3200 |
| 3200 SharedQuadState* shared_state = | 3201 SharedQuadState* shared_state = |
| 3201 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); | 3202 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); |
| 3202 | 3203 |
| 3203 // Make a mask. | 3204 // Make a mask. |
| 3204 gfx::Rect mask_rect = rect; | 3205 gfx::Rect mask_rect = rect; |
| 3205 SkBitmap bitmap; | 3206 SkBitmap bitmap; |
| 3206 bitmap.allocPixels( | 3207 bitmap.allocPixels( |
| 3207 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); | 3208 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); |
| 3208 SkCanvas canvas(bitmap); | 3209 SkCanvas canvas(bitmap); |
| 3209 SkPaint paint; | 3210 PaintFlags paint; |
| 3210 paint.setStyle(SkPaint::kStroke_Style); | 3211 paint.setStyle(PaintFlags::kStroke_Style); |
| 3211 paint.setStrokeWidth(SkIntToScalar(4)); | 3212 paint.setStrokeWidth(SkIntToScalar(4)); |
| 3212 paint.setColor(SK_ColorGREEN); | 3213 paint.setColor(SK_ColorGREEN); |
| 3213 canvas.clear(SK_ColorWHITE); | 3214 canvas.clear(SK_ColorWHITE); |
| 3214 gfx::Rect inset_rect = rect; | 3215 gfx::Rect inset_rect = rect; |
| 3215 while (!inset_rect.IsEmpty()) { | 3216 while (!inset_rect.IsEmpty()) { |
| 3216 inset_rect.Inset(6, 6, 4, 4); | 3217 inset_rect.Inset(6, 6, 4, 4); |
| 3217 canvas.drawRect(SkRect::MakeXYWH(inset_rect.x(), inset_rect.y(), | 3218 canvas.drawRect(SkRect::MakeXYWH(inset_rect.x(), inset_rect.y(), |
| 3218 inset_rect.width(), inset_rect.height()), | 3219 inset_rect.width(), inset_rect.height()), |
| 3219 paint); | 3220 paint); |
| 3220 inset_rect.Inset(6, 6, 4, 4); | 3221 inset_rect.Inset(6, 6, 4, 4); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3319 | 3320 |
| 3320 EXPECT_TRUE(this->RunPixelTest(&pass_list, base::FilePath(FILE_PATH_LITERAL( | 3321 EXPECT_TRUE(this->RunPixelTest(&pass_list, base::FilePath(FILE_PATH_LITERAL( |
| 3321 "translucent_rectangles.png")), | 3322 "translucent_rectangles.png")), |
| 3322 ExactPixelComparator(true))); | 3323 ExactPixelComparator(true))); |
| 3323 } | 3324 } |
| 3324 | 3325 |
| 3325 #endif // !defined(OS_ANDROID) | 3326 #endif // !defined(OS_ANDROID) |
| 3326 | 3327 |
| 3327 } // namespace | 3328 } // namespace |
| 3328 } // namespace cc | 3329 } // namespace cc |
| OLD | NEW |