| 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 #ifndef CC_IPC_QUADS_STRUCT_TRAITS_H_ | 5 #ifndef CC_IPC_QUADS_STRUCT_TRAITS_H_ |
| 6 #define CC_IPC_QUADS_STRUCT_TRAITS_H_ | 6 #define CC_IPC_QUADS_STRUCT_TRAITS_H_ |
| 7 | 7 |
| 8 #include "cc/ipc/filter_operation_struct_traits.h" | 8 #include "cc/ipc/filter_operation_struct_traits.h" |
| 9 #include "cc/ipc/filter_operations_struct_traits.h" | 9 #include "cc/ipc/filter_operations_struct_traits.h" |
| 10 #include "cc/ipc/quads.mojom.h" | 10 #include "cc/ipc/quads.mojom.h" |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 | 258 |
| 259 static uint32_t resource_id(const cc::DrawQuad& input) { | 259 static uint32_t resource_id(const cc::DrawQuad& input) { |
| 260 const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input); | 260 const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input); |
| 261 return quad->resource_id(); | 261 return quad->resource_id(); |
| 262 } | 262 } |
| 263 | 263 |
| 264 static bool Read(cc::mojom::TileQuadStateDataView data, cc::DrawQuad* out); | 264 static bool Read(cc::mojom::TileQuadStateDataView data, cc::DrawQuad* out); |
| 265 }; | 265 }; |
| 266 | 266 |
| 267 template <> | 267 template <> |
| 268 struct EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace> { |
| 269 static cc::mojom::YUVColorSpace ToMojom( |
| 270 cc::YUVVideoDrawQuad::ColorSpace color_space); |
| 271 static bool FromMojom(cc::mojom::YUVColorSpace input, |
| 272 cc::YUVVideoDrawQuad::ColorSpace* out); |
| 273 }; |
| 274 |
| 275 template <> |
| 276 struct StructTraits<cc::mojom::YUVVideoQuadState, cc::DrawQuad> { |
| 277 static bool IsNull(const cc::DrawQuad& input) { |
| 278 return input.material != cc::DrawQuad::YUV_VIDEO_CONTENT; |
| 279 } |
| 280 |
| 281 static void SetToNull(cc::DrawQuad* output) { |
| 282 // There is nothing to deserialize here if the DrawQuad is not a |
| 283 // YUVVideoDrawQuad. If it is, then this should not be called. |
| 284 DCHECK_NE(cc::DrawQuad::YUV_VIDEO_CONTENT, output->material); |
| 285 } |
| 286 |
| 287 static const gfx::RectF& ya_tex_coord_rect(const cc::DrawQuad& input) { |
| 288 const cc::YUVVideoDrawQuad* quad = |
| 289 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 290 return quad->ya_tex_coord_rect; |
| 291 } |
| 292 |
| 293 static const gfx::RectF& uv_tex_coord_rect(const cc::DrawQuad& input) { |
| 294 const cc::YUVVideoDrawQuad* quad = |
| 295 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 296 return quad->uv_tex_coord_rect; |
| 297 } |
| 298 |
| 299 static const gfx::Size& ya_tex_size(const cc::DrawQuad& input) { |
| 300 const cc::YUVVideoDrawQuad* quad = |
| 301 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 302 return quad->ya_tex_size; |
| 303 } |
| 304 |
| 305 static const gfx::Size& uv_tex_size(const cc::DrawQuad& input) { |
| 306 const cc::YUVVideoDrawQuad* quad = |
| 307 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 308 return quad->uv_tex_size; |
| 309 } |
| 310 |
| 311 static uint32_t y_plane_resource_id(const cc::DrawQuad& input) { |
| 312 const cc::YUVVideoDrawQuad* quad = |
| 313 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 314 return quad->y_plane_resource_id(); |
| 315 } |
| 316 |
| 317 static uint32_t u_plane_resource_id(const cc::DrawQuad& input) { |
| 318 const cc::YUVVideoDrawQuad* quad = |
| 319 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 320 return quad->u_plane_resource_id(); |
| 321 } |
| 322 |
| 323 static uint32_t v_plane_resource_id(const cc::DrawQuad& input) { |
| 324 const cc::YUVVideoDrawQuad* quad = |
| 325 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 326 return quad->v_plane_resource_id(); |
| 327 } |
| 328 |
| 329 static uint32_t a_plane_resource_id(const cc::DrawQuad& input) { |
| 330 const cc::YUVVideoDrawQuad* quad = |
| 331 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 332 return quad->a_plane_resource_id(); |
| 333 } |
| 334 |
| 335 static cc::YUVVideoDrawQuad::ColorSpace color_space( |
| 336 const cc::DrawQuad& input) { |
| 337 const cc::YUVVideoDrawQuad* quad = |
| 338 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 339 return quad->color_space; |
| 340 } |
| 341 |
| 342 static float resource_offset(const cc::DrawQuad& input) { |
| 343 const cc::YUVVideoDrawQuad* quad = |
| 344 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 345 return quad->resource_offset; |
| 346 } |
| 347 |
| 348 static float resource_multiplier(const cc::DrawQuad& input) { |
| 349 const cc::YUVVideoDrawQuad* quad = |
| 350 cc::YUVVideoDrawQuad::MaterialCast(&input); |
| 351 return quad->resource_multiplier; |
| 352 } |
| 353 |
| 354 static bool Read(cc::mojom::YUVVideoQuadStateDataView data, |
| 355 cc::DrawQuad* out); |
| 356 }; |
| 357 |
| 358 template <> |
| 268 struct StructTraits<cc::mojom::DrawQuad, cc::DrawQuad> { | 359 struct StructTraits<cc::mojom::DrawQuad, cc::DrawQuad> { |
| 269 static cc::DrawQuad::Material material(const cc::DrawQuad& quad) { | 360 static cc::DrawQuad::Material material(const cc::DrawQuad& quad) { |
| 270 return quad.material; | 361 return quad.material; |
| 271 } | 362 } |
| 272 | 363 |
| 273 static const gfx::Rect& rect(const cc::DrawQuad& quad) { return quad.rect; } | 364 static const gfx::Rect& rect(const cc::DrawQuad& quad) { return quad.rect; } |
| 274 | 365 |
| 275 static const gfx::Rect& opaque_rect(const cc::DrawQuad& quad) { | 366 static const gfx::Rect& opaque_rect(const cc::DrawQuad& quad) { |
| 276 return quad.opaque_rect; | 367 return quad.opaque_rect; |
| 277 } | 368 } |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 | 402 |
| 312 static const cc::DrawQuad& tile_quad_state(const cc::DrawQuad& quad) { | 403 static const cc::DrawQuad& tile_quad_state(const cc::DrawQuad& quad) { |
| 313 return quad; | 404 return quad; |
| 314 } | 405 } |
| 315 | 406 |
| 316 static cc::mojom::StreamVideoQuadStatePtr stream_video_quad_state( | 407 static cc::mojom::StreamVideoQuadStatePtr stream_video_quad_state( |
| 317 const cc::DrawQuad& data) { | 408 const cc::DrawQuad& data) { |
| 318 return nullptr; | 409 return nullptr; |
| 319 } | 410 } |
| 320 | 411 |
| 321 static cc::mojom::YUVVideoQuadStatePtr yuv_video_quad_state( | 412 static const cc::DrawQuad& yuv_video_quad_state(const cc::DrawQuad& data) { |
| 322 const cc::DrawQuad& data) { | 413 return data; |
| 323 return nullptr; | |
| 324 } | 414 } |
| 325 | 415 |
| 326 static bool Read(cc::mojom::DrawQuadDataView data, cc::DrawQuad* out); | 416 static bool Read(cc::mojom::DrawQuadDataView data, cc::DrawQuad* out); |
| 327 }; | 417 }; |
| 328 | 418 |
| 329 struct QuadListArray { | 419 struct QuadListArray { |
| 330 // This is the expected size of the array. | 420 // This is the expected size of the array. |
| 331 size_t size; | 421 size_t size; |
| 332 cc::QuadList* list; | 422 cc::QuadList* list; |
| 333 }; | 423 }; |
| (...skipping 29 matching lines...) Expand all Loading... |
| 363 void* context); | 453 void* context); |
| 364 static QuadListArray quads(const cc::QuadList& quad_list) { | 454 static QuadListArray quads(const cc::QuadList& quad_list) { |
| 365 return {quad_list.size(), const_cast<cc::QuadList*>(&quad_list)}; | 455 return {quad_list.size(), const_cast<cc::QuadList*>(&quad_list)}; |
| 366 } | 456 } |
| 367 static bool Read(cc::mojom::QuadListDataView data, cc::QuadList* out); | 457 static bool Read(cc::mojom::QuadListDataView data, cc::QuadList* out); |
| 368 }; | 458 }; |
| 369 | 459 |
| 370 } // namespace mojo | 460 } // namespace mojo |
| 371 | 461 |
| 372 #endif // CC_IPC_QUADS_STRUCT_TRAITS_H_ | 462 #endif // CC_IPC_QUADS_STRUCT_TRAITS_H_ |
| OLD | NEW |