| 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 "base/message_loop/message_loop.h" | 5 #include "base/message_loop/message_loop.h" |
| 6 #include "cc/output/gl_renderer.h" | 6 #include "cc/output/gl_renderer.h" |
| 7 #include "cc/quads/draw_quad.h" | 7 #include "cc/quads/draw_quad.h" |
| 8 #include "cc/quads/picture_draw_quad.h" | 8 #include "cc/quads/picture_draw_quad.h" |
| 9 #include "cc/quads/texture_draw_quad.h" | 9 #include "cc/quads/texture_draw_quad.h" |
| 10 #include "cc/resources/video_resource_updater.h" | 10 #include "cc/resources/video_resource_updater.h" |
| (...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 742 true, this->back_quad_state_, this->resource_provider_.get(), | 742 true, this->back_quad_state_, this->resource_provider_.get(), |
| 743 this->render_pass_.get()); | 743 this->render_pass_.get()); |
| 744 | 744 |
| 745 SCOPED_TRACE("IntersectingTexturedQuads"); | 745 SCOPED_TRACE("IntersectingTexturedQuads"); |
| 746 this->template AppendBackgroundAndRunTest<TextureDrawQuad>( | 746 this->template AppendBackgroundAndRunTest<TextureDrawQuad>( |
| 747 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f)); | 747 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f)); |
| 748 } | 748 } |
| 749 | 749 |
| 750 TYPED_TEST(IntersectingQuadSoftwareTest, PictureQuads) { | 750 TYPED_TEST(IntersectingQuadSoftwareTest, PictureQuads) { |
| 751 this->SetupQuadStateAndRenderPass(); | 751 this->SetupQuadStateAndRenderPass(); |
| 752 gfx::RectF outer_rect(this->quad_rect_); | 752 gfx::Rect outer_rect(this->quad_rect_); |
| 753 gfx::RectF inner_rect(this->quad_rect_.x() + (this->quad_rect_.width() / 4), | 753 gfx::Rect inner_rect(this->quad_rect_.x() + (this->quad_rect_.width() / 4), |
| 754 this->quad_rect_.y() + (this->quad_rect_.height() / 4), | 754 this->quad_rect_.y() + (this->quad_rect_.height() / 4), |
| 755 this->quad_rect_.width() / 2, | 755 this->quad_rect_.width() / 2, |
| 756 this->quad_rect_.height() / 2); | 756 this->quad_rect_.height() / 2); |
| 757 | 757 |
| 758 SkPaint black_paint; | 758 SkPaint black_paint; |
| 759 black_paint.setColor(SK_ColorBLACK); | 759 black_paint.setColor(SK_ColorBLACK); |
| 760 SkPaint blue_paint; | 760 SkPaint blue_paint; |
| 761 blue_paint.setColor(SK_ColorBLUE); | 761 blue_paint.setColor(SK_ColorBLUE); |
| 762 SkPaint green_paint; | 762 SkPaint green_paint; |
| 763 green_paint.setColor(SK_ColorGREEN); | 763 green_paint.setColor(SK_ColorGREEN); |
| 764 | 764 |
| 765 scoped_ptr<FakePicturePile> blue_recording = | 765 scoped_ptr<FakePicturePile> blue_recording = |
| 766 FakePicturePile::CreateFilledPile(gfx::Size(1000, 1000), | 766 FakePicturePile::CreateFilledPile(gfx::Size(1000, 1000), |
| 767 this->quad_rect_.size()); | 767 this->quad_rect_.size()); |
| 768 blue_recording->add_draw_rect_with_paint(outer_rect, black_paint); | 768 blue_recording->add_draw_rect_with_paint(outer_rect, black_paint); |
| 769 blue_recording->add_draw_rect_with_paint(inner_rect, blue_paint); | 769 blue_recording->add_draw_rect_with_paint(inner_rect, blue_paint); |
| 770 blue_recording->Rerecord(); | 770 blue_recording->Rerecord(); |
| 771 scoped_refptr<FakePicturePileImpl> blue_pile = | 771 scoped_refptr<FakePicturePileImpl> blue_pile = |
| 772 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr); | 772 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr); |
| 773 | 773 |
| 774 PictureDrawQuad* blue_quad = | 774 PictureDrawQuad* blue_quad = |
| 775 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); | 775 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 776 | 776 |
| 777 blue_quad->SetNew(this->front_quad_state_, this->quad_rect_, gfx::Rect(), | 777 blue_quad->SetNew(this->front_quad_state_, this->quad_rect_, gfx::Rect(), |
| 778 this->quad_rect_, this->quad_rect_, this->quad_rect_.size(), | 778 this->quad_rect_, gfx::RectF(this->quad_rect_), |
| 779 false, RGBA_8888, this->quad_rect_, 1.f, blue_pile); | 779 this->quad_rect_.size(), false, RGBA_8888, this->quad_rect_, |
| 780 1.f, blue_pile); |
| 780 | 781 |
| 781 scoped_ptr<FakePicturePile> green_recording = | 782 scoped_ptr<FakePicturePile> green_recording = |
| 782 FakePicturePile::CreateFilledPile(this->quad_rect_.size(), | 783 FakePicturePile::CreateFilledPile(this->quad_rect_.size(), |
| 783 this->quad_rect_.size()); | 784 this->quad_rect_.size()); |
| 784 green_recording->add_draw_rect_with_paint(outer_rect, green_paint); | 785 green_recording->add_draw_rect_with_paint(outer_rect, green_paint); |
| 785 green_recording->add_draw_rect_with_paint(inner_rect, black_paint); | 786 green_recording->add_draw_rect_with_paint(inner_rect, black_paint); |
| 786 green_recording->Rerecord(); | 787 green_recording->Rerecord(); |
| 787 scoped_refptr<FakePicturePileImpl> green_pile = | 788 scoped_refptr<FakePicturePileImpl> green_pile = |
| 788 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); | 789 FakePicturePileImpl::CreateFromPile(green_recording.get(), nullptr); |
| 789 | 790 |
| 790 PictureDrawQuad* green_quad = | 791 PictureDrawQuad* green_quad = |
| 791 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); | 792 this->render_pass_->template CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 792 green_quad->SetNew(this->back_quad_state_, this->quad_rect_, gfx::Rect(), | 793 green_quad->SetNew(this->back_quad_state_, this->quad_rect_, gfx::Rect(), |
| 793 this->quad_rect_, this->quad_rect_, | 794 this->quad_rect_, gfx::RectF(this->quad_rect_), |
| 794 this->quad_rect_.size(), false, RGBA_8888, | 795 this->quad_rect_.size(), false, RGBA_8888, |
| 795 this->quad_rect_, 1.f, green_pile); | 796 this->quad_rect_, 1.f, green_pile); |
| 796 SCOPED_TRACE("IntersectingPictureQuadsPass"); | 797 SCOPED_TRACE("IntersectingPictureQuadsPass"); |
| 797 this->template AppendBackgroundAndRunTest<PictureDrawQuad>( | 798 this->template AppendBackgroundAndRunTest<PictureDrawQuad>( |
| 798 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f)); | 799 FuzzyPixelComparator(false, 2.f, 0.f, 256.f, 256, 0.f)); |
| 799 } | 800 } |
| 800 | 801 |
| 801 TYPED_TEST(IntersectingQuadPixelTest, RenderPassQuads) { | 802 TYPED_TEST(IntersectingQuadPixelTest, RenderPassQuads) { |
| 802 this->SetupQuadStateAndRenderPass(); | 803 this->SetupQuadStateAndRenderPass(); |
| 803 RenderPassId child_pass_id1(2, 2); | 804 RenderPassId child_pass_id1(2, 2); |
| (...skipping 1387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2191 red_paint.setColor(SK_ColorRED); | 2192 red_paint.setColor(SK_ColorRED); |
| 2192 blue_recording->add_draw_rect_with_paint(blue_rect, red_paint); | 2193 blue_recording->add_draw_rect_with_paint(blue_rect, red_paint); |
| 2193 SkPaint blue_paint; | 2194 SkPaint blue_paint; |
| 2194 blue_paint.setColor(SK_ColorBLUE); | 2195 blue_paint.setColor(SK_ColorBLUE); |
| 2195 blue_recording->add_draw_rect_with_paint(blue_clip_rect, blue_paint); | 2196 blue_recording->add_draw_rect_with_paint(blue_clip_rect, blue_paint); |
| 2196 blue_recording->Rerecord(); | 2197 blue_recording->Rerecord(); |
| 2197 | 2198 |
| 2198 scoped_refptr<FakePicturePileImpl> blue_pile = | 2199 scoped_refptr<FakePicturePileImpl> blue_pile = |
| 2199 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr); | 2200 FakePicturePileImpl::CreateFromPile(blue_recording.get(), nullptr); |
| 2200 | 2201 |
| 2202 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); |
| 2201 gfx::Transform blue_quad_to_target_transform; | 2203 gfx::Transform blue_quad_to_target_transform; |
| 2202 gfx::Vector2d offset(viewport.bottom_right() - blue_rect.bottom_right()); | |
| 2203 blue_quad_to_target_transform.Translate(offset.x(), offset.y()); | 2204 blue_quad_to_target_transform.Translate(offset.x(), offset.y()); |
| 2204 gfx::RectF blue_scissor_rect = blue_clip_rect; | 2205 gfx::Rect blue_target_clip_rect = MathUtil::MapEnclosingClippedRect( |
| 2205 blue_quad_to_target_transform.TransformRect(&blue_scissor_rect); | 2206 blue_quad_to_target_transform, blue_clip_rect); |
| 2206 SharedQuadState* blue_shared_state = CreateTestSharedQuadStateClipped( | 2207 SharedQuadState* blue_shared_state = |
| 2207 blue_quad_to_target_transform, blue_rect, | 2208 CreateTestSharedQuadStateClipped(blue_quad_to_target_transform, blue_rect, |
| 2208 gfx::ToEnclosingRect(blue_scissor_rect), pass.get()); | 2209 blue_target_clip_rect, pass.get()); |
| 2209 | 2210 |
| 2210 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); | 2211 PictureDrawQuad* blue_quad = pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); |
| 2211 | 2212 |
| 2212 blue_quad->SetNew(blue_shared_state, | 2213 blue_quad->SetNew(blue_shared_state, |
| 2213 viewport, // Intentionally bigger than clip. | 2214 viewport, // Intentionally bigger than clip. |
| 2214 gfx::Rect(), viewport, gfx::RectF(viewport), | 2215 gfx::Rect(), viewport, gfx::RectF(viewport), |
| 2215 viewport.size(), nearest_neighbor, texture_format, viewport, | 2216 viewport.size(), nearest_neighbor, texture_format, viewport, |
| 2216 1.f, blue_pile.get()); | 2217 1.f, blue_pile.get()); |
| 2217 | 2218 |
| 2218 // One viewport-filling green quad. | 2219 // One viewport-filling green quad. |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2461 gfx::Transform transform_to_root; | 2462 gfx::Transform transform_to_root; |
| 2462 scoped_ptr<RenderPass> pass = | 2463 scoped_ptr<RenderPass> pass = |
| 2463 CreateTestRenderPass(id, viewport, transform_to_root); | 2464 CreateTestRenderPass(id, viewport, transform_to_root); |
| 2464 | 2465 |
| 2465 gfx::Transform quad_to_target_transform; | 2466 gfx::Transform quad_to_target_transform; |
| 2466 SharedQuadState* shared_state = | 2467 SharedQuadState* shared_state = |
| 2467 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); | 2468 CreateTestSharedQuadState(quad_to_target_transform, viewport, pass.get()); |
| 2468 | 2469 |
| 2469 TileDrawQuad* quad = pass->CreateAndAppendDrawQuad<TileDrawQuad>(); | 2470 TileDrawQuad* quad = pass->CreateAndAppendDrawQuad<TileDrawQuad>(); |
| 2470 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, | 2471 quad->SetNew(shared_state, viewport, gfx::Rect(), viewport, resource, |
| 2471 gfx::Rect(tile_size), tile_size, swizzle_contents, | 2472 gfx::RectF(gfx::Rect(tile_size)), tile_size, swizzle_contents, |
| 2472 nearest_neighbor); | 2473 nearest_neighbor); |
| 2473 | 2474 |
| 2474 RenderPassList pass_list; | 2475 RenderPassList pass_list; |
| 2475 pass_list.push_back(pass.Pass()); | 2476 pass_list.push_back(pass.Pass()); |
| 2476 | 2477 |
| 2477 EXPECT_TRUE(this->RunPixelTest( | 2478 EXPECT_TRUE(this->RunPixelTest( |
| 2478 &pass_list, | 2479 &pass_list, |
| 2479 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), | 2480 base::FilePath(FILE_PATH_LITERAL("four_blue_green_checkers.png")), |
| 2480 ExactPixelComparator(true))); | 2481 ExactPixelComparator(true))); |
| 2481 } | 2482 } |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2675 FakePicturePile::CreateFilledPile(pile_tile_size, layer_rect.size()); | 2676 FakePicturePile::CreateFilledPile(pile_tile_size, layer_rect.size()); |
| 2676 | 2677 |
| 2677 Region outside(layer_rect); | 2678 Region outside(layer_rect); |
| 2678 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); | 2679 outside.Subtract(gfx::ToEnclosingRect(union_layer_rect)); |
| 2679 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { | 2680 for (Region::Iterator iter(outside); iter.has_rect(); iter.next()) { |
| 2680 recording->add_draw_rect_with_paint(iter.rect(), red_paint); | 2681 recording->add_draw_rect_with_paint(iter.rect(), red_paint); |
| 2681 } | 2682 } |
| 2682 | 2683 |
| 2683 SkPaint blue_paint; | 2684 SkPaint blue_paint; |
| 2684 blue_paint.setColor(SK_ColorBLUE); | 2685 blue_paint.setColor(SK_ColorBLUE); |
| 2685 recording->add_draw_rect_with_paint(blue_layer_rect1, blue_paint); | 2686 recording->add_draw_rectf_with_paint(blue_layer_rect1, blue_paint); |
| 2686 recording->add_draw_rect_with_paint(blue_layer_rect2, blue_paint); | 2687 recording->add_draw_rectf_with_paint(blue_layer_rect2, blue_paint); |
| 2687 recording->Rerecord(); | 2688 recording->Rerecord(); |
| 2688 scoped_refptr<FakePicturePileImpl> pile = | 2689 scoped_refptr<FakePicturePileImpl> pile = |
| 2689 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); | 2690 FakePicturePileImpl::CreateFromPile(recording.get(), nullptr); |
| 2690 | 2691 |
| 2691 gfx::Rect content_rect( | 2692 gfx::Rect content_rect( |
| 2692 gfx::ScaleToEnclosingRect(layer_rect, contents_scale)); | 2693 gfx::ScaleToEnclosingRect(layer_rect, contents_scale)); |
| 2693 gfx::Rect content_union_rect( | 2694 gfx::Rect content_union_rect( |
| 2694 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); | 2695 gfx::ToEnclosingRect(gfx::ScaleRect(union_layer_rect, contents_scale))); |
| 2695 | 2696 |
| 2696 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, | 2697 // At a scale of 4x the rectangles with a width of 2.5 will take up 10 pixels, |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2934 EXPECT_TRUE(this->RunPixelTest( | 2935 EXPECT_TRUE(this->RunPixelTest( |
| 2935 &pass_list, | 2936 &pass_list, |
| 2936 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), | 2937 base::FilePath(FILE_PATH_LITERAL("wrap_mode_repeat.png")), |
| 2937 FuzzyPixelOffByOneComparator(true))); | 2938 FuzzyPixelOffByOneComparator(true))); |
| 2938 } | 2939 } |
| 2939 | 2940 |
| 2940 #endif // !defined(OS_ANDROID) | 2941 #endif // !defined(OS_ANDROID) |
| 2941 | 2942 |
| 2942 } // namespace | 2943 } // namespace |
| 2943 } // namespace cc | 2944 } // namespace cc |
| OLD | NEW |