| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "cc/ipc/quads_struct_traits.h" | 5 #include "cc/ipc/quads_struct_traits.h" |
| 6 #include "ui/gfx/mojo/transform_struct_traits.h" | 6 #include "ui/gfx/mojo/transform_struct_traits.h" |
| 7 | 7 |
| 8 namespace mojo { | 8 namespace mojo { |
| 9 | 9 |
| 10 cc::DrawQuad* AllocateAndConstruct(cc::mojom::Material material, | 10 cc::DrawQuad* AllocateAndConstruct(cc::mojom::Material material, |
| 11 cc::QuadList* list) { | 11 cc::QuadList* list) { |
| 12 cc::DrawQuad* quad = nullptr; | 12 cc::DrawQuad* quad = nullptr; |
| 13 switch (material) { | 13 switch (material) { |
| 14 case cc::mojom::Material::INVALID: | |
| 15 return nullptr; | |
| 16 case cc::mojom::Material::DEBUG_BORDER: | 14 case cc::mojom::Material::DEBUG_BORDER: |
| 17 quad = list->AllocateAndConstruct<cc::DebugBorderDrawQuad>(); | 15 quad = list->AllocateAndConstruct<cc::DebugBorderDrawQuad>(); |
| 18 quad->material = cc::DrawQuad::DEBUG_BORDER; | 16 quad->material = cc::DrawQuad::DEBUG_BORDER; |
| 19 return quad; | 17 return quad; |
| 20 case cc::mojom::Material::PICTURE_CONTENT: | |
| 21 quad = list->AllocateAndConstruct<cc::PictureDrawQuad>(); | |
| 22 quad->material = cc::DrawQuad::PICTURE_CONTENT; | |
| 23 return quad; | |
| 24 case cc::mojom::Material::RENDER_PASS: | 18 case cc::mojom::Material::RENDER_PASS: |
| 25 quad = list->AllocateAndConstruct<cc::RenderPassDrawQuad>(); | 19 quad = list->AllocateAndConstruct<cc::RenderPassDrawQuad>(); |
| 26 quad->material = cc::DrawQuad::RENDER_PASS; | 20 quad->material = cc::DrawQuad::RENDER_PASS; |
| 27 return quad; | 21 return quad; |
| 28 case cc::mojom::Material::SOLID_COLOR: | 22 case cc::mojom::Material::SOLID_COLOR: |
| 29 quad = list->AllocateAndConstruct<cc::SolidColorDrawQuad>(); | 23 quad = list->AllocateAndConstruct<cc::SolidColorDrawQuad>(); |
| 30 quad->material = cc::DrawQuad::SOLID_COLOR; | 24 quad->material = cc::DrawQuad::SOLID_COLOR; |
| 31 return quad; | 25 return quad; |
| 32 case cc::mojom::Material::STREAM_VIDEO_CONTENT: | 26 case cc::mojom::Material::STREAM_VIDEO_CONTENT: |
| 33 quad = list->AllocateAndConstruct<cc::StreamVideoDrawQuad>(); | 27 quad = list->AllocateAndConstruct<cc::StreamVideoDrawQuad>(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 } | 63 } |
| 70 | 64 |
| 71 } // namespace | 65 } // namespace |
| 72 | 66 |
| 73 // static | 67 // static |
| 74 cc::mojom::Material | 68 cc::mojom::Material |
| 75 EnumTraits<cc::mojom::Material, cc::DrawQuad::Material>::ToMojom( | 69 EnumTraits<cc::mojom::Material, cc::DrawQuad::Material>::ToMojom( |
| 76 cc::DrawQuad::Material material) { | 70 cc::DrawQuad::Material material) { |
| 77 switch (material) { | 71 switch (material) { |
| 78 case cc::DrawQuad::INVALID: | 72 case cc::DrawQuad::INVALID: |
| 79 return cc::mojom::Material::INVALID; | 73 break; |
| 80 case cc::DrawQuad::DEBUG_BORDER: | 74 case cc::DrawQuad::DEBUG_BORDER: |
| 81 return cc::mojom::Material::DEBUG_BORDER; | 75 return cc::mojom::Material::DEBUG_BORDER; |
| 82 case cc::DrawQuad::PICTURE_CONTENT: | 76 case cc::DrawQuad::PICTURE_CONTENT: |
| 83 return cc::mojom::Material::PICTURE_CONTENT; | 77 break; |
| 84 case cc::DrawQuad::RENDER_PASS: | 78 case cc::DrawQuad::RENDER_PASS: |
| 85 return cc::mojom::Material::RENDER_PASS; | 79 return cc::mojom::Material::RENDER_PASS; |
| 86 case cc::DrawQuad::SOLID_COLOR: | 80 case cc::DrawQuad::SOLID_COLOR: |
| 87 return cc::mojom::Material::SOLID_COLOR; | 81 return cc::mojom::Material::SOLID_COLOR; |
| 88 case cc::DrawQuad::STREAM_VIDEO_CONTENT: | 82 case cc::DrawQuad::STREAM_VIDEO_CONTENT: |
| 89 return cc::mojom::Material::STREAM_VIDEO_CONTENT; | 83 return cc::mojom::Material::STREAM_VIDEO_CONTENT; |
| 90 case cc::DrawQuad::SURFACE_CONTENT: | 84 case cc::DrawQuad::SURFACE_CONTENT: |
| 91 return cc::mojom::Material::SURFACE_CONTENT; | 85 return cc::mojom::Material::SURFACE_CONTENT; |
| 92 case cc::DrawQuad::TEXTURE_CONTENT: | 86 case cc::DrawQuad::TEXTURE_CONTENT: |
| 93 return cc::mojom::Material::TEXTURE_CONTENT; | 87 return cc::mojom::Material::TEXTURE_CONTENT; |
| 94 case cc::DrawQuad::TILED_CONTENT: | 88 case cc::DrawQuad::TILED_CONTENT: |
| 95 return cc::mojom::Material::TILED_CONTENT; | 89 return cc::mojom::Material::TILED_CONTENT; |
| 96 case cc::DrawQuad::YUV_VIDEO_CONTENT: | 90 case cc::DrawQuad::YUV_VIDEO_CONTENT: |
| 97 return cc::mojom::Material::YUV_VIDEO_CONTENT; | 91 return cc::mojom::Material::YUV_VIDEO_CONTENT; |
| 98 } | 92 } |
| 99 return cc::mojom::Material::INVALID; | 93 // We cannot serialize PictureDrawQuads or Invalid Quads. |
| 94 NOTREACHED(); |
| 95 return cc::mojom::Material::DEBUG_BORDER; |
| 100 } | 96 } |
| 101 | 97 |
| 102 // static | 98 // static |
| 103 bool EnumTraits<cc::mojom::Material, cc::DrawQuad::Material>::FromMojom( | 99 bool EnumTraits<cc::mojom::Material, cc::DrawQuad::Material>::FromMojom( |
| 104 cc::mojom::Material input, | 100 cc::mojom::Material input, |
| 105 cc::DrawQuad::Material* out) { | 101 cc::DrawQuad::Material* out) { |
| 106 switch (input) { | 102 switch (input) { |
| 107 case cc::mojom::Material::INVALID: | |
| 108 *out = cc::DrawQuad::INVALID; | |
| 109 return true; | |
| 110 case cc::mojom::Material::DEBUG_BORDER: | 103 case cc::mojom::Material::DEBUG_BORDER: |
| 111 *out = cc::DrawQuad::DEBUG_BORDER; | 104 *out = cc::DrawQuad::DEBUG_BORDER; |
| 112 return true; | 105 return true; |
| 113 case cc::mojom::Material::PICTURE_CONTENT: | |
| 114 *out = cc::DrawQuad::PICTURE_CONTENT; | |
| 115 return true; | |
| 116 case cc::mojom::Material::RENDER_PASS: | 106 case cc::mojom::Material::RENDER_PASS: |
| 117 *out = cc::DrawQuad::RENDER_PASS; | 107 *out = cc::DrawQuad::RENDER_PASS; |
| 118 return true; | 108 return true; |
| 119 case cc::mojom::Material::SOLID_COLOR: | 109 case cc::mojom::Material::SOLID_COLOR: |
| 120 *out = cc::DrawQuad::SOLID_COLOR; | 110 *out = cc::DrawQuad::SOLID_COLOR; |
| 121 return true; | 111 return true; |
| 122 case cc::mojom::Material::STREAM_VIDEO_CONTENT: | 112 case cc::mojom::Material::STREAM_VIDEO_CONTENT: |
| 123 *out = cc::DrawQuad::STREAM_VIDEO_CONTENT; | 113 *out = cc::DrawQuad::STREAM_VIDEO_CONTENT; |
| 124 return true; | 114 return true; |
| 125 case cc::mojom::Material::SURFACE_CONTENT: | 115 case cc::mojom::Material::SURFACE_CONTENT: |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 } | 295 } |
| 306 return true; | 296 return true; |
| 307 } | 297 } |
| 308 | 298 |
| 309 // static | 299 // static |
| 310 bool StructTraits<cc::mojom::DrawQuad, cc::DrawQuad>::Read( | 300 bool StructTraits<cc::mojom::DrawQuad, cc::DrawQuad>::Read( |
| 311 cc::mojom::DrawQuadDataView data, | 301 cc::mojom::DrawQuadDataView data, |
| 312 cc::DrawQuad* out) { | 302 cc::DrawQuad* out) { |
| 313 if (!ReadDrawQuad(data, out)) | 303 if (!ReadDrawQuad(data, out)) |
| 314 return false; | 304 return false; |
| 315 switch (data.material()) { | 305 return data.ReadDrawQuadState(out); |
| 316 case cc::mojom::Material::INVALID: | |
| 317 break; | |
| 318 case cc::mojom::Material::DEBUG_BORDER: | |
| 319 return data.ReadDebugBorderQuadState(out); | |
| 320 case cc::mojom::Material::PICTURE_CONTENT: | |
| 321 // TODO(fsamuel): Implement PictureDrawQuad | |
| 322 // serialization/deserialization. | |
| 323 break; | |
| 324 case cc::mojom::Material::RENDER_PASS: | |
| 325 return data.ReadRenderPassQuadState(out); | |
| 326 case cc::mojom::Material::SOLID_COLOR: | |
| 327 return data.ReadSolidColorQuadState(out); | |
| 328 case cc::mojom::Material::STREAM_VIDEO_CONTENT: | |
| 329 return data.ReadStreamVideoQuadState(out); | |
| 330 case cc::mojom::Material::SURFACE_CONTENT: | |
| 331 return data.ReadSurfaceQuadState(out); | |
| 332 case cc::mojom::Material::TEXTURE_CONTENT: | |
| 333 return data.ReadTextureQuadState(out); | |
| 334 case cc::mojom::Material::TILED_CONTENT: | |
| 335 return data.ReadTileQuadState(out); | |
| 336 case cc::mojom::Material::YUV_VIDEO_CONTENT: | |
| 337 return data.ReadYuvVideoQuadState(out); | |
| 338 } | |
| 339 NOTREACHED(); | |
| 340 return false; | |
| 341 } | 306 } |
| 342 | 307 |
| 343 } // namespace mojo | 308 } // namespace mojo |
| OLD | NEW |