| 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" |
| (...skipping 932 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 943 } | 943 } |
| 944 | 944 |
| 945 TYPED_TEST(IntersectingQuadSoftwareTest, PictureQuads) { | 945 TYPED_TEST(IntersectingQuadSoftwareTest, PictureQuads) { |
| 946 this->SetupQuadStateAndRenderPass(); | 946 this->SetupQuadStateAndRenderPass(); |
| 947 gfx::Rect outer_rect(this->quad_rect_); | 947 gfx::Rect outer_rect(this->quad_rect_); |
| 948 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), |
| 949 this->quad_rect_.y() + (this->quad_rect_.height() / 4), | 949 this->quad_rect_.y() + (this->quad_rect_.height() / 4), |
| 950 this->quad_rect_.width() / 2, | 950 this->quad_rect_.width() / 2, |
| 951 this->quad_rect_.height() / 2); | 951 this->quad_rect_.height() / 2); |
| 952 | 952 |
| 953 PaintFlags black_paint; | 953 PaintFlags black_flags; |
| 954 black_paint.setColor(SK_ColorBLACK); | 954 black_flags.setColor(SK_ColorBLACK); |
| 955 PaintFlags blue_paint; | 955 PaintFlags blue_flags; |
| 956 blue_paint.setColor(SK_ColorBLUE); | 956 blue_flags.setColor(SK_ColorBLUE); |
| 957 PaintFlags green_paint; | 957 PaintFlags green_flags; |
| 958 green_paint.setColor(SK_ColorGREEN); | 958 green_flags.setColor(SK_ColorGREEN); |
| 959 | 959 |
| 960 std::unique_ptr<FakeRecordingSource> blue_recording = | 960 std::unique_ptr<FakeRecordingSource> blue_recording = |
| 961 FakeRecordingSource::CreateFilledRecordingSource(this->quad_rect_.size()); | 961 FakeRecordingSource::CreateFilledRecordingSource(this->quad_rect_.size()); |
| 962 blue_recording->add_draw_rect_with_paint(outer_rect, black_paint); | 962 blue_recording->add_draw_rect_with_flags(outer_rect, black_flags); |
| 963 blue_recording->add_draw_rect_with_paint(inner_rect, blue_paint); | 963 blue_recording->add_draw_rect_with_flags(inner_rect, blue_flags); |
| 964 blue_recording->Rerecord(); | 964 blue_recording->Rerecord(); |
| 965 scoped_refptr<FakeRasterSource> blue_raster_source = | 965 scoped_refptr<FakeRasterSource> blue_raster_source = |
| 966 FakeRasterSource::CreateFromRecordingSource(blue_recording.get(), false); | 966 FakeRasterSource::CreateFromRecordingSource(blue_recording.get(), false); |
| 967 | 967 |
| 968 PictureDrawQuad* blue_quad = | 968 PictureDrawQuad* blue_quad = |
| 969 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); | 969 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 970 | 970 |
| 971 blue_quad->SetNew(this->front_quad_state_, this->quad_rect_, gfx::Rect(), | 971 blue_quad->SetNew(this->front_quad_state_, this->quad_rect_, gfx::Rect(), |
| 972 this->quad_rect_, gfx::RectF(this->quad_rect_), | 972 this->quad_rect_, gfx::RectF(this->quad_rect_), |
| 973 this->quad_rect_.size(), false, RGBA_8888, this->quad_rect_, | 973 this->quad_rect_.size(), false, RGBA_8888, this->quad_rect_, |
| 974 1.f, blue_raster_source); | 974 1.f, blue_raster_source); |
| 975 | 975 |
| 976 std::unique_ptr<FakeRecordingSource> green_recording = | 976 std::unique_ptr<FakeRecordingSource> green_recording = |
| 977 FakeRecordingSource::CreateFilledRecordingSource(this->quad_rect_.size()); | 977 FakeRecordingSource::CreateFilledRecordingSource(this->quad_rect_.size()); |
| 978 green_recording->add_draw_rect_with_paint(outer_rect, green_paint); | 978 green_recording->add_draw_rect_with_flags(outer_rect, green_flags); |
| 979 green_recording->add_draw_rect_with_paint(inner_rect, black_paint); | 979 green_recording->add_draw_rect_with_flags(inner_rect, black_flags); |
| 980 green_recording->Rerecord(); | 980 green_recording->Rerecord(); |
| 981 scoped_refptr<FakeRasterSource> green_raster_source = | 981 scoped_refptr<FakeRasterSource> green_raster_source = |
| 982 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); | 982 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); |
| 983 | 983 |
| 984 PictureDrawQuad* green_quad = | 984 PictureDrawQuad* green_quad = |
| 985 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); | 985 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 986 green_quad->SetNew(this->back_quad_state_, this->quad_rect_, gfx::Rect(), | 986 green_quad->SetNew(this->back_quad_state_, this->quad_rect_, gfx::Rect(), |
| 987 this->quad_rect_, gfx::RectF(this->quad_rect_), | 987 this->quad_rect_, gfx::RectF(this->quad_rect_), |
| 988 this->quad_rect_.size(), false, RGBA_8888, | 988 this->quad_rect_.size(), false, RGBA_8888, |
| 989 this->quad_rect_, 1.f, green_raster_source); | 989 this->quad_rect_, 1.f, green_raster_source); |
| (...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1908 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 1908 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 1909 green->SetNew( | 1909 green->SetNew( |
| 1910 child_pass_shared_state, viewport_rect, viewport_rect, kCSSGreen, false); | 1910 child_pass_shared_state, viewport_rect, viewport_rect, kCSSGreen, false); |
| 1911 | 1911 |
| 1912 // Make a mask. | 1912 // Make a mask. |
| 1913 gfx::Rect mask_rect = viewport_rect; | 1913 gfx::Rect mask_rect = viewport_rect; |
| 1914 SkBitmap bitmap; | 1914 SkBitmap bitmap; |
| 1915 bitmap.allocPixels( | 1915 bitmap.allocPixels( |
| 1916 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); | 1916 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); |
| 1917 PaintCanvas canvas(bitmap); | 1917 PaintCanvas canvas(bitmap); |
| 1918 PaintFlags paint; | 1918 PaintFlags flags; |
| 1919 paint.setStyle(PaintFlags::kStroke_Style); | 1919 flags.setStyle(PaintFlags::kStroke_Style); |
| 1920 paint.setStrokeWidth(SkIntToScalar(4)); | 1920 flags.setStrokeWidth(SkIntToScalar(4)); |
| 1921 paint.setColor(SK_ColorWHITE); | 1921 flags.setColor(SK_ColorWHITE); |
| 1922 canvas.clear(SK_ColorTRANSPARENT); | 1922 canvas.clear(SK_ColorTRANSPARENT); |
| 1923 gfx::Rect rect = mask_rect; | 1923 gfx::Rect rect = mask_rect; |
| 1924 while (!rect.IsEmpty()) { | 1924 while (!rect.IsEmpty()) { |
| 1925 rect.Inset(6, 6, 4, 4); | 1925 rect.Inset(6, 6, 4, 4); |
| 1926 canvas.drawRect( | 1926 canvas.drawRect( |
| 1927 SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height()), | 1927 SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height()), |
| 1928 paint); | 1928 flags); |
| 1929 rect.Inset(6, 6, 4, 4); | 1929 rect.Inset(6, 6, 4, 4); |
| 1930 } | 1930 } |
| 1931 | 1931 |
| 1932 ResourceId mask_resource_id = this->resource_provider_->CreateResource( | 1932 ResourceId mask_resource_id = this->resource_provider_->CreateResource( |
| 1933 mask_rect.size(), ResourceProvider::TEXTURE_HINT_IMMUTABLE, RGBA_8888, | 1933 mask_rect.size(), ResourceProvider::TEXTURE_HINT_IMMUTABLE, RGBA_8888, |
| 1934 gfx::ColorSpace()); | 1934 gfx::ColorSpace()); |
| 1935 { | 1935 { |
| 1936 SkAutoLockPixels lock(bitmap); | 1936 SkAutoLockPixels lock(bitmap); |
| 1937 this->resource_provider_->CopyToResource( | 1937 this->resource_provider_->CopyToResource( |
| 1938 mask_resource_id, reinterpret_cast<uint8_t*>(bitmap.getPixels()), | 1938 mask_resource_id, reinterpret_cast<uint8_t*>(bitmap.getPixels()), |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2001 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); | 2001 child_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); |
| 2002 green->SetNew(child_pass_shared_state, viewport_rect, viewport_rect, | 2002 green->SetNew(child_pass_shared_state, viewport_rect, viewport_rect, |
| 2003 kCSSGreen, false); | 2003 kCSSGreen, false); |
| 2004 | 2004 |
| 2005 // Make a mask. | 2005 // Make a mask. |
| 2006 gfx::Rect mask_rect = viewport_rect; | 2006 gfx::Rect mask_rect = viewport_rect; |
| 2007 SkBitmap bitmap; | 2007 SkBitmap bitmap; |
| 2008 bitmap.allocPixels( | 2008 bitmap.allocPixels( |
| 2009 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); | 2009 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); |
| 2010 PaintCanvas canvas(bitmap); | 2010 PaintCanvas canvas(bitmap); |
| 2011 PaintFlags paint; | 2011 PaintFlags flags; |
| 2012 paint.setStyle(PaintFlags::kStroke_Style); | 2012 flags.setStyle(PaintFlags::kStroke_Style); |
| 2013 paint.setStrokeWidth(SkIntToScalar(4)); | 2013 flags.setStrokeWidth(SkIntToScalar(4)); |
| 2014 paint.setColor(SK_ColorWHITE); | 2014 flags.setColor(SK_ColorWHITE); |
| 2015 canvas.clear(SK_ColorTRANSPARENT); | 2015 canvas.clear(SK_ColorTRANSPARENT); |
| 2016 gfx::Rect rect = mask_rect; | 2016 gfx::Rect rect = mask_rect; |
| 2017 while (!rect.IsEmpty()) { | 2017 while (!rect.IsEmpty()) { |
| 2018 rect.Inset(6, 6, 4, 4); | 2018 rect.Inset(6, 6, 4, 4); |
| 2019 canvas.drawRect( | 2019 canvas.drawRect( |
| 2020 SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height()), | 2020 SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height()), |
| 2021 paint); | 2021 flags); |
| 2022 rect.Inset(6, 6, 4, 4); | 2022 rect.Inset(6, 6, 4, 4); |
| 2023 } | 2023 } |
| 2024 | 2024 |
| 2025 ResourceId mask_resource_id = this->resource_provider_->CreateResource( | 2025 ResourceId mask_resource_id = this->resource_provider_->CreateResource( |
| 2026 mask_rect.size(), ResourceProvider::TEXTURE_HINT_IMMUTABLE, RGBA_8888, | 2026 mask_rect.size(), ResourceProvider::TEXTURE_HINT_IMMUTABLE, RGBA_8888, |
| 2027 gfx::ColorSpace()); | 2027 gfx::ColorSpace()); |
| 2028 { | 2028 { |
| 2029 SkAutoLockPixels lock(bitmap); | 2029 SkAutoLockPixels lock(bitmap); |
| 2030 this->resource_provider_->CopyToResource( | 2030 this->resource_provider_->CopyToResource( |
| 2031 mask_resource_id, reinterpret_cast<uint8_t*>(bitmap.getPixels()), | 2031 mask_resource_id, reinterpret_cast<uint8_t*>(bitmap.getPixels()), |
| (...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2493 std::unique_ptr<RenderPass> pass = | 2493 std::unique_ptr<RenderPass> pass = |
| 2494 CreateTestRenderPass(id, viewport, transform_to_root); | 2494 CreateTestRenderPass(id, viewport, transform_to_root); |
| 2495 | 2495 |
| 2496 // 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 |
| 2497 // is red, which should not appear. | 2497 // is red, which should not appear. |
| 2498 gfx::Rect blue_rect(gfx::Size(100, 100)); | 2498 gfx::Rect blue_rect(gfx::Size(100, 100)); |
| 2499 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)); |
| 2500 | 2500 |
| 2501 std::unique_ptr<FakeRecordingSource> blue_recording = | 2501 std::unique_ptr<FakeRecordingSource> blue_recording = |
| 2502 FakeRecordingSource::CreateFilledRecordingSource(blue_rect.size()); | 2502 FakeRecordingSource::CreateFilledRecordingSource(blue_rect.size()); |
| 2503 PaintFlags red_paint; | 2503 PaintFlags red_flags; |
| 2504 red_paint.setColor(SK_ColorRED); | 2504 red_flags.setColor(SK_ColorRED); |
| 2505 blue_recording->add_draw_rect_with_paint(blue_rect, red_paint); | 2505 blue_recording->add_draw_rect_with_flags(blue_rect, red_flags); |
| 2506 PaintFlags blue_paint; | 2506 PaintFlags blue_flags; |
| 2507 blue_paint.setColor(SK_ColorBLUE); | 2507 blue_flags.setColor(SK_ColorBLUE); |
| 2508 blue_recording->add_draw_rect_with_paint(blue_clip_rect, blue_paint); | 2508 blue_recording->add_draw_rect_with_flags(blue_clip_rect, blue_flags); |
| 2509 blue_recording->Rerecord(); | 2509 blue_recording->Rerecord(); |
| 2510 | 2510 |
| 2511 scoped_refptr<FakeRasterSource> blue_raster_source = | 2511 scoped_refptr<FakeRasterSource> blue_raster_source = |
| 2512 FakeRasterSource::CreateFromRecordingSource(blue_recording.get(), false); | 2512 FakeRasterSource::CreateFromRecordingSource(blue_recording.get(), false); |
| 2513 | 2513 |
| 2514 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); | 2514 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); |
| 2515 gfx::Transform blue_quad_to_target_transform; | 2515 gfx::Transform blue_quad_to_target_transform; |
| 2516 blue_quad_to_target_transform.Translate(offset.x(), offset.y()); | 2516 blue_quad_to_target_transform.Translate(offset.x(), offset.y()); |
| 2517 gfx::Rect blue_target_clip_rect = MathUtil::MapEnclosingClippedRect( | 2517 gfx::Rect blue_target_clip_rect = MathUtil::MapEnclosingClippedRect( |
| 2518 blue_quad_to_target_transform, blue_clip_rect); | 2518 blue_quad_to_target_transform, blue_clip_rect); |
| 2519 SharedQuadState* blue_shared_state = | 2519 SharedQuadState* blue_shared_state = |
| 2520 CreateTestSharedQuadStateClipped(blue_quad_to_target_transform, blue_rect, | 2520 CreateTestSharedQuadStateClipped(blue_quad_to_target_transform, blue_rect, |
| 2521 blue_target_clip_rect, pass.get()); | 2521 blue_target_clip_rect, pass.get()); |
| 2522 | 2522 |
| 2523 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2523 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 2524 | 2524 |
| 2525 blue_quad->SetNew(blue_shared_state, | 2525 blue_quad->SetNew(blue_shared_state, |
| 2526 viewport, // Intentionally bigger than clip. | 2526 viewport, // Intentionally bigger than clip. |
| 2527 gfx::Rect(), viewport, gfx::RectF(viewport), | 2527 gfx::Rect(), viewport, gfx::RectF(viewport), |
| 2528 viewport.size(), nearest_neighbor, texture_format, viewport, | 2528 viewport.size(), nearest_neighbor, texture_format, viewport, |
| 2529 1.f, std::move(blue_raster_source)); | 2529 1.f, std::move(blue_raster_source)); |
| 2530 | 2530 |
| 2531 // One viewport-filling green quad. | 2531 // One viewport-filling green quad. |
| 2532 std::unique_ptr<FakeRecordingSource> green_recording = | 2532 std::unique_ptr<FakeRecordingSource> green_recording = |
| 2533 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2533 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2534 PaintFlags green_paint; | 2534 PaintFlags green_flags; |
| 2535 green_paint.setColor(SK_ColorGREEN); | 2535 green_flags.setColor(SK_ColorGREEN); |
| 2536 green_recording->add_draw_rect_with_paint(viewport, green_paint); | 2536 green_recording->add_draw_rect_with_flags(viewport, green_flags); |
| 2537 green_recording->Rerecord(); | 2537 green_recording->Rerecord(); |
| 2538 scoped_refptr<FakeRasterSource> green_raster_source = | 2538 scoped_refptr<FakeRasterSource> green_raster_source = |
| 2539 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); | 2539 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); |
| 2540 | 2540 |
| 2541 gfx::Transform green_quad_to_target_transform; | 2541 gfx::Transform green_quad_to_target_transform; |
| 2542 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 2542 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
| 2543 green_quad_to_target_transform, viewport, pass.get()); | 2543 green_quad_to_target_transform, viewport, pass.get()); |
| 2544 | 2544 |
| 2545 PictureDrawQuad* green_quad = | 2545 PictureDrawQuad* green_quad = |
| 2546 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2546 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 2565 bool nearest_neighbor = false; | 2565 bool nearest_neighbor = false; |
| 2566 | 2566 |
| 2567 int id = 1; | 2567 int id = 1; |
| 2568 gfx::Transform transform_to_root; | 2568 gfx::Transform transform_to_root; |
| 2569 std::unique_ptr<RenderPass> pass = | 2569 std::unique_ptr<RenderPass> pass = |
| 2570 CreateTestRenderPass(id, viewport, transform_to_root); | 2570 CreateTestRenderPass(id, viewport, transform_to_root); |
| 2571 | 2571 |
| 2572 // One viewport-filling 0.5-opacity green quad. | 2572 // One viewport-filling 0.5-opacity green quad. |
| 2573 std::unique_ptr<FakeRecordingSource> green_recording = | 2573 std::unique_ptr<FakeRecordingSource> green_recording = |
| 2574 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2574 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2575 PaintFlags green_paint; | 2575 PaintFlags green_flags; |
| 2576 green_paint.setColor(SK_ColorGREEN); | 2576 green_flags.setColor(SK_ColorGREEN); |
| 2577 green_recording->add_draw_rect_with_paint(viewport, green_paint); | 2577 green_recording->add_draw_rect_with_flags(viewport, green_flags); |
| 2578 green_recording->Rerecord(); | 2578 green_recording->Rerecord(); |
| 2579 scoped_refptr<FakeRasterSource> green_raster_source = | 2579 scoped_refptr<FakeRasterSource> green_raster_source = |
| 2580 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); | 2580 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); |
| 2581 | 2581 |
| 2582 gfx::Transform green_quad_to_target_transform; | 2582 gfx::Transform green_quad_to_target_transform; |
| 2583 SharedQuadState* green_shared_state = CreateTestSharedQuadState( | 2583 SharedQuadState* green_shared_state = CreateTestSharedQuadState( |
| 2584 green_quad_to_target_transform, viewport, pass.get()); | 2584 green_quad_to_target_transform, viewport, pass.get()); |
| 2585 green_shared_state->opacity = 0.5f; | 2585 green_shared_state->opacity = 0.5f; |
| 2586 | 2586 |
| 2587 PictureDrawQuad* green_quad = | 2587 PictureDrawQuad* green_quad = |
| 2588 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2588 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 2589 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, | 2589 green_quad->SetNew(green_shared_state, viewport, gfx::Rect(), viewport, |
| 2590 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, | 2590 gfx::RectF(0, 0, 1, 1), viewport.size(), nearest_neighbor, |
| 2591 texture_format, viewport, 1.f, green_raster_source.get()); | 2591 texture_format, viewport, 1.f, green_raster_source.get()); |
| 2592 | 2592 |
| 2593 // One viewport-filling white quad. | 2593 // One viewport-filling white quad. |
| 2594 std::unique_ptr<FakeRecordingSource> white_recording = | 2594 std::unique_ptr<FakeRecordingSource> white_recording = |
| 2595 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2595 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2596 PaintFlags white_paint; | 2596 PaintFlags white_flags; |
| 2597 white_paint.setColor(SK_ColorWHITE); | 2597 white_flags.setColor(SK_ColorWHITE); |
| 2598 white_recording->add_draw_rect_with_paint(viewport, white_paint); | 2598 white_recording->add_draw_rect_with_flags(viewport, white_flags); |
| 2599 white_recording->Rerecord(); | 2599 white_recording->Rerecord(); |
| 2600 scoped_refptr<FakeRasterSource> white_raster_source = | 2600 scoped_refptr<FakeRasterSource> white_raster_source = |
| 2601 FakeRasterSource::CreateFromRecordingSource(white_recording.get(), false); | 2601 FakeRasterSource::CreateFromRecordingSource(white_recording.get(), false); |
| 2602 | 2602 |
| 2603 gfx::Transform white_quad_to_target_transform; | 2603 gfx::Transform white_quad_to_target_transform; |
| 2604 SharedQuadState* white_shared_state = CreateTestSharedQuadState( | 2604 SharedQuadState* white_shared_state = CreateTestSharedQuadState( |
| 2605 white_quad_to_target_transform, viewport, pass.get()); | 2605 white_quad_to_target_transform, viewport, pass.get()); |
| 2606 | 2606 |
| 2607 PictureDrawQuad* white_quad = | 2607 PictureDrawQuad* white_quad = |
| 2608 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2608 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2654 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); | 2654 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); |
| 2655 ASSERT_NE(surface, nullptr); | 2655 ASSERT_NE(surface, nullptr); |
| 2656 SkCanvas* canvas = surface->getCanvas(); | 2656 SkCanvas* canvas = surface->getCanvas(); |
| 2657 canvas->drawPoint(0, 0, SK_ColorGREEN); | 2657 canvas->drawPoint(0, 0, SK_ColorGREEN); |
| 2658 canvas->drawPoint(0, 1, SK_ColorBLUE); | 2658 canvas->drawPoint(0, 1, SK_ColorBLUE); |
| 2659 canvas->drawPoint(1, 0, SK_ColorBLUE); | 2659 canvas->drawPoint(1, 0, SK_ColorBLUE); |
| 2660 canvas->drawPoint(1, 1, SK_ColorGREEN); | 2660 canvas->drawPoint(1, 1, SK_ColorGREEN); |
| 2661 | 2661 |
| 2662 std::unique_ptr<FakeRecordingSource> recording = | 2662 std::unique_ptr<FakeRecordingSource> recording = |
| 2663 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2663 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2664 PaintFlags paint; | 2664 PaintFlags flags; |
| 2665 paint.setFilterQuality(kLow_SkFilterQuality); | 2665 flags.setFilterQuality(kLow_SkFilterQuality); |
| 2666 recording->add_draw_image_with_paint(surface->makeImageSnapshot(), | 2666 recording->add_draw_image_with_flags(surface->makeImageSnapshot(), |
| 2667 gfx::Point(), paint); | 2667 gfx::Point(), flags); |
| 2668 recording->Rerecord(); | 2668 recording->Rerecord(); |
| 2669 scoped_refptr<FakeRasterSource> raster_source = | 2669 scoped_refptr<FakeRasterSource> raster_source = |
| 2670 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); | 2670 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); |
| 2671 | 2671 |
| 2672 gfx::Transform quad_to_target_transform; | 2672 gfx::Transform quad_to_target_transform; |
| 2673 SharedQuadState* shared_state = | 2673 SharedQuadState* shared_state = |
| 2674 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); | 2674 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); |
| 2675 | 2675 |
| 2676 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2676 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 2677 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, | 2677 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, |
| (...skipping 25 matching lines...) Expand all Loading... |
| 2703 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); | 2703 sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(2, 2); |
| 2704 ASSERT_NE(surface, nullptr); | 2704 ASSERT_NE(surface, nullptr); |
| 2705 SkCanvas* canvas = surface->getCanvas(); | 2705 SkCanvas* canvas = surface->getCanvas(); |
| 2706 canvas->drawPoint(0, 0, SK_ColorGREEN); | 2706 canvas->drawPoint(0, 0, SK_ColorGREEN); |
| 2707 canvas->drawPoint(0, 1, SK_ColorBLUE); | 2707 canvas->drawPoint(0, 1, SK_ColorBLUE); |
| 2708 canvas->drawPoint(1, 0, SK_ColorBLUE); | 2708 canvas->drawPoint(1, 0, SK_ColorBLUE); |
| 2709 canvas->drawPoint(1, 1, SK_ColorGREEN); | 2709 canvas->drawPoint(1, 1, SK_ColorGREEN); |
| 2710 | 2710 |
| 2711 std::unique_ptr<FakeRecordingSource> recording = | 2711 std::unique_ptr<FakeRecordingSource> recording = |
| 2712 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2712 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2713 PaintFlags paint; | 2713 PaintFlags flags; |
| 2714 paint.setFilterQuality(kLow_SkFilterQuality); | 2714 flags.setFilterQuality(kLow_SkFilterQuality); |
| 2715 recording->add_draw_image_with_paint(surface->makeImageSnapshot(), | 2715 recording->add_draw_image_with_flags(surface->makeImageSnapshot(), |
| 2716 gfx::Point(), paint); | 2716 gfx::Point(), flags); |
| 2717 recording->Rerecord(); | 2717 recording->Rerecord(); |
| 2718 scoped_refptr<FakeRasterSource> raster_source = | 2718 scoped_refptr<FakeRasterSource> raster_source = |
| 2719 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); | 2719 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); |
| 2720 | 2720 |
| 2721 gfx::Transform quad_to_target_transform; | 2721 gfx::Transform quad_to_target_transform; |
| 2722 SharedQuadState* shared_state = | 2722 SharedQuadState* shared_state = |
| 2723 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); | 2723 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); |
| 2724 | 2724 |
| 2725 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2725 PictureDrawQuad* quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 2726 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, | 2726 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2908 // 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 |
| 2909 // 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 |
| 2910 // of the layer. | 2910 // of the layer. |
| 2911 gfx::Transform green_quad_to_target_transform; | 2911 gfx::Transform green_quad_to_target_transform; |
| 2912 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)); |
| 2913 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)); |
| 2914 | 2914 |
| 2915 std::unique_ptr<FakeRecordingSource> green_recording = | 2915 std::unique_ptr<FakeRecordingSource> green_recording = |
| 2916 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); | 2916 FakeRecordingSource::CreateFilledRecordingSource(viewport.size()); |
| 2917 | 2917 |
| 2918 PaintFlags red_paint; | 2918 PaintFlags red_flags; |
| 2919 red_paint.setColor(SK_ColorRED); | 2919 red_flags.setColor(SK_ColorRED); |
| 2920 green_recording->add_draw_rect_with_paint(viewport, red_paint); | 2920 green_recording->add_draw_rect_with_flags(viewport, red_flags); |
| 2921 PaintFlags green_paint; | 2921 PaintFlags green_flags; |
| 2922 green_paint.setColor(SK_ColorGREEN); | 2922 green_flags.setColor(SK_ColorGREEN); |
| 2923 green_recording->add_draw_rect_with_paint(green_rect1, green_paint); | 2923 green_recording->add_draw_rect_with_flags(green_rect1, green_flags); |
| 2924 green_recording->add_draw_rect_with_paint(green_rect2, green_paint); | 2924 green_recording->add_draw_rect_with_flags(green_rect2, green_flags); |
| 2925 green_recording->Rerecord(); | 2925 green_recording->Rerecord(); |
| 2926 scoped_refptr<FakeRasterSource> green_raster_source = | 2926 scoped_refptr<FakeRasterSource> green_raster_source = |
| 2927 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); | 2927 FakeRasterSource::CreateFromRecordingSource(green_recording.get(), false); |
| 2928 | 2928 |
| 2929 SharedQuadState* top_right_green_shared_quad_state = | 2929 SharedQuadState* top_right_green_shared_quad_state = |
| 2930 CreateTestSharedQuadState(green_quad_to_target_transform, viewport, | 2930 CreateTestSharedQuadState(green_quad_to_target_transform, viewport, |
| 2931 pass.get()); | 2931 pass.get()); |
| 2932 | 2932 |
| 2933 PictureDrawQuad* green_quad1 = | 2933 PictureDrawQuad* green_quad1 = |
| 2934 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2934 pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2977 float inset = -1.f / contents_scale; | 2977 float inset = -1.f / contents_scale; |
| 2978 blue_layer_rect1.Inset(inset, inset, inset, inset); | 2978 blue_layer_rect1.Inset(inset, inset, inset, inset); |
| 2979 blue_layer_rect2.Inset(inset, inset, inset, inset); | 2979 blue_layer_rect2.Inset(inset, inset, inset, inset); |
| 2980 | 2980 |
| 2981 std::unique_ptr<FakeRecordingSource> recording = | 2981 std::unique_ptr<FakeRecordingSource> recording = |
| 2982 FakeRecordingSource::CreateFilledRecordingSource(layer_rect.size()); | 2982 FakeRecordingSource::CreateFilledRecordingSource(layer_rect.size()); |
| 2983 | 2983 |
| 2984 Region outside(layer_rect); | 2984 Region outside(layer_rect); |
| 2985 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); | 2985 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); |
| 2986 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { | 2986 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { |
| 2987 recording->add_draw_rect_with_paint(iter.rect(), red_paint); | 2987 recording->add_draw_rect_with_flags(iter.rect(), red_flags); |
| 2988 } | 2988 } |
| 2989 | 2989 |
| 2990 PaintFlags blue_paint; | 2990 PaintFlags blue_flags; |
| 2991 blue_paint.setColor(SK_ColorBLUE); | 2991 blue_flags.setColor(SK_ColorBLUE); |
| 2992 recording->add_draw_rectf_with_paint(blue_layer_rect1, blue_paint); | 2992 recording->add_draw_rectf_with_flags(blue_layer_rect1, blue_flags); |
| 2993 recording->add_draw_rectf_with_paint(blue_layer_rect2, blue_paint); | 2993 recording->add_draw_rectf_with_flags(blue_layer_rect2, blue_flags); |
| 2994 recording->Rerecord(); | 2994 recording->Rerecord(); |
| 2995 scoped_refptr<FakeRasterSource> raster_source = | 2995 scoped_refptr<FakeRasterSource> raster_source = |
| 2996 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); | 2996 FakeRasterSource::CreateFromRecordingSource(recording.get(), false); |
| 2997 | 2997 |
| 2998 gfx::Rect content_union_rect( | 2998 gfx::Rect content_union_rect( |
| 2999 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); | 2999 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); |
| 3000 | 3000 |
| 3001 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, | 3001 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, |
| 3002 // so scale an additional 10x to make them 100x100. | 3002 // so scale an additional 10x to make them 100x100. |
| 3003 gfx::Transform quad_to_target_transform; | 3003 gfx::Transform quad_to_target_transform; |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3200 | 3200 |
| 3201 SharedQuadState* shared_state = | 3201 SharedQuadState* shared_state = |
| 3202 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); | 3202 CreateTestSharedQuadState(gfx::Transform(), rect, pass.get()); |
| 3203 | 3203 |
| 3204 // Make a mask. | 3204 // Make a mask. |
| 3205 gfx::Rect mask_rect = rect; | 3205 gfx::Rect mask_rect = rect; |
| 3206 SkBitmap bitmap; | 3206 SkBitmap bitmap; |
| 3207 bitmap.allocPixels( | 3207 bitmap.allocPixels( |
| 3208 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); | 3208 SkImageInfo::MakeN32Premul(mask_rect.width(), mask_rect.height())); |
| 3209 SkCanvas canvas(bitmap); | 3209 SkCanvas canvas(bitmap); |
| 3210 PaintFlags paint; | 3210 PaintFlags flags; |
| 3211 paint.setStyle(PaintFlags::kStroke_Style); | 3211 flags.setStyle(PaintFlags::kStroke_Style); |
| 3212 paint.setStrokeWidth(SkIntToScalar(4)); | 3212 flags.setStrokeWidth(SkIntToScalar(4)); |
| 3213 paint.setColor(SK_ColorGREEN); | 3213 flags.setColor(SK_ColorGREEN); |
| 3214 canvas.clear(SK_ColorWHITE); | 3214 canvas.clear(SK_ColorWHITE); |
| 3215 gfx::Rect inset_rect = rect; | 3215 gfx::Rect inset_rect = rect; |
| 3216 while (!inset_rect.IsEmpty()) { | 3216 while (!inset_rect.IsEmpty()) { |
| 3217 inset_rect.Inset(6, 6, 4, 4); | 3217 inset_rect.Inset(6, 6, 4, 4); |
| 3218 canvas.drawRect(SkRect::MakeXYWH(inset_rect.x(), inset_rect.y(), | 3218 canvas.drawRect(SkRect::MakeXYWH(inset_rect.x(), inset_rect.y(), |
| 3219 inset_rect.width(), inset_rect.height()), | 3219 inset_rect.width(), inset_rect.height()), |
| 3220 paint); | 3220 flags); |
| 3221 inset_rect.Inset(6, 6, 4, 4); | 3221 inset_rect.Inset(6, 6, 4, 4); |
| 3222 } | 3222 } |
| 3223 | 3223 |
| 3224 ResourceId resource = this->resource_provider_->CreateResource( | 3224 ResourceId resource = this->resource_provider_->CreateResource( |
| 3225 mask_rect.size(), ResourceProvider::TEXTURE_HINT_IMMUTABLE, RGBA_8888, | 3225 mask_rect.size(), ResourceProvider::TEXTURE_HINT_IMMUTABLE, RGBA_8888, |
| 3226 gfx::ColorSpace()); | 3226 gfx::ColorSpace()); |
| 3227 { | 3227 { |
| 3228 SkAutoLockPixels lock(bitmap); | 3228 SkAutoLockPixels lock(bitmap); |
| 3229 this->resource_provider_->CopyToResource( | 3229 this->resource_provider_->CopyToResource( |
| 3230 resource, reinterpret_cast<uint8_t*>(bitmap.getPixels()), | 3230 resource, reinterpret_cast<uint8_t*>(bitmap.getPixels()), |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3320 | 3320 |
| 3321 EXPECT_TRUE(this->RunPixelTest(&pass_list, base::FilePath(FILE_PATH_LITERAL( | 3321 EXPECT_TRUE(this->RunPixelTest(&pass_list, base::FilePath(FILE_PATH_LITERAL( |
| 3322 "translucent_rectangles.png")), | 3322 "translucent_rectangles.png")), |
| 3323 ExactPixelComparator(true))); | 3323 ExactPixelComparator(true))); |
| 3324 } | 3324 } |
| 3325 | 3325 |
| 3326 #endif // !defined(OS_ANDROID) | 3326 #endif // !defined(OS_ANDROID) |
| 3327 | 3327 |
| 3328 } // namespace | 3328 } // namespace |
| 3329 } // namespace cc | 3329 } // namespace cc |
| OLD | NEW |