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> | 9 #include <algorithm> |
| 10 | 10 |
| 11 #include "cc/output/compositor_frame.h" | 11 #include "cc/output/compositor_frame.h" |
| 12 #include "ipc/ipc_message.h" | 12 #include "ipc/ipc_message.h" |
| 13 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 14 #include "third_party/khronos/GLES2/gl2ext.h" | 14 #include "third_party/khronos/GLES2/gl2ext.h" |
| 15 #include "third_party/skia/include/effects/SkBlurImageFilter.h" | 15 #include "third_party/skia/include/effects/SkBlurImageFilter.h" |
| 16 | 16 |
| 17 using cc::CheckerboardDrawQuad; | 17 using cc::CheckerboardDrawQuad; |
| 18 using cc::DelegatedFrameData; | 18 using cc::DelegatedFrameData; |
| 19 using cc::DebugBorderDrawQuad; | 19 using cc::DebugBorderDrawQuad; |
| 20 using cc::DrawQuad; | 20 using cc::DrawQuad; |
| 21 using cc::FilterOperation; | 21 using cc::FilterOperation; |
| 22 using cc::FilterOperations; | 22 using cc::FilterOperations; |
| 23 using cc::IOSurfaceDrawQuad; | 23 using cc::IOSurfaceDrawQuad; |
| 24 using cc::PictureDrawQuad; | 24 using cc::PictureDrawQuad; |
| 25 using cc::RenderPass; | 25 using cc::RenderPass; |
| 26 using cc::RenderPassDrawQuad; | 26 using cc::RenderPassDrawQuad; |
| 27 using cc::ResourceProvider; | 27 using cc::ResourceProvider; |
| 28 using cc::SharedQuadState; | 28 using cc::SharedQuadState; |
| 29 using cc::SolidColorDrawQuad; | 29 using cc::SolidColorDrawQuad; |
| 30 using cc::SurfaceDrawQuad; | |
| 30 using cc::TextureDrawQuad; | 31 using cc::TextureDrawQuad; |
| 31 using cc::TileDrawQuad; | 32 using cc::TileDrawQuad; |
| 32 using cc::TransferableResource; | 33 using cc::TransferableResource; |
| 33 using cc::StreamVideoDrawQuad; | 34 using cc::StreamVideoDrawQuad; |
| 34 using cc::VideoLayerImpl; | 35 using cc::VideoLayerImpl; |
| 35 using cc::YUVVideoDrawQuad; | 36 using cc::YUVVideoDrawQuad; |
| 36 using gfx::Transform; | 37 using gfx::Transform; |
| 37 | 38 |
| 38 namespace content { | 39 namespace content { |
| 39 namespace { | 40 namespace { |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 98 TileDrawQuad::MaterialCast(b)); | 99 TileDrawQuad::MaterialCast(b)); |
| 99 break; | 100 break; |
| 100 case DrawQuad::SOLID_COLOR: | 101 case DrawQuad::SOLID_COLOR: |
| 101 Compare(SolidColorDrawQuad::MaterialCast(a), | 102 Compare(SolidColorDrawQuad::MaterialCast(a), |
| 102 SolidColorDrawQuad::MaterialCast(b)); | 103 SolidColorDrawQuad::MaterialCast(b)); |
| 103 break; | 104 break; |
| 104 case DrawQuad::STREAM_VIDEO_CONTENT: | 105 case DrawQuad::STREAM_VIDEO_CONTENT: |
| 105 Compare(StreamVideoDrawQuad::MaterialCast(a), | 106 Compare(StreamVideoDrawQuad::MaterialCast(a), |
| 106 StreamVideoDrawQuad::MaterialCast(b)); | 107 StreamVideoDrawQuad::MaterialCast(b)); |
| 107 break; | 108 break; |
| 109 case DrawQuad::SURFACE_CONTENT: | |
| 110 Compare(SurfaceDrawQuad::MaterialCast(a), | |
|
danakj
2014/01/14 18:31:57
This Compare method is not implemented yet.
| |
| 111 SurfaceDrawQuad::MaterialCast(b)); | |
| 112 break; | |
| 108 case DrawQuad::YUV_VIDEO_CONTENT: | 113 case DrawQuad::YUV_VIDEO_CONTENT: |
| 109 Compare(YUVVideoDrawQuad::MaterialCast(a), | 114 Compare(YUVVideoDrawQuad::MaterialCast(a), |
| 110 YUVVideoDrawQuad::MaterialCast(b)); | 115 YUVVideoDrawQuad::MaterialCast(b)); |
| 111 break; | 116 break; |
| 112 case DrawQuad::INVALID: | 117 case DrawQuad::INVALID: |
| 113 break; | 118 break; |
| 114 } | 119 } |
| 115 } | 120 } |
| 116 | 121 |
| 117 void Compare(const CheckerboardDrawQuad* a, const CheckerboardDrawQuad* b) { | 122 void Compare(const CheckerboardDrawQuad* a, const CheckerboardDrawQuad* b) { |
| (...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 354 StreamVideoDrawQuad::Create(); | 359 StreamVideoDrawQuad::Create(); |
| 355 streamvideo_in->SetAll(shared_state3_in.get(), | 360 streamvideo_in->SetAll(shared_state3_in.get(), |
| 356 arbitrary_rect2, | 361 arbitrary_rect2, |
| 357 arbitrary_rect2_inside_rect2, | 362 arbitrary_rect2_inside_rect2, |
| 358 arbitrary_rect1_inside_rect2, | 363 arbitrary_rect1_inside_rect2, |
| 359 arbitrary_bool1, | 364 arbitrary_bool1, |
| 360 arbitrary_resourceid2, | 365 arbitrary_resourceid2, |
| 361 arbitrary_matrix); | 366 arbitrary_matrix); |
| 362 scoped_ptr<DrawQuad> streamvideo_cmp = streamvideo_in->Copy( | 367 scoped_ptr<DrawQuad> streamvideo_cmp = streamvideo_in->Copy( |
| 363 streamvideo_in->shared_quad_state); | 368 streamvideo_in->shared_quad_state); |
| 364 | 369 |
|
danakj
2014/01/14 18:31:57
add a surfacedrawquad into the frame here?
| |
| 365 scoped_ptr<TextureDrawQuad> texture_in = TextureDrawQuad::Create(); | 370 scoped_ptr<TextureDrawQuad> texture_in = TextureDrawQuad::Create(); |
| 366 texture_in->SetAll(shared_state3_in.get(), | 371 texture_in->SetAll(shared_state3_in.get(), |
| 367 arbitrary_rect2, | 372 arbitrary_rect2, |
| 368 arbitrary_rect2_inside_rect2, | 373 arbitrary_rect2_inside_rect2, |
| 369 arbitrary_rect1_inside_rect2, | 374 arbitrary_rect1_inside_rect2, |
| 370 arbitrary_bool1, | 375 arbitrary_bool1, |
| 371 arbitrary_resourceid1, | 376 arbitrary_resourceid1, |
| 372 arbitrary_bool2, | 377 arbitrary_bool2, |
| 373 arbitrary_pointf1, | 378 arbitrary_pointf1, |
| 374 arbitrary_pointf2, | 379 arbitrary_pointf2, |
| (...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 690 break; | 695 break; |
| 691 case cc::DrawQuad::TEXTURE_CONTENT: | 696 case cc::DrawQuad::TEXTURE_CONTENT: |
| 692 largest = std::max(largest, sizeof(cc::TextureDrawQuad)); | 697 largest = std::max(largest, sizeof(cc::TextureDrawQuad)); |
| 693 break; | 698 break; |
| 694 case cc::DrawQuad::RENDER_PASS: | 699 case cc::DrawQuad::RENDER_PASS: |
| 695 largest = std::max(largest, sizeof(cc::RenderPassDrawQuad)); | 700 largest = std::max(largest, sizeof(cc::RenderPassDrawQuad)); |
| 696 break; | 701 break; |
| 697 case cc::DrawQuad::SOLID_COLOR: | 702 case cc::DrawQuad::SOLID_COLOR: |
| 698 largest = std::max(largest, sizeof(cc::SolidColorDrawQuad)); | 703 largest = std::max(largest, sizeof(cc::SolidColorDrawQuad)); |
| 699 break; | 704 break; |
| 700 case cc::DrawQuad::TILED_CONTENT: | 705 case cc::DrawQuad::TILED_CONTENT: |
|
danakj
2014/01/14 18:31:57
add the surface draw quad here
| |
| 701 largest = std::max(largest, sizeof(cc::TileDrawQuad)); | 706 largest = std::max(largest, sizeof(cc::TileDrawQuad)); |
| 702 break; | 707 break; |
| 703 case cc::DrawQuad::STREAM_VIDEO_CONTENT: | 708 case cc::DrawQuad::STREAM_VIDEO_CONTENT: |
| 704 largest = std::max(largest, sizeof(cc::StreamVideoDrawQuad)); | 709 largest = std::max(largest, sizeof(cc::StreamVideoDrawQuad)); |
| 705 break; | 710 break; |
| 706 case cc::DrawQuad::YUV_VIDEO_CONTENT: | 711 case cc::DrawQuad::YUV_VIDEO_CONTENT: |
| 707 largest = std::max(largest, sizeof(cc::YUVVideoDrawQuad)); | 712 largest = std::max(largest, sizeof(cc::YUVVideoDrawQuad)); |
| 708 break; | 713 break; |
| 709 case cc::DrawQuad::INVALID: | 714 case cc::DrawQuad::INVALID: |
| 710 break; | 715 break; |
| 711 default: | 716 default: |
| 712 done = true; | 717 done = true; |
| 713 } | 718 } |
| 714 } | 719 } |
| 715 | 720 |
| 716 // Verify the largest DrawQuad type is RenderPassDrawQuad. If this ever | 721 // Verify the largest DrawQuad type is RenderPassDrawQuad. If this ever |
| 717 // changes, then the ReserveSizeForRenderPassWrite() method needs to be | 722 // changes, then the ReserveSizeForRenderPassWrite() method needs to be |
| 718 // updated as well to use the new largest quad. | 723 // updated as well to use the new largest quad. |
| 719 EXPECT_EQ(sizeof(RenderPassDrawQuad), largest); | 724 EXPECT_EQ(sizeof(RenderPassDrawQuad), largest); |
| 720 } | 725 } |
| 721 | 726 |
| 722 } // namespace | 727 } // namespace |
| 723 } // namespace content | 728 } // namespace content |
| OLD | NEW |