Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Side by Side Diff: cc/quads/draw_quad_unittest.cc

Issue 12642010: Implement on demand quad rasterization for PicturePiles. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase, PictureDrawQuad unit test and avoid ResizeResource. Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/quads/draw_quad.cc ('k') | cc/quads/picture_draw_quad.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « cc/quads/draw_quad.cc ('k') | cc/quads/picture_draw_quad.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698