Chromium Code Reviews| 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> | |
| 10 | |
| 9 #include "base/command_line.h" | 11 #include "base/command_line.h" |
| 10 #include "cc/output/compositor_frame.h" | 12 #include "cc/output/compositor_frame.h" |
| 11 #include "content/public/common/content_switches.h" | 13 #include "content/public/common/content_switches.h" |
| 12 #include "ipc/ipc_message.h" | 14 #include "ipc/ipc_message.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" | 15 #include "testing/gtest/include/gtest/gtest.h" |
| 14 #include "third_party/khronos/GLES2/gl2ext.h" | 16 #include "third_party/khronos/GLES2/gl2ext.h" |
| 15 #include "third_party/skia/include/effects/SkBlurImageFilter.h" | 17 #include "third_party/skia/include/effects/SkBlurImageFilter.h" |
| 16 | 18 |
| 17 using cc::CheckerboardDrawQuad; | 19 using cc::CheckerboardDrawQuad; |
| 18 using cc::DelegatedFrameData; | 20 using cc::DelegatedFrameData; |
| (...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 548 DelegatedFrameData frame_out; | 550 DelegatedFrameData frame_out; |
| 549 PickleIterator iter(msg); | 551 PickleIterator iter(msg); |
| 550 EXPECT_TRUE(IPC::ParamTraits<DelegatedFrameData>::Read(&msg, | 552 EXPECT_TRUE(IPC::ParamTraits<DelegatedFrameData>::Read(&msg, |
| 551 &iter, &frame_out)); | 553 &iter, &frame_out)); |
| 552 | 554 |
| 553 ASSERT_EQ(2u, frame_out.resource_list.size()); | 555 ASSERT_EQ(2u, frame_out.resource_list.size()); |
| 554 Compare(arbitrary_resource1, frame_out.resource_list[0]); | 556 Compare(arbitrary_resource1, frame_out.resource_list[0]); |
| 555 Compare(arbitrary_resource2, frame_out.resource_list[1]); | 557 Compare(arbitrary_resource2, frame_out.resource_list[1]); |
| 556 } | 558 } |
| 557 | 559 |
| 560 TEST_F(CCMessagesTest, LargestQuadType) { | |
| 561 size_t largest = 0; | |
| 562 | |
| 563 bool done = false; | |
| 564 for (int i = 0; !done; ++i) { | |
| 565 switch (static_cast<DrawQuad::Material>(i)) { | |
| 566 case cc::DrawQuad::CHECKERBOARD: | |
| 567 largest = std::max(largest, sizeof(cc::CheckerboardDrawQuad)); | |
| 568 break; | |
| 569 case cc::DrawQuad::DEBUG_BORDER: | |
| 570 largest = std::max(largest, sizeof(cc::DebugBorderDrawQuad)); | |
| 571 break; | |
| 572 case cc::DrawQuad::IO_SURFACE_CONTENT: | |
| 573 largest = std::max(largest, sizeof(cc::IOSurfaceDrawQuad)); | |
| 574 break; | |
| 575 case cc::DrawQuad::PICTURE_CONTENT: | |
| 576 largest = std::max(largest, sizeof(cc::PictureDrawQuad)); | |
| 577 break; | |
| 578 case cc::DrawQuad::TEXTURE_CONTENT: | |
| 579 largest = std::max(largest, sizeof(cc::TextureDrawQuad)); | |
| 580 break; | |
| 581 case cc::DrawQuad::RENDER_PASS: | |
| 582 largest = std::max(largest, sizeof(cc::RenderPassDrawQuad)); | |
| 583 break; | |
| 584 case cc::DrawQuad::SOLID_COLOR: | |
| 585 largest = std::max(largest, sizeof(cc::SolidColorDrawQuad)); | |
| 586 break; | |
| 587 case cc::DrawQuad::TILED_CONTENT: | |
| 588 largest = std::max(largest, sizeof(cc::TileDrawQuad)); | |
| 589 break; | |
| 590 case cc::DrawQuad::STREAM_VIDEO_CONTENT: | |
| 591 largest = std::max(largest, sizeof(cc::StreamVideoDrawQuad)); | |
| 592 break; | |
| 593 case cc::DrawQuad::YUV_VIDEO_CONTENT: | |
| 594 largest = std::max(largest, sizeof(cc::YUVVideoDrawQuad)); | |
| 595 break; | |
| 596 case cc::DrawQuad::INVALID: | |
| 597 break; | |
| 598 default: | |
| 599 done = true; | |
| 600 } | |
| 601 } | |
| 602 | |
| 603 // Verify the largest DrawQuad type is RenderPassDrawQuad. If this ever | |
| 604 // changes, then the ParamTraits<cc::RenderPass>::ReserveSizeForWrite() method | |
| 605 // needs to be updated as well to use the new largest quad. | |
| 606 EXPECT_EQ(sizeof(RenderPassDrawQuad), largest); | |
|
Tom Sepez
2013/10/24 17:48:06
Create a union consisting of all these types, and
danakj
2013/10/24 17:51:38
That does not create a compiler error, however, if
| |
| 607 } | |
| 608 | |
| 558 } // namespace | 609 } // namespace |
| 559 } // namespace content | 610 } // namespace content |
| OLD | NEW |