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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 118 CompareDrawQuad(quad_new, copy_new, copy_shared_state); \ | 118 CompareDrawQuad(quad_new, copy_new, copy_shared_state); \ |
| 119 const Type* copy_quad = Type::MaterialCast(copy_new); \ | 119 const Type* copy_quad = Type::MaterialCast(copy_new); \ |
| 120 ALLOW_UNUSED_LOCAL(copy_quad); | 120 ALLOW_UNUSED_LOCAL(copy_quad); |
| 121 | 121 |
| 122 #define SETUP_AND_COPY_QUAD_ALL_RP(Type, quad, a) \ | 122 #define SETUP_AND_COPY_QUAD_ALL_RP(Type, quad, a) \ |
| 123 DrawQuad* copy_all = render_pass->CopyFromAndAppendRenderPassDrawQuad( \ | 123 DrawQuad* copy_all = render_pass->CopyFromAndAppendRenderPassDrawQuad( \ |
| 124 quad_all, copy_shared_state, a); \ | 124 quad_all, copy_shared_state, a); \ |
| 125 CompareDrawQuad(quad_all, copy_all, copy_shared_state); \ | 125 CompareDrawQuad(quad_all, copy_all, copy_shared_state); \ |
| 126 copy_quad = Type::MaterialCast(copy_all); | 126 copy_quad = Type::MaterialCast(copy_all); |
| 127 | 127 |
| 128 #define CREATE_QUAD_ALL(Type, ...) \ | |
|
danakj
2017/06/07 15:26:40
Oh cute, can you remove all the CREATE_QUAD_X_ALL
| |
| 129 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ | |
| 130 { \ | |
| 131 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \ | |
| 132 quad_visible_rect, needs_blending, \ | |
| 133 __VA_ARGS__); \ | |
| 134 } \ | |
| 135 SETUP_AND_COPY_QUAD_ALL(Type, quad_all); | |
| 136 | |
| 128 #define CREATE_QUAD_1_NEW(Type, a) \ | 137 #define CREATE_QUAD_1_NEW(Type, a) \ |
| 129 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 138 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
| 130 { QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a); } \ | 139 { QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a); } \ |
| 131 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); | 140 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); |
| 132 | 141 |
| 133 #define CREATE_QUAD_1_ALL(Type, a) \ | 142 #define CREATE_QUAD_1_ALL(Type, a) \ |
| 134 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ | 143 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ |
| 135 { \ | 144 { \ |
| 136 QUAD_DATA quad_all->SetAll(shared_state, \ | 145 QUAD_DATA quad_all->SetAll(shared_state, \ |
| 137 quad_rect, \ | 146 quad_rect, \ |
| (...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 629 gfx::RectF uv_tex_coord_rect(20, 25, 15, 10); | 638 gfx::RectF uv_tex_coord_rect(20, 25, 15, 10); |
| 630 gfx::Size ya_tex_size(32, 68); | 639 gfx::Size ya_tex_size(32, 68); |
| 631 gfx::Size uv_tex_size(41, 51); | 640 gfx::Size uv_tex_size(41, 51); |
| 632 ResourceId y_plane_resource_id = 45; | 641 ResourceId y_plane_resource_id = 45; |
| 633 ResourceId u_plane_resource_id = 532; | 642 ResourceId u_plane_resource_id = 532; |
| 634 ResourceId v_plane_resource_id = 4; | 643 ResourceId v_plane_resource_id = 4; |
| 635 ResourceId a_plane_resource_id = 63; | 644 ResourceId a_plane_resource_id = 63; |
| 636 float resource_offset = 0.5f; | 645 float resource_offset = 0.5f; |
| 637 float resource_multiplier = 2.001f; | 646 float resource_multiplier = 2.001f; |
| 638 uint32_t bits_per_channel = 5; | 647 uint32_t bits_per_channel = 5; |
| 648 bool require_overlay = true; | |
| 639 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG; | 649 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG; |
| 640 gfx::ColorSpace video_color_space = gfx::ColorSpace::CreateJpeg(); | 650 gfx::ColorSpace video_color_space = gfx::ColorSpace::CreateJpeg(); |
| 641 CREATE_SHARED_STATE(); | 651 CREATE_SHARED_STATE(); |
| 642 | 652 |
| 643 CREATE_QUAD_15_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect, | 653 CREATE_QUAD_15_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect, |
| 644 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, | 654 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, |
| 645 uv_tex_size, y_plane_resource_id, u_plane_resource_id, | 655 uv_tex_size, y_plane_resource_id, u_plane_resource_id, |
| 646 v_plane_resource_id, a_plane_resource_id, color_space, | 656 v_plane_resource_id, a_plane_resource_id, color_space, |
| 647 video_color_space, resource_offset, resource_multiplier, | 657 video_color_space, resource_offset, resource_multiplier, |
| 648 bits_per_channel); | 658 bits_per_channel); |
| 649 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material); | 659 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material); |
| 650 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); | 660 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); |
| 651 EXPECT_EQ(visible_rect, copy_quad->visible_rect); | 661 EXPECT_EQ(visible_rect, copy_quad->visible_rect); |
| 652 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect); | 662 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect); |
| 653 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect); | 663 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect); |
| 654 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size); | 664 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size); |
| 655 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size); | 665 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size); |
| 656 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id()); | 666 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id()); |
| 657 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id()); | 667 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id()); |
| 658 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id()); | 668 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id()); |
| 659 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id()); | 669 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id()); |
| 660 EXPECT_EQ(color_space, copy_quad->color_space); | 670 EXPECT_EQ(color_space, copy_quad->color_space); |
| 661 EXPECT_EQ(resource_offset, copy_quad->resource_offset); | 671 EXPECT_EQ(resource_offset, copy_quad->resource_offset); |
| 662 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier); | 672 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier); |
| 663 EXPECT_EQ(bits_per_channel, copy_quad->bits_per_channel); | 673 EXPECT_EQ(bits_per_channel, copy_quad->bits_per_channel); |
| 674 EXPECT_FALSE(copy_quad->require_overlay); | |
| 664 | 675 |
| 665 CREATE_QUAD_13_ALL(YUVVideoDrawQuad, ya_tex_coord_rect, uv_tex_coord_rect, | 676 CREATE_QUAD_ALL(YUVVideoDrawQuad, ya_tex_coord_rect, uv_tex_coord_rect, |
| 666 ya_tex_size, uv_tex_size, y_plane_resource_id, | 677 ya_tex_size, uv_tex_size, y_plane_resource_id, |
| 667 u_plane_resource_id, v_plane_resource_id, | 678 u_plane_resource_id, v_plane_resource_id, a_plane_resource_id, |
| 668 a_plane_resource_id, color_space, video_color_space, | 679 color_space, video_color_space, resource_offset, |
| 669 resource_offset, resource_multiplier, bits_per_channel); | 680 resource_multiplier, bits_per_channel, require_overlay); |
| 670 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material); | 681 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material); |
| 671 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect); | 682 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect); |
| 672 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect); | 683 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect); |
| 673 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size); | 684 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size); |
| 674 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size); | 685 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size); |
| 675 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id()); | 686 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id()); |
| 676 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id()); | 687 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id()); |
| 677 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id()); | 688 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id()); |
| 678 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id()); | 689 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id()); |
| 679 EXPECT_EQ(color_space, copy_quad->color_space); | 690 EXPECT_EQ(color_space, copy_quad->color_space); |
| 680 EXPECT_EQ(resource_offset, copy_quad->resource_offset); | 691 EXPECT_EQ(resource_offset, copy_quad->resource_offset); |
| 681 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier); | 692 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier); |
| 682 EXPECT_EQ(bits_per_channel, copy_quad->bits_per_channel); | 693 EXPECT_EQ(bits_per_channel, copy_quad->bits_per_channel); |
| 694 EXPECT_EQ(require_overlay, copy_quad->require_overlay); | |
| 683 } | 695 } |
| 684 | 696 |
| 685 TEST(DrawQuadTest, CopyPictureDrawQuad) { | 697 TEST(DrawQuadTest, CopyPictureDrawQuad) { |
| 686 gfx::Rect opaque_rect(33, 44, 22, 33); | 698 gfx::Rect opaque_rect(33, 44, 22, 33); |
| 687 gfx::Rect visible_rect(40, 50, 30, 20); | 699 gfx::Rect visible_rect(40, 50, 30, 20); |
| 688 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); | 700 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); |
| 689 gfx::Size texture_size(85, 32); | 701 gfx::Size texture_size(85, 32); |
| 690 bool nearest_neighbor = true; | 702 bool nearest_neighbor = true; |
| 691 ResourceFormat texture_format = RGBA_8888; | 703 ResourceFormat texture_format = RGBA_8888; |
| 692 gfx::Rect content_rect(30, 40, 20, 30); | 704 gfx::Rect content_rect(30, 40, 20, 30); |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 987 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); | 999 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); |
| 988 break; | 1000 break; |
| 989 case DrawQuad::INVALID: | 1001 case DrawQuad::INVALID: |
| 990 break; | 1002 break; |
| 991 } | 1003 } |
| 992 } | 1004 } |
| 993 } | 1005 } |
| 994 | 1006 |
| 995 } // namespace | 1007 } // namespace |
| 996 } // namespace cc | 1008 } // namespace cc |
| OLD | NEW |