Chromium Code Reviews| 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 "cc/quads/draw_quad.h" | 5 #include "cc/quads/draw_quad.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "cc/base/math_util.h" | 8 #include "cc/base/math_util.h" |
| 9 #include "cc/quads/checkerboard_draw_quad.h" | 9 #include "cc/quads/checkerboard_draw_quad.h" |
| 10 #include "cc/quads/debug_border_draw_quad.h" | 10 #include "cc/quads/debug_border_draw_quad.h" |
| 11 #include "cc/quads/io_surface_draw_quad.h" | 11 #include "cc/quads/io_surface_draw_quad.h" |
| 12 #include "cc/quads/picture_draw_quad.h" | |
| 12 #include "cc/quads/render_pass_draw_quad.h" | 13 #include "cc/quads/render_pass_draw_quad.h" |
| 13 #include "cc/quads/solid_color_draw_quad.h" | 14 #include "cc/quads/solid_color_draw_quad.h" |
| 14 #include "cc/quads/stream_video_draw_quad.h" | 15 #include "cc/quads/stream_video_draw_quad.h" |
| 15 #include "cc/quads/texture_draw_quad.h" | 16 #include "cc/quads/texture_draw_quad.h" |
| 16 #include "cc/quads/tile_draw_quad.h" | 17 #include "cc/quads/tile_draw_quad.h" |
| 17 #include "cc/quads/yuv_video_draw_quad.h" | 18 #include "cc/quads/yuv_video_draw_quad.h" |
| 19 #include "cc/resources/picture_pile_impl.h" | |
| 18 #include "cc/test/geometry_test_utils.h" | 20 #include "cc/test/geometry_test_utils.h" |
| 19 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
| 20 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperations .h" | 22 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperations .h" |
| 21 #include "third_party/skia/include/effects/SkBlurImageFilter.h" | 23 #include "third_party/skia/include/effects/SkBlurImageFilter.h" |
| 22 #include "ui/gfx/transform.h" | 24 #include "ui/gfx/transform.h" |
| 23 | 25 |
| 24 namespace cc { | 26 namespace cc { |
| 25 namespace { | 27 namespace { |
| 26 | 28 |
| 27 TEST(DrawQuadTest, CopySharedQuadState) { | 29 TEST(DrawQuadTest, CopySharedQuadState) { |
| (...skipping 620 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 648 EXPECT_EQ(y_plane.size, copy_quad->y_plane.size); | 650 EXPECT_EQ(y_plane.size, copy_quad->y_plane.size); |
| 649 EXPECT_EQ(y_plane.format, copy_quad->y_plane.format); | 651 EXPECT_EQ(y_plane.format, copy_quad->y_plane.format); |
| 650 EXPECT_EQ(u_plane.resource_id, copy_quad->u_plane.resource_id); | 652 EXPECT_EQ(u_plane.resource_id, copy_quad->u_plane.resource_id); |
| 651 EXPECT_EQ(u_plane.size, copy_quad->u_plane.size); | 653 EXPECT_EQ(u_plane.size, copy_quad->u_plane.size); |
| 652 EXPECT_EQ(u_plane.format, copy_quad->u_plane.format); | 654 EXPECT_EQ(u_plane.format, copy_quad->u_plane.format); |
| 653 EXPECT_EQ(v_plane.resource_id, copy_quad->v_plane.resource_id); | 655 EXPECT_EQ(v_plane.resource_id, copy_quad->v_plane.resource_id); |
| 654 EXPECT_EQ(v_plane.size, copy_quad->v_plane.size); | 656 EXPECT_EQ(v_plane.size, copy_quad->v_plane.size); |
| 655 EXPECT_EQ(v_plane.format, copy_quad->v_plane.format); | 657 EXPECT_EQ(v_plane.format, copy_quad->v_plane.format); |
| 656 } | 658 } |
| 657 | 659 |
| 660 TEST(DrawQuadTest, CopyPictureDrawQuad) { | |
| 661 gfx::Rect opaque_rect(33, 44, 22, 33); | |
| 662 unsigned resource_id = 104; | |
| 663 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); | |
| 664 gfx::Size texture_size(85, 32); | |
| 665 bool swizzle_contents = true; | |
| 666 gfx::Rect content_rect(30, 40, 20, 30); | |
| 667 float contents_scale = 3.141592f; | |
| 668 scoped_refptr<PicturePileImpl> picture_pile = PicturePileImpl::Create(false); | |
| 669 CREATE_SHARED_STATE(); | |
| 670 | |
| 671 CREATE_QUAD_7_NEW(PictureDrawQuad, | |
| 672 opaque_rect, | |
| 673 tex_coord_rect, | |
| 674 texture_size, | |
| 675 swizzle_contents, | |
| 676 content_rect, | |
| 677 contents_scale, | |
| 678 picture_pile); | |
| 679 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material); | |
| 680 EXPECT_RECT_EQ(opaque_rect, copy_quad->opaque_rect); | |
| 681 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); | |
| 682 EXPECT_EQ(texture_size, copy_quad->texture_size); | |
| 683 EXPECT_EQ(swizzle_contents, copy_quad->swizzle_contents); | |
| 684 EXPECT_RECT_EQ(content_rect, copy_quad->content_rect); | |
| 685 EXPECT_EQ(contents_scale, copy_quad->contents_scale); | |
| 686 EXPECT_EQ(picture_pile, copy_quad->picture_pile); | |
| 687 | |
| 688 CREATE_QUAD_6_ALL(PictureDrawQuad, | |
| 689 tex_coord_rect, | |
| 690 texture_size, | |
| 691 swizzle_contents, | |
| 692 content_rect, | |
| 693 contents_scale, | |
| 694 picture_pile); | |
| 695 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material); | |
| 696 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); | |
| 697 EXPECT_EQ(texture_size, copy_quad->texture_size); | |
| 698 EXPECT_EQ(swizzle_contents, copy_quad->swizzle_contents); | |
| 699 EXPECT_RECT_EQ(content_rect, copy_quad->content_rect); | |
| 700 EXPECT_EQ(contents_scale, copy_quad->contents_scale); | |
| 701 EXPECT_EQ(picture_pile, copy_quad->picture_pile); | |
| 702 } | |
| 703 | |
| 658 class DrawQuadIteratorTest : public testing::Test { | 704 class DrawQuadIteratorTest : public testing::Test { |
| 659 protected: | 705 protected: |
| 660 ResourceProvider::ResourceId IncrementResourceId( | 706 ResourceProvider::ResourceId IncrementResourceId( |
| 661 ResourceProvider::ResourceId id) { | 707 ResourceProvider::ResourceId id) { |
| 662 ++num_resources_; | 708 ++num_resources_; |
| 663 return id + 1; | 709 return id + 1; |
| 664 } | 710 } |
| 665 | 711 |
| 666 int IterateAndCount(DrawQuad* quad) { | 712 int IterateAndCount(DrawQuad* quad) { |
| 667 num_resources_ = 0; | 713 num_resources_ = 0; |
| 668 quad->IterateResources(base::Bind( | 714 quad->IterateResources(base::Bind( |
| 669 &DrawQuadIteratorTest::IncrementResourceId, base::Unretained(this))); | 715 &DrawQuadIteratorTest::IncrementResourceId, base::Unretained(this))); |
| 670 return num_resources_; | 716 return num_resources_; |
| 671 } | 717 } |
| 672 | 718 |
| 673 private: | 719 private: |
| 674 int num_resources_; | 720 int num_resources_; |
| 675 }; | 721 }; |
| 676 | 722 |
| 677 TEST_F(DrawQuadIteratorTest, CheckerboardDrawQuad) { | 723 TEST_F(DrawQuadIteratorTest, CheckerboardDrawQuad) { |
| 678 SkColor color = 0xfabb0011; | 724 SkColor color = 0xfabb0011; |
| 679 | 725 |
| 680 CREATE_SHARED_STATE(); | 726 CREATE_SHARED_STATE(); |
| 681 CREATE_QUAD_1_NEW(CheckerboardDrawQuad, color); | 727 CREATE_QUAD_1_NEW(CheckerboardDrawQuad, color); |
| 682 EXPECT_EQ(0, IterateAndCount(quad_new.get())); | 728 EXPECT_EQ(0, IterateAndCount(quad_new.get())); |
| 683 } | 729 } |
| 684 | 730 |
| 685 TEST_F(DrawQuadIteratorTest, DebugBorderDrawQuad) { | 731 TEST_F(DrawQuadIteratorTest, DebugBorderDrawQuad) { |
|
danakj
2013/03/25 16:47:59
Thanks for the test! Can you do an iterator one as
| |
| 686 SkColor color = 0xfabb0011; | 732 SkColor color = 0xfabb0011; |
| 687 int width = 99; | 733 int width = 99; |
| 688 | 734 |
| 689 CREATE_SHARED_STATE(); | 735 CREATE_SHARED_STATE(); |
| 690 CREATE_QUAD_2_NEW(DebugBorderDrawQuad, color, width); | 736 CREATE_QUAD_2_NEW(DebugBorderDrawQuad, color, width); |
| 691 EXPECT_EQ(0, IterateAndCount(quad_new.get())); | 737 EXPECT_EQ(0, IterateAndCount(quad_new.get())); |
| 692 } | 738 } |
| 693 | 739 |
| 694 TEST_F(DrawQuadIteratorTest, IOSurfaceDrawQuad) { | 740 TEST_F(DrawQuadIteratorTest, IOSurfaceDrawQuad) { |
| 695 gfx::Rect opaque_rect(3, 7, 10, 12); | 741 gfx::Rect opaque_rect(3, 7, 10, 12); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 819 EXPECT_EQ(u_plane.resource_id, quad_new->u_plane.resource_id); | 865 EXPECT_EQ(u_plane.resource_id, quad_new->u_plane.resource_id); |
| 820 EXPECT_EQ(v_plane.resource_id, quad_new->v_plane.resource_id); | 866 EXPECT_EQ(v_plane.resource_id, quad_new->v_plane.resource_id); |
| 821 EXPECT_EQ(3, IterateAndCount(quad_new.get())); | 867 EXPECT_EQ(3, IterateAndCount(quad_new.get())); |
| 822 EXPECT_EQ(y_plane.resource_id + 1, quad_new->y_plane.resource_id); | 868 EXPECT_EQ(y_plane.resource_id + 1, quad_new->y_plane.resource_id); |
| 823 EXPECT_EQ(u_plane.resource_id + 1, quad_new->u_plane.resource_id); | 869 EXPECT_EQ(u_plane.resource_id + 1, quad_new->u_plane.resource_id); |
| 824 EXPECT_EQ(v_plane.resource_id + 1, quad_new->v_plane.resource_id); | 870 EXPECT_EQ(v_plane.resource_id + 1, quad_new->v_plane.resource_id); |
| 825 } | 871 } |
| 826 | 872 |
| 827 } // namespace | 873 } // namespace |
| 828 } // namespace cc | 874 } // namespace cc |
| OLD | NEW |