OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 "content/common/cc_messages.h" | 5 #include "content/common/cc_messages.h" |
6 | 6 |
7 #include <string.h> | 7 #include <string.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 | 10 |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 } | 136 } |
137 | 137 |
138 void Compare(const IOSurfaceDrawQuad* a, const IOSurfaceDrawQuad* b) { | 138 void Compare(const IOSurfaceDrawQuad* a, const IOSurfaceDrawQuad* b) { |
139 EXPECT_EQ(a->io_surface_size.ToString(), b->io_surface_size.ToString()); | 139 EXPECT_EQ(a->io_surface_size.ToString(), b->io_surface_size.ToString()); |
140 EXPECT_EQ(a->io_surface_resource_id, b->io_surface_resource_id); | 140 EXPECT_EQ(a->io_surface_resource_id, b->io_surface_resource_id); |
141 EXPECT_EQ(a->orientation, b->orientation); | 141 EXPECT_EQ(a->orientation, b->orientation); |
142 } | 142 } |
143 | 143 |
144 void Compare(const RenderPassDrawQuad* a, const RenderPassDrawQuad* b) { | 144 void Compare(const RenderPassDrawQuad* a, const RenderPassDrawQuad* b) { |
145 EXPECT_EQ(a->render_pass_id, b->render_pass_id); | 145 EXPECT_EQ(a->render_pass_id, b->render_pass_id); |
146 EXPECT_EQ(a->is_replica, b->is_replica); | |
147 EXPECT_EQ(a->mask_resource_id, b->mask_resource_id); | 146 EXPECT_EQ(a->mask_resource_id, b->mask_resource_id); |
148 EXPECT_EQ(a->contents_changed_since_last_frame, | |
149 b->contents_changed_since_last_frame); | |
150 EXPECT_EQ(a->mask_uv_rect.ToString(), b->mask_uv_rect.ToString()); | 147 EXPECT_EQ(a->mask_uv_rect.ToString(), b->mask_uv_rect.ToString()); |
151 EXPECT_EQ(a->filters.size(), b->filters.size()); | 148 EXPECT_EQ(a->filters.size(), b->filters.size()); |
152 for (size_t i = 0; i < a->filters.size(); ++i) { | 149 for (size_t i = 0; i < a->filters.size(); ++i) { |
153 if (a->filters.at(i).type() != cc::FilterOperation::REFERENCE) { | 150 if (a->filters.at(i).type() != cc::FilterOperation::REFERENCE) { |
154 EXPECT_EQ(a->filters.at(i), b->filters.at(i)); | 151 EXPECT_EQ(a->filters.at(i), b->filters.at(i)); |
155 } else { | 152 } else { |
156 EXPECT_EQ(b->filters.at(i).type(), cc::FilterOperation::REFERENCE); | 153 EXPECT_EQ(b->filters.at(i).type(), cc::FilterOperation::REFERENCE); |
157 EXPECT_EQ(a->filters.at(i).image_filter()->countInputs(), | 154 EXPECT_EQ(a->filters.at(i).image_filter()->countInputs(), |
158 b->filters.at(i).image_filter()->countInputs()); | 155 b->filters.at(i).image_filter()->countInputs()); |
159 } | 156 } |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 shared_state2_cmp->CopyFrom(shared_state2_in); | 357 shared_state2_cmp->CopyFrom(shared_state2_in); |
361 | 358 |
362 RenderPassDrawQuad* renderpass_in = | 359 RenderPassDrawQuad* renderpass_in = |
363 pass_in->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 360 pass_in->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
364 renderpass_in->SetAll(shared_state2_in, | 361 renderpass_in->SetAll(shared_state2_in, |
365 arbitrary_rect1, | 362 arbitrary_rect1, |
366 arbitrary_rect2_inside_rect1, | 363 arbitrary_rect2_inside_rect1, |
367 arbitrary_rect1_inside_rect1, | 364 arbitrary_rect1_inside_rect1, |
368 arbitrary_bool1, | 365 arbitrary_bool1, |
369 arbitrary_id, | 366 arbitrary_id, |
370 arbitrary_bool2, | |
371 arbitrary_resourceid2, | 367 arbitrary_resourceid2, |
372 arbitrary_rect1, | |
373 arbitrary_rectf1, | 368 arbitrary_rectf1, |
374 arbitrary_filters1, | 369 arbitrary_filters1, |
375 arbitrary_vector2df1, | 370 arbitrary_vector2df1, |
376 arbitrary_filters2); | 371 arbitrary_filters2); |
377 pass_cmp->CopyFromAndAppendRenderPassDrawQuad( | 372 pass_cmp->CopyFromAndAppendRenderPassDrawQuad( |
378 renderpass_in, | 373 renderpass_in, |
379 renderpass_in->shared_quad_state, | 374 renderpass_in->shared_quad_state, |
380 renderpass_in->render_pass_id); | 375 renderpass_in->render_pass_id); |
381 | 376 |
382 SharedQuadState* shared_state3_in = pass_in->CreateAndAppendSharedQuadState(); | 377 SharedQuadState* shared_state3_in = pass_in->CreateAndAppendSharedQuadState(); |
(...skipping 302 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
685 DelegatedFrameData frame_out; | 680 DelegatedFrameData frame_out; |
686 PickleIterator iter(msg); | 681 PickleIterator iter(msg); |
687 EXPECT_TRUE(IPC::ParamTraits<DelegatedFrameData>::Read(&msg, | 682 EXPECT_TRUE(IPC::ParamTraits<DelegatedFrameData>::Read(&msg, |
688 &iter, &frame_out)); | 683 &iter, &frame_out)); |
689 | 684 |
690 ASSERT_EQ(2u, frame_out.resource_list.size()); | 685 ASSERT_EQ(2u, frame_out.resource_list.size()); |
691 Compare(arbitrary_resource1, frame_out.resource_list[0]); | 686 Compare(arbitrary_resource1, frame_out.resource_list[0]); |
692 Compare(arbitrary_resource2, frame_out.resource_list[1]); | 687 Compare(arbitrary_resource2, frame_out.resource_list[1]); |
693 } | 688 } |
694 | 689 |
695 TEST_F(CCMessagesTest, LargestQuadType) { | |
696 size_t largest = 0; | |
697 | |
698 bool done = false; | |
699 for (int i = 0; !done; ++i) { | |
700 switch (static_cast<DrawQuad::Material>(i)) { | |
701 case cc::DrawQuad::CHECKERBOARD: | |
702 largest = std::max(largest, sizeof(cc::CheckerboardDrawQuad)); | |
703 break; | |
704 case cc::DrawQuad::DEBUG_BORDER: | |
705 largest = std::max(largest, sizeof(cc::DebugBorderDrawQuad)); | |
706 break; | |
707 case cc::DrawQuad::IO_SURFACE_CONTENT: | |
708 largest = std::max(largest, sizeof(cc::IOSurfaceDrawQuad)); | |
709 break; | |
710 case cc::DrawQuad::PICTURE_CONTENT: | |
711 largest = std::max(largest, sizeof(cc::PictureDrawQuad)); | |
712 break; | |
713 case cc::DrawQuad::TEXTURE_CONTENT: | |
714 largest = std::max(largest, sizeof(cc::TextureDrawQuad)); | |
715 break; | |
716 case cc::DrawQuad::RENDER_PASS: | |
717 largest = std::max(largest, sizeof(cc::RenderPassDrawQuad)); | |
718 break; | |
719 case cc::DrawQuad::SOLID_COLOR: | |
720 largest = std::max(largest, sizeof(cc::SolidColorDrawQuad)); | |
721 break; | |
722 case cc::DrawQuad::SURFACE_CONTENT: | |
723 largest = std::max(largest, sizeof(cc::SurfaceDrawQuad)); | |
724 break; | |
725 case cc::DrawQuad::TILED_CONTENT: | |
726 largest = std::max(largest, sizeof(cc::TileDrawQuad)); | |
727 break; | |
728 case cc::DrawQuad::STREAM_VIDEO_CONTENT: | |
729 largest = std::max(largest, sizeof(cc::StreamVideoDrawQuad)); | |
730 break; | |
731 case cc::DrawQuad::YUV_VIDEO_CONTENT: | |
732 largest = std::max(largest, sizeof(cc::YUVVideoDrawQuad)); | |
733 break; | |
734 case cc::DrawQuad::INVALID: | |
735 break; | |
736 default: | |
737 done = true; | |
738 } | |
739 } | |
740 | |
741 // Verify the largest DrawQuad type is RenderPassDrawQuad. If this ever | |
742 // changes, then the ReserveSizeForRenderPassWrite() method needs to be | |
743 // updated as well to use the new largest quad. | |
744 EXPECT_EQ(sizeof(RenderPassDrawQuad), largest); | |
745 } | |
746 | |
747 TEST_F(CCMessagesTest, SoftwareFrameData) { | 690 TEST_F(CCMessagesTest, SoftwareFrameData) { |
748 cc::SoftwareFrameData frame_in; | 691 cc::SoftwareFrameData frame_in; |
749 frame_in.id = 3; | 692 frame_in.id = 3; |
750 frame_in.size = gfx::Size(40, 20); | 693 frame_in.size = gfx::Size(40, 20); |
751 frame_in.damage_rect = gfx::Rect(5, 18, 31, 44); | 694 frame_in.damage_rect = gfx::Rect(5, 18, 31, 44); |
752 frame_in.bitmap_id = cc::SharedBitmap::GenerateId(); | 695 frame_in.bitmap_id = cc::SharedBitmap::GenerateId(); |
753 | 696 |
754 // Write the frame. | 697 // Write the frame. |
755 IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL); | 698 IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL); |
756 IPC::ParamTraits<cc::SoftwareFrameData>::Write(&msg, frame_in); | 699 IPC::ParamTraits<cc::SoftwareFrameData>::Write(&msg, frame_in); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
804 SoftwareFrameData frame_out; | 747 SoftwareFrameData frame_out; |
805 PickleIterator iter(msg); | 748 PickleIterator iter(msg); |
806 EXPECT_EQ( | 749 EXPECT_EQ( |
807 expect_read, | 750 expect_read, |
808 IPC::ParamTraits<SoftwareFrameData>::Read(&msg, &iter, &frame_out)); | 751 IPC::ParamTraits<SoftwareFrameData>::Read(&msg, &iter, &frame_out)); |
809 } | 752 } |
810 } | 753 } |
811 | 754 |
812 } // namespace | 755 } // namespace |
813 } // namespace content | 756 } // namespace content |
OLD | NEW |