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 <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
593 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); | 593 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); |
594 } | 594 } |
595 | 595 |
596 TEST(DrawQuadTest, CopyTileDrawQuad) { | 596 TEST(DrawQuadTest, CopyTileDrawQuad) { |
597 gfx::Rect opaque_rect(33, 44, 22, 33); | 597 gfx::Rect opaque_rect(33, 44, 22, 33); |
598 gfx::Rect visible_rect(40, 50, 30, 20); | 598 gfx::Rect visible_rect(40, 50, 30, 20); |
599 unsigned resource_id = 104; | 599 unsigned resource_id = 104; |
600 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); | 600 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); |
601 gfx::Size texture_size(85, 32); | 601 gfx::Size texture_size(85, 32); |
602 bool swizzle_contents = true; | 602 bool swizzle_contents = true; |
| 603 bool nearest_neighbor = true; |
603 CREATE_SHARED_STATE(); | 604 CREATE_SHARED_STATE(); |
604 | 605 |
605 CREATE_QUAD_6_NEW(TileDrawQuad, | 606 CREATE_QUAD_7_NEW(TileDrawQuad, |
606 opaque_rect, | 607 opaque_rect, |
607 visible_rect, | 608 visible_rect, |
608 resource_id, | 609 resource_id, |
609 tex_coord_rect, | 610 tex_coord_rect, |
610 texture_size, | 611 texture_size, |
611 swizzle_contents); | 612 swizzle_contents, |
| 613 nearest_neighbor); |
612 EXPECT_EQ(DrawQuad::TILED_CONTENT, copy_quad->material); | 614 EXPECT_EQ(DrawQuad::TILED_CONTENT, copy_quad->material); |
613 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); | 615 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); |
614 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 616 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
615 EXPECT_EQ(resource_id, copy_quad->resource_id); | 617 EXPECT_EQ(resource_id, copy_quad->resource_id); |
616 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); | 618 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); |
617 EXPECT_EQ(texture_size, copy_quad->texture_size); | 619 EXPECT_EQ(texture_size, copy_quad->texture_size); |
618 EXPECT_EQ(swizzle_contents, copy_quad->swizzle_contents); | 620 EXPECT_EQ(swizzle_contents, copy_quad->swizzle_contents); |
| 621 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); |
619 | 622 |
620 CREATE_QUAD_4_ALL(TileDrawQuad, | 623 CREATE_QUAD_5_ALL(TileDrawQuad, |
621 resource_id, | 624 resource_id, |
622 tex_coord_rect, | 625 tex_coord_rect, |
623 texture_size, | 626 texture_size, |
624 swizzle_contents); | 627 swizzle_contents, |
| 628 nearest_neighbor); |
625 EXPECT_EQ(DrawQuad::TILED_CONTENT, copy_quad->material); | 629 EXPECT_EQ(DrawQuad::TILED_CONTENT, copy_quad->material); |
626 EXPECT_EQ(resource_id, copy_quad->resource_id); | 630 EXPECT_EQ(resource_id, copy_quad->resource_id); |
627 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); | 631 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); |
628 EXPECT_EQ(texture_size, copy_quad->texture_size); | 632 EXPECT_EQ(texture_size, copy_quad->texture_size); |
629 EXPECT_EQ(swizzle_contents, copy_quad->swizzle_contents); | 633 EXPECT_EQ(swizzle_contents, copy_quad->swizzle_contents); |
| 634 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); |
630 } | 635 } |
631 | 636 |
632 TEST(DrawQuadTest, CopyYUVVideoDrawQuad) { | 637 TEST(DrawQuadTest, CopyYUVVideoDrawQuad) { |
633 gfx::Rect opaque_rect(33, 47, 10, 12); | 638 gfx::Rect opaque_rect(33, 47, 10, 12); |
634 gfx::Rect visible_rect(40, 50, 30, 20); | 639 gfx::Rect visible_rect(40, 50, 30, 20); |
635 gfx::RectF tex_coord_rect(0.0f, 0.0f, 0.75f, 0.5f); | 640 gfx::RectF tex_coord_rect(0.0f, 0.0f, 0.75f, 0.5f); |
636 ResourceProvider::ResourceId y_plane_resource_id = 45; | 641 ResourceProvider::ResourceId y_plane_resource_id = 45; |
637 ResourceProvider::ResourceId u_plane_resource_id = 532; | 642 ResourceProvider::ResourceId u_plane_resource_id = 532; |
638 ResourceProvider::ResourceId v_plane_resource_id = 4; | 643 ResourceProvider::ResourceId v_plane_resource_id = 4; |
639 ResourceProvider::ResourceId a_plane_resource_id = 63; | 644 ResourceProvider::ResourceId a_plane_resource_id = 63; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
673 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id); | 678 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id); |
674 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id); | 679 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id); |
675 EXPECT_EQ(color_space, copy_quad->color_space); | 680 EXPECT_EQ(color_space, copy_quad->color_space); |
676 } | 681 } |
677 | 682 |
678 TEST(DrawQuadTest, CopyPictureDrawQuad) { | 683 TEST(DrawQuadTest, CopyPictureDrawQuad) { |
679 gfx::Rect opaque_rect(33, 44, 22, 33); | 684 gfx::Rect opaque_rect(33, 44, 22, 33); |
680 gfx::Rect visible_rect(40, 50, 30, 20); | 685 gfx::Rect visible_rect(40, 50, 30, 20); |
681 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); | 686 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); |
682 gfx::Size texture_size(85, 32); | 687 gfx::Size texture_size(85, 32); |
| 688 bool nearest_neighbor = true; |
683 ResourceFormat texture_format = RGBA_8888; | 689 ResourceFormat texture_format = RGBA_8888; |
684 gfx::Rect content_rect(30, 40, 20, 30); | 690 gfx::Rect content_rect(30, 40, 20, 30); |
685 float contents_scale = 3.141592f; | 691 float contents_scale = 3.141592f; |
686 scoped_refptr<RasterSource> raster_source = PicturePileImpl::Create(); | 692 scoped_refptr<RasterSource> raster_source = PicturePileImpl::Create(); |
687 CREATE_SHARED_STATE(); | 693 CREATE_SHARED_STATE(); |
688 | 694 |
689 CREATE_QUAD_8_NEW(PictureDrawQuad, opaque_rect, visible_rect, tex_coord_rect, | 695 CREATE_QUAD_9_NEW(PictureDrawQuad, opaque_rect, visible_rect, tex_coord_rect, |
690 texture_size, texture_format, content_rect, contents_scale, | 696 texture_size, nearest_neighbor, texture_format, |
691 raster_source); | 697 content_rect, contents_scale, raster_source); |
692 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material); | 698 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material); |
693 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); | 699 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); |
694 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 700 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
695 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); | 701 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); |
696 EXPECT_EQ(texture_size, copy_quad->texture_size); | 702 EXPECT_EQ(texture_size, copy_quad->texture_size); |
| 703 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); |
697 EXPECT_EQ(texture_format, copy_quad->texture_format); | 704 EXPECT_EQ(texture_format, copy_quad->texture_format); |
698 EXPECT_EQ(content_rect, copy_quad->content_rect); | 705 EXPECT_EQ(content_rect, copy_quad->content_rect); |
699 EXPECT_EQ(contents_scale, copy_quad->contents_scale); | 706 EXPECT_EQ(contents_scale, copy_quad->contents_scale); |
700 EXPECT_EQ(raster_source, copy_quad->raster_source); | 707 EXPECT_EQ(raster_source, copy_quad->raster_source); |
701 | 708 |
702 CREATE_QUAD_6_ALL(PictureDrawQuad, tex_coord_rect, texture_size, | 709 CREATE_QUAD_7_ALL(PictureDrawQuad, tex_coord_rect, texture_size, |
703 texture_format, content_rect, contents_scale, | 710 nearest_neighbor, texture_format, content_rect, |
704 raster_source); | 711 contents_scale, raster_source); |
705 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material); | 712 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material); |
706 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); | 713 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); |
707 EXPECT_EQ(texture_size, copy_quad->texture_size); | 714 EXPECT_EQ(texture_size, copy_quad->texture_size); |
| 715 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); |
708 EXPECT_EQ(texture_format, copy_quad->texture_format); | 716 EXPECT_EQ(texture_format, copy_quad->texture_format); |
709 EXPECT_EQ(content_rect, copy_quad->content_rect); | 717 EXPECT_EQ(content_rect, copy_quad->content_rect); |
710 EXPECT_EQ(contents_scale, copy_quad->contents_scale); | 718 EXPECT_EQ(contents_scale, copy_quad->contents_scale); |
711 EXPECT_EQ(raster_source, copy_quad->raster_source); | 719 EXPECT_EQ(raster_source, copy_quad->raster_source); |
712 } | 720 } |
713 | 721 |
714 class DrawQuadIteratorTest : public testing::Test { | 722 class DrawQuadIteratorTest : public testing::Test { |
715 protected: | 723 protected: |
716 ResourceProvider::ResourceId IncrementResourceId( | 724 ResourceProvider::ResourceId IncrementResourceId( |
717 ResourceProvider::ResourceId id) { | 725 ResourceProvider::ResourceId id) { |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
864 EXPECT_EQ(resource_id + 1, quad_new->resource_id); | 872 EXPECT_EQ(resource_id + 1, quad_new->resource_id); |
865 } | 873 } |
866 | 874 |
867 TEST_F(DrawQuadIteratorTest, TileDrawQuad) { | 875 TEST_F(DrawQuadIteratorTest, TileDrawQuad) { |
868 gfx::Rect opaque_rect(33, 44, 22, 33); | 876 gfx::Rect opaque_rect(33, 44, 22, 33); |
869 gfx::Rect visible_rect(40, 50, 30, 20); | 877 gfx::Rect visible_rect(40, 50, 30, 20); |
870 unsigned resource_id = 104; | 878 unsigned resource_id = 104; |
871 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); | 879 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); |
872 gfx::Size texture_size(85, 32); | 880 gfx::Size texture_size(85, 32); |
873 bool swizzle_contents = true; | 881 bool swizzle_contents = true; |
| 882 bool nearest_neighbor = true; |
874 | 883 |
875 CREATE_SHARED_STATE(); | 884 CREATE_SHARED_STATE(); |
876 CREATE_QUAD_6_NEW(TileDrawQuad, | 885 CREATE_QUAD_7_NEW(TileDrawQuad, |
877 opaque_rect, | 886 opaque_rect, |
878 visible_rect, | 887 visible_rect, |
879 resource_id, | 888 resource_id, |
880 tex_coord_rect, | 889 tex_coord_rect, |
881 texture_size, | 890 texture_size, |
882 swizzle_contents); | 891 swizzle_contents, |
| 892 nearest_neighbor); |
883 EXPECT_EQ(resource_id, quad_new->resource_id); | 893 EXPECT_EQ(resource_id, quad_new->resource_id); |
884 EXPECT_EQ(1, IterateAndCount(quad_new)); | 894 EXPECT_EQ(1, IterateAndCount(quad_new)); |
885 EXPECT_EQ(resource_id + 1, quad_new->resource_id); | 895 EXPECT_EQ(resource_id + 1, quad_new->resource_id); |
886 } | 896 } |
887 | 897 |
888 TEST_F(DrawQuadIteratorTest, YUVVideoDrawQuad) { | 898 TEST_F(DrawQuadIteratorTest, YUVVideoDrawQuad) { |
889 gfx::Rect opaque_rect(33, 47, 10, 12); | 899 gfx::Rect opaque_rect(33, 47, 10, 12); |
890 gfx::Rect visible_rect(40, 50, 30, 20); | 900 gfx::Rect visible_rect(40, 50, 30, 20); |
891 gfx::RectF tex_coord_rect(0.0f, 0.0f, 0.75f, 0.5f); | 901 gfx::RectF tex_coord_rect(0.0f, 0.0f, 0.75f, 0.5f); |
892 ResourceProvider::ResourceId y_plane_resource_id = 45; | 902 ResourceProvider::ResourceId y_plane_resource_id = 45; |
(...skipping 24 matching lines...) Expand all Loading... |
917 EXPECT_EQ(v_plane_resource_id + 1, quad_new->v_plane_resource_id); | 927 EXPECT_EQ(v_plane_resource_id + 1, quad_new->v_plane_resource_id); |
918 EXPECT_EQ(a_plane_resource_id + 1, quad_new->a_plane_resource_id); | 928 EXPECT_EQ(a_plane_resource_id + 1, quad_new->a_plane_resource_id); |
919 } | 929 } |
920 | 930 |
921 // Disabled until picture draw quad is supported for ubercomp: crbug.com/231715 | 931 // Disabled until picture draw quad is supported for ubercomp: crbug.com/231715 |
922 TEST_F(DrawQuadIteratorTest, DISABLED_PictureDrawQuad) { | 932 TEST_F(DrawQuadIteratorTest, DISABLED_PictureDrawQuad) { |
923 gfx::Rect opaque_rect(33, 44, 22, 33); | 933 gfx::Rect opaque_rect(33, 44, 22, 33); |
924 gfx::Rect visible_rect(40, 50, 30, 20); | 934 gfx::Rect visible_rect(40, 50, 30, 20); |
925 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); | 935 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); |
926 gfx::Size texture_size(85, 32); | 936 gfx::Size texture_size(85, 32); |
| 937 bool nearest_neighbor = true; |
927 ResourceFormat texture_format = RGBA_8888; | 938 ResourceFormat texture_format = RGBA_8888; |
928 gfx::Rect content_rect(30, 40, 20, 30); | 939 gfx::Rect content_rect(30, 40, 20, 30); |
929 float contents_scale = 3.141592f; | 940 float contents_scale = 3.141592f; |
930 scoped_refptr<PicturePileImpl> raster_source = PicturePileImpl::Create(); | 941 scoped_refptr<PicturePileImpl> raster_source = PicturePileImpl::Create(); |
931 | 942 |
932 CREATE_SHARED_STATE(); | 943 CREATE_SHARED_STATE(); |
933 CREATE_QUAD_8_NEW(PictureDrawQuad, opaque_rect, visible_rect, tex_coord_rect, | 944 CREATE_QUAD_9_NEW(PictureDrawQuad, opaque_rect, visible_rect, tex_coord_rect, |
934 texture_size, texture_format, content_rect, contents_scale, | 945 texture_size, nearest_neighbor, texture_format, |
935 raster_source); | 946 content_rect, contents_scale, raster_source); |
936 EXPECT_EQ(0, IterateAndCount(quad_new)); | 947 EXPECT_EQ(0, IterateAndCount(quad_new)); |
937 } | 948 } |
938 | 949 |
939 TEST(DrawQuadTest, LargestQuadType) { | 950 TEST(DrawQuadTest, LargestQuadType) { |
940 size_t largest = 0; | 951 size_t largest = 0; |
941 | 952 |
942 for (int i = 0; i <= DrawQuad::MATERIAL_LAST; ++i) { | 953 for (int i = 0; i <= DrawQuad::MATERIAL_LAST; ++i) { |
943 switch (static_cast<DrawQuad::Material>(i)) { | 954 switch (static_cast<DrawQuad::Material>(i)) { |
944 case DrawQuad::CHECKERBOARD: | 955 case DrawQuad::CHECKERBOARD: |
945 largest = std::max(largest, sizeof(CheckerboardDrawQuad)); | 956 largest = std::max(largest, sizeof(CheckerboardDrawQuad)); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1022 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); | 1033 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); |
1023 break; | 1034 break; |
1024 case DrawQuad::INVALID: | 1035 case DrawQuad::INVALID: |
1025 break; | 1036 break; |
1026 } | 1037 } |
1027 } | 1038 } |
1028 } | 1039 } |
1029 | 1040 |
1030 } // namespace | 1041 } // namespace |
1031 } // namespace cc | 1042 } // namespace cc |
OLD | NEW |