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 |