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 <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
11 #include "base/bind.h" | 11 #include "base/bind.h" |
12 #include "base/compiler_specific.h" | 12 #include "base/compiler_specific.h" |
13 #include "cc/base/math_util.h" | 13 #include "cc/base/math_util.h" |
14 #include "cc/output/filter_operations.h" | 14 #include "cc/output/filter_operations.h" |
15 #include "cc/quads/debug_border_draw_quad.h" | 15 #include "cc/quads/debug_border_draw_quad.h" |
16 #include "cc/quads/io_surface_draw_quad.h" | |
17 #include "cc/quads/largest_draw_quad.h" | 16 #include "cc/quads/largest_draw_quad.h" |
18 #include "cc/quads/picture_draw_quad.h" | 17 #include "cc/quads/picture_draw_quad.h" |
19 #include "cc/quads/render_pass.h" | 18 #include "cc/quads/render_pass.h" |
20 #include "cc/quads/render_pass_draw_quad.h" | 19 #include "cc/quads/render_pass_draw_quad.h" |
21 #include "cc/quads/solid_color_draw_quad.h" | 20 #include "cc/quads/solid_color_draw_quad.h" |
22 #include "cc/quads/stream_video_draw_quad.h" | 21 #include "cc/quads/stream_video_draw_quad.h" |
23 #include "cc/quads/surface_draw_quad.h" | 22 #include "cc/quads/surface_draw_quad.h" |
24 #include "cc/quads/texture_draw_quad.h" | 23 #include "cc/quads/texture_draw_quad.h" |
25 #include "cc/quads/tile_draw_quad.h" | 24 #include "cc/quads/tile_draw_quad.h" |
26 #include "cc/quads/yuv_video_draw_quad.h" | 25 #include "cc/quads/yuv_video_draw_quad.h" |
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 397 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
399 EXPECT_EQ(color, copy_quad->color); | 398 EXPECT_EQ(color, copy_quad->color); |
400 EXPECT_EQ(width, copy_quad->width); | 399 EXPECT_EQ(width, copy_quad->width); |
401 | 400 |
402 CREATE_QUAD_2_ALL(DebugBorderDrawQuad, color, width); | 401 CREATE_QUAD_2_ALL(DebugBorderDrawQuad, color, width); |
403 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); | 402 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); |
404 EXPECT_EQ(color, copy_quad->color); | 403 EXPECT_EQ(color, copy_quad->color); |
405 EXPECT_EQ(width, copy_quad->width); | 404 EXPECT_EQ(width, copy_quad->width); |
406 } | 405 } |
407 | 406 |
408 TEST(DrawQuadTest, CopyIOSurfaceDrawQuad) { | |
409 gfx::Rect opaque_rect(33, 47, 10, 12); | |
410 gfx::Rect visible_rect(40, 50, 30, 20); | |
411 gfx::Size size(58, 95); | |
412 ResourceId resource_id = 72; | |
413 IOSurfaceDrawQuad::Orientation orientation = IOSurfaceDrawQuad::UNFLIPPED; | |
414 CREATE_SHARED_STATE(); | |
415 | |
416 CREATE_QUAD_5_NEW(IOSurfaceDrawQuad, opaque_rect, visible_rect, size, | |
417 resource_id, orientation); | |
418 EXPECT_EQ(DrawQuad::IO_SURFACE_CONTENT, copy_quad->material); | |
419 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | |
420 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); | |
421 EXPECT_EQ(size, copy_quad->io_surface_size); | |
422 EXPECT_EQ(resource_id, copy_quad->io_surface_resource_id()); | |
423 EXPECT_EQ(orientation, copy_quad->orientation); | |
424 | |
425 CREATE_QUAD_3_ALL(IOSurfaceDrawQuad, size, resource_id, orientation); | |
426 EXPECT_EQ(DrawQuad::IO_SURFACE_CONTENT, copy_quad->material); | |
427 EXPECT_EQ(size, copy_quad->io_surface_size); | |
428 EXPECT_EQ(resource_id, copy_quad->io_surface_resource_id()); | |
429 EXPECT_EQ(orientation, copy_quad->orientation); | |
430 } | |
431 | |
432 TEST(DrawQuadTest, CopyRenderPassDrawQuad) { | 407 TEST(DrawQuadTest, CopyRenderPassDrawQuad) { |
433 gfx::Rect visible_rect(40, 50, 30, 20); | 408 gfx::Rect visible_rect(40, 50, 30, 20); |
434 RenderPassId render_pass_id(22, 64); | 409 RenderPassId render_pass_id(22, 64); |
435 ResourceId mask_resource_id = 78; | 410 ResourceId mask_resource_id = 78; |
436 gfx::Vector2dF mask_uv_scale(33.f, 19.f); | 411 gfx::Vector2dF mask_uv_scale(33.f, 19.f); |
437 gfx::Size mask_texture_size(128, 134); | 412 gfx::Size mask_texture_size(128, 134); |
438 FilterOperations filters; | 413 FilterOperations filters; |
439 filters.Append(FilterOperation::CreateBlurFilter(1.f)); | 414 filters.Append(FilterOperation::CreateBlurFilter(1.f)); |
440 gfx::Vector2dF filters_scale; | 415 gfx::Vector2dF filters_scale; |
441 FilterOperations background_filters; | 416 FilterOperations background_filters; |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
750 TEST_F(DrawQuadIteratorTest, DebugBorderDrawQuad) { | 725 TEST_F(DrawQuadIteratorTest, DebugBorderDrawQuad) { |
751 gfx::Rect visible_rect(40, 50, 30, 20); | 726 gfx::Rect visible_rect(40, 50, 30, 20); |
752 SkColor color = 0xfabb0011; | 727 SkColor color = 0xfabb0011; |
753 int width = 99; | 728 int width = 99; |
754 | 729 |
755 CREATE_SHARED_STATE(); | 730 CREATE_SHARED_STATE(); |
756 CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width); | 731 CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width); |
757 EXPECT_EQ(0, IterateAndCount(quad_new)); | 732 EXPECT_EQ(0, IterateAndCount(quad_new)); |
758 } | 733 } |
759 | 734 |
760 TEST_F(DrawQuadIteratorTest, IOSurfaceDrawQuad) { | |
761 gfx::Rect opaque_rect(33, 47, 10, 12); | |
762 gfx::Rect visible_rect(40, 50, 30, 20); | |
763 gfx::Size size(58, 95); | |
764 ResourceId resource_id = 72; | |
765 IOSurfaceDrawQuad::Orientation orientation = IOSurfaceDrawQuad::UNFLIPPED; | |
766 | |
767 CREATE_SHARED_STATE(); | |
768 CREATE_QUAD_5_NEW(IOSurfaceDrawQuad, opaque_rect, visible_rect, size, | |
769 resource_id, orientation); | |
770 EXPECT_EQ(resource_id, quad_new->io_surface_resource_id()); | |
771 EXPECT_EQ(1, IterateAndCount(quad_new)); | |
772 EXPECT_EQ(resource_id + 1, quad_new->io_surface_resource_id()); | |
773 } | |
774 | |
775 TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) { | 735 TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) { |
776 gfx::Rect visible_rect(40, 50, 30, 20); | 736 gfx::Rect visible_rect(40, 50, 30, 20); |
777 RenderPassId render_pass_id(22, 64); | 737 RenderPassId render_pass_id(22, 64); |
778 ResourceId mask_resource_id = 78; | 738 ResourceId mask_resource_id = 78; |
779 gfx::Vector2dF mask_uv_scale(33.f, 19.f); | 739 gfx::Vector2dF mask_uv_scale(33.f, 19.f); |
780 gfx::Size mask_texture_size(128, 134); | 740 gfx::Size mask_texture_size(128, 134); |
781 FilterOperations filters; | 741 FilterOperations filters; |
782 filters.Append(FilterOperation::CreateBlurFilter(1.f)); | 742 filters.Append(FilterOperation::CreateBlurFilter(1.f)); |
783 gfx::Vector2dF filters_scale(2.f, 3.f); | 743 gfx::Vector2dF filters_scale(2.f, 3.f); |
784 FilterOperations background_filters; | 744 FilterOperations background_filters; |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
951 } | 911 } |
952 | 912 |
953 TEST(DrawQuadTest, LargestQuadType) { | 913 TEST(DrawQuadTest, LargestQuadType) { |
954 size_t largest = 0; | 914 size_t largest = 0; |
955 | 915 |
956 for (int i = 0; i <= DrawQuad::MATERIAL_LAST; ++i) { | 916 for (int i = 0; i <= DrawQuad::MATERIAL_LAST; ++i) { |
957 switch (static_cast<DrawQuad::Material>(i)) { | 917 switch (static_cast<DrawQuad::Material>(i)) { |
958 case DrawQuad::DEBUG_BORDER: | 918 case DrawQuad::DEBUG_BORDER: |
959 largest = std::max(largest, sizeof(DebugBorderDrawQuad)); | 919 largest = std::max(largest, sizeof(DebugBorderDrawQuad)); |
960 break; | 920 break; |
961 case DrawQuad::IO_SURFACE_CONTENT: | |
962 largest = std::max(largest, sizeof(IOSurfaceDrawQuad)); | |
963 break; | |
964 case DrawQuad::PICTURE_CONTENT: | 921 case DrawQuad::PICTURE_CONTENT: |
965 largest = std::max(largest, sizeof(PictureDrawQuad)); | 922 largest = std::max(largest, sizeof(PictureDrawQuad)); |
966 break; | 923 break; |
967 case DrawQuad::TEXTURE_CONTENT: | 924 case DrawQuad::TEXTURE_CONTENT: |
968 largest = std::max(largest, sizeof(TextureDrawQuad)); | 925 largest = std::max(largest, sizeof(TextureDrawQuad)); |
969 break; | 926 break; |
970 case DrawQuad::RENDER_PASS: | 927 case DrawQuad::RENDER_PASS: |
971 largest = std::max(largest, sizeof(RenderPassDrawQuad)); | 928 largest = std::max(largest, sizeof(RenderPassDrawQuad)); |
972 break; | 929 break; |
973 case DrawQuad::SOLID_COLOR: | 930 case DrawQuad::SOLID_COLOR: |
(...skipping 21 matching lines...) Expand all Loading... |
995 return; | 952 return; |
996 | 953 |
997 // On failure, output the size of all quads for debugging. | 954 // On failure, output the size of all quads for debugging. |
998 LOG(ERROR) << "largest " << largest; | 955 LOG(ERROR) << "largest " << largest; |
999 LOG(ERROR) << "kLargestDrawQuad " << LargestDrawQuadSize(); | 956 LOG(ERROR) << "kLargestDrawQuad " << LargestDrawQuadSize(); |
1000 for (int i = 0; i <= DrawQuad::MATERIAL_LAST; ++i) { | 957 for (int i = 0; i <= DrawQuad::MATERIAL_LAST; ++i) { |
1001 switch (static_cast<DrawQuad::Material>(i)) { | 958 switch (static_cast<DrawQuad::Material>(i)) { |
1002 case DrawQuad::DEBUG_BORDER: | 959 case DrawQuad::DEBUG_BORDER: |
1003 LOG(ERROR) << "DebugBorderDrawQuad " << sizeof(DebugBorderDrawQuad); | 960 LOG(ERROR) << "DebugBorderDrawQuad " << sizeof(DebugBorderDrawQuad); |
1004 break; | 961 break; |
1005 case DrawQuad::IO_SURFACE_CONTENT: | |
1006 LOG(ERROR) << "IOSurfaceDrawQuad " << sizeof(IOSurfaceDrawQuad); | |
1007 break; | |
1008 case DrawQuad::PICTURE_CONTENT: | 962 case DrawQuad::PICTURE_CONTENT: |
1009 LOG(ERROR) << "PictureDrawQuad " << sizeof(PictureDrawQuad); | 963 LOG(ERROR) << "PictureDrawQuad " << sizeof(PictureDrawQuad); |
1010 break; | 964 break; |
1011 case DrawQuad::TEXTURE_CONTENT: | 965 case DrawQuad::TEXTURE_CONTENT: |
1012 LOG(ERROR) << "TextureDrawQuad " << sizeof(TextureDrawQuad); | 966 LOG(ERROR) << "TextureDrawQuad " << sizeof(TextureDrawQuad); |
1013 break; | 967 break; |
1014 case DrawQuad::RENDER_PASS: | 968 case DrawQuad::RENDER_PASS: |
1015 LOG(ERROR) << "RenderPassDrawQuad " << sizeof(RenderPassDrawQuad); | 969 LOG(ERROR) << "RenderPassDrawQuad " << sizeof(RenderPassDrawQuad); |
1016 break; | 970 break; |
1017 case DrawQuad::SOLID_COLOR: | 971 case DrawQuad::SOLID_COLOR: |
(...skipping 12 matching lines...) Expand all Loading... |
1030 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); | 984 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); |
1031 break; | 985 break; |
1032 case DrawQuad::INVALID: | 986 case DrawQuad::INVALID: |
1033 break; | 987 break; |
1034 } | 988 } |
1035 } | 989 } |
1036 } | 990 } |
1037 | 991 |
1038 } // namespace | 992 } // namespace |
1039 } // namespace cc | 993 } // namespace cc |
OLD | NEW |