| 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 |