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 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 shared_state2_cmp->CopyFrom(shared_state2_in); | 355 shared_state2_cmp->CopyFrom(shared_state2_in); |
359 | 356 |
360 RenderPassDrawQuad* renderpass_in = | 357 RenderPassDrawQuad* renderpass_in = |
361 pass_in->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | 358 pass_in->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); |
362 renderpass_in->SetAll(shared_state2_in, | 359 renderpass_in->SetAll(shared_state2_in, |
363 arbitrary_rect1, | 360 arbitrary_rect1, |
364 arbitrary_rect2_inside_rect1, | 361 arbitrary_rect2_inside_rect1, |
365 arbitrary_rect1_inside_rect1, | 362 arbitrary_rect1_inside_rect1, |
366 arbitrary_bool1, | 363 arbitrary_bool1, |
367 arbitrary_id, | 364 arbitrary_id, |
368 arbitrary_bool2, | |
369 arbitrary_resourceid2, | 365 arbitrary_resourceid2, |
370 arbitrary_rect1, | |
371 arbitrary_rectf1, | 366 arbitrary_rectf1, |
372 arbitrary_filters1, | 367 arbitrary_filters1, |
373 arbitrary_filters2); | 368 arbitrary_filters2); |
374 pass_cmp->CopyFromAndAppendRenderPassDrawQuad( | 369 pass_cmp->CopyFromAndAppendRenderPassDrawQuad( |
375 renderpass_in, | 370 renderpass_in, |
376 renderpass_in->shared_quad_state, | 371 renderpass_in->shared_quad_state, |
377 renderpass_in->render_pass_id); | 372 renderpass_in->render_pass_id); |
378 | 373 |
379 SharedQuadState* shared_state3_in = pass_in->CreateAndAppendSharedQuadState(); | 374 SharedQuadState* shared_state3_in = pass_in->CreateAndAppendSharedQuadState(); |
380 shared_state3_in->SetAll(arbitrary_matrix, | 375 shared_state3_in->SetAll(arbitrary_matrix, |
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
682 DelegatedFrameData frame_out; | 677 DelegatedFrameData frame_out; |
683 PickleIterator iter(msg); | 678 PickleIterator iter(msg); |
684 EXPECT_TRUE(IPC::ParamTraits<DelegatedFrameData>::Read(&msg, | 679 EXPECT_TRUE(IPC::ParamTraits<DelegatedFrameData>::Read(&msg, |
685 &iter, &frame_out)); | 680 &iter, &frame_out)); |
686 | 681 |
687 ASSERT_EQ(2u, frame_out.resource_list.size()); | 682 ASSERT_EQ(2u, frame_out.resource_list.size()); |
688 Compare(arbitrary_resource1, frame_out.resource_list[0]); | 683 Compare(arbitrary_resource1, frame_out.resource_list[0]); |
689 Compare(arbitrary_resource2, frame_out.resource_list[1]); | 684 Compare(arbitrary_resource2, frame_out.resource_list[1]); |
690 } | 685 } |
691 | 686 |
692 TEST_F(CCMessagesTest, LargestQuadType) { | |
693 size_t largest = 0; | |
694 | |
695 bool done = false; | |
696 for (int i = 0; !done; ++i) { | |
697 switch (static_cast<DrawQuad::Material>(i)) { | |
698 case cc::DrawQuad::CHECKERBOARD: | |
699 largest = std::max(largest, sizeof(cc::CheckerboardDrawQuad)); | |
700 break; | |
701 case cc::DrawQuad::DEBUG_BORDER: | |
702 largest = std::max(largest, sizeof(cc::DebugBorderDrawQuad)); | |
703 break; | |
704 case cc::DrawQuad::IO_SURFACE_CONTENT: | |
705 largest = std::max(largest, sizeof(cc::IOSurfaceDrawQuad)); | |
706 break; | |
707 case cc::DrawQuad::PICTURE_CONTENT: | |
708 largest = std::max(largest, sizeof(cc::PictureDrawQuad)); | |
709 break; | |
710 case cc::DrawQuad::TEXTURE_CONTENT: | |
711 largest = std::max(largest, sizeof(cc::TextureDrawQuad)); | |
712 break; | |
713 case cc::DrawQuad::RENDER_PASS: | |
714 largest = std::max(largest, sizeof(cc::RenderPassDrawQuad)); | |
715 break; | |
716 case cc::DrawQuad::SOLID_COLOR: | |
717 largest = std::max(largest, sizeof(cc::SolidColorDrawQuad)); | |
718 break; | |
719 case cc::DrawQuad::SURFACE_CONTENT: | |
720 largest = std::max(largest, sizeof(cc::SurfaceDrawQuad)); | |
721 break; | |
722 case cc::DrawQuad::TILED_CONTENT: | |
723 largest = std::max(largest, sizeof(cc::TileDrawQuad)); | |
724 break; | |
725 case cc::DrawQuad::STREAM_VIDEO_CONTENT: | |
726 largest = std::max(largest, sizeof(cc::StreamVideoDrawQuad)); | |
727 break; | |
728 case cc::DrawQuad::YUV_VIDEO_CONTENT: | |
729 largest = std::max(largest, sizeof(cc::YUVVideoDrawQuad)); | |
730 break; | |
731 case cc::DrawQuad::INVALID: | |
732 break; | |
733 default: | |
734 done = true; | |
735 } | |
736 } | |
737 | |
738 // Verify the largest DrawQuad type is RenderPassDrawQuad. If this ever | |
739 // changes, then the ReserveSizeForRenderPassWrite() method needs to be | |
740 // updated as well to use the new largest quad. | |
741 EXPECT_EQ(sizeof(RenderPassDrawQuad), largest); | |
742 } | |
743 | |
744 TEST_F(CCMessagesTest, SoftwareFrameData) { | 687 TEST_F(CCMessagesTest, SoftwareFrameData) { |
745 cc::SoftwareFrameData frame_in; | 688 cc::SoftwareFrameData frame_in; |
746 frame_in.id = 3; | 689 frame_in.id = 3; |
747 frame_in.size = gfx::Size(40, 20); | 690 frame_in.size = gfx::Size(40, 20); |
748 frame_in.damage_rect = gfx::Rect(5, 18, 31, 44); | 691 frame_in.damage_rect = gfx::Rect(5, 18, 31, 44); |
749 frame_in.bitmap_id = cc::SharedBitmap::GenerateId(); | 692 frame_in.bitmap_id = cc::SharedBitmap::GenerateId(); |
750 | 693 |
751 // Write the frame. | 694 // Write the frame. |
752 IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL); | 695 IPC::Message msg(1, 2, IPC::Message::PRIORITY_NORMAL); |
753 IPC::ParamTraits<cc::SoftwareFrameData>::Write(&msg, frame_in); | 696 IPC::ParamTraits<cc::SoftwareFrameData>::Write(&msg, frame_in); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
801 SoftwareFrameData frame_out; | 744 SoftwareFrameData frame_out; |
802 PickleIterator iter(msg); | 745 PickleIterator iter(msg); |
803 EXPECT_EQ( | 746 EXPECT_EQ( |
804 expect_read, | 747 expect_read, |
805 IPC::ParamTraits<SoftwareFrameData>::Read(&msg, &iter, &frame_out)); | 748 IPC::ParamTraits<SoftwareFrameData>::Read(&msg, &iter, &frame_out)); |
806 } | 749 } |
807 } | 750 } |
808 | 751 |
809 } // namespace | 752 } // namespace |
810 } // namespace content | 753 } // namespace content |
OLD | NEW |