| Index: cc/ipc/quads_struct_traits.h
|
| diff --git a/cc/ipc/quads_struct_traits.h b/cc/ipc/quads_struct_traits.h
|
| index 489049ccacb0059adc6c4f44060206c6bb8f0d00..56a22b09d96140e07df02c761993c4d0a2cb2933 100644
|
| --- a/cc/ipc/quads_struct_traits.h
|
| +++ b/cc/ipc/quads_struct_traits.h
|
| @@ -19,6 +19,7 @@
|
| #include "cc/quads/surface_draw_quad.h"
|
| #include "cc/quads/texture_draw_quad.h"
|
| #include "cc/quads/tile_draw_quad.h"
|
| +#include "cc/quads/y_video_draw_quad.h"
|
| #include "cc/quads/yuv_video_draw_quad.h"
|
| #include "ui/gfx/geometry/mojo/geometry_struct_traits.h"
|
|
|
| @@ -53,6 +54,8 @@ struct UnionTraits<cc::mojom::DrawQuadState, cc::DrawQuad> {
|
| return cc::mojom::DrawQuadState::DataView::Tag::TILE_QUAD_STATE;
|
| case cc::DrawQuad::YUV_VIDEO_CONTENT:
|
| return cc::mojom::DrawQuadState::DataView::Tag::YUV_VIDEO_QUAD_STATE;
|
| + case cc::DrawQuad::Y_VIDEO_CONTENT:
|
| + return cc::mojom::DrawQuadState::DataView::Tag::Y_VIDEO_QUAD_STATE;
|
| }
|
| NOTREACHED();
|
| return cc::mojom::DrawQuadState::DataView::Tag::DEBUG_BORDER_QUAD_STATE;
|
| @@ -90,6 +93,10 @@ struct UnionTraits<cc::mojom::DrawQuadState, cc::DrawQuad> {
|
| return quad;
|
| }
|
|
|
| + static const cc::DrawQuad& y_video_quad_state(const cc::DrawQuad& quad) {
|
| + return quad;
|
| + }
|
| +
|
| static bool Read(cc::mojom::DrawQuadState::DataView data, cc::DrawQuad* out) {
|
| switch (data.tag()) {
|
| case cc::mojom::DrawQuadState::DataView::Tag::DEBUG_BORDER_QUAD_STATE:
|
| @@ -108,6 +115,8 @@ struct UnionTraits<cc::mojom::DrawQuadState, cc::DrawQuad> {
|
| return data.ReadStreamVideoQuadState(out);
|
| case cc::mojom::DrawQuadState::DataView::Tag::YUV_VIDEO_QUAD_STATE:
|
| return data.ReadYuvVideoQuadState(out);
|
| + case cc::mojom::DrawQuadState::DataView::Tag::Y_VIDEO_QUAD_STATE:
|
| + return data.ReadYVideoQuadState(out);
|
| }
|
| NOTREACHED();
|
| return false;
|
| @@ -401,6 +410,36 @@ struct StructTraits<cc::mojom::YUVVideoQuadState, cc::DrawQuad> {
|
| cc::DrawQuad* out);
|
| };
|
|
|
| +template <>
|
| +struct StructTraits<cc::mojom::YVideoQuadState, cc::DrawQuad> {
|
| + static bool IsNull(const cc::DrawQuad& input) {
|
| + return input.material != cc::DrawQuad::Y_VIDEO_CONTENT;
|
| + }
|
| +
|
| + static void SetToNull(cc::DrawQuad* output) {
|
| + // There is nothing to deserialize here if the DrawQuad is not a
|
| + // YVideoContentDrawQuad. If it is, then this should not be called.
|
| + DCHECK_NE(cc::DrawQuad::Y_VIDEO_CONTENT, output->material);
|
| + }
|
| +
|
| + static uint32_t resource_id(const cc::DrawQuad& input) {
|
| + const cc::YVideoDrawQuad* quad = cc::YVideoDrawQuad::MaterialCast(&input);
|
| + return quad->resource_id();
|
| + }
|
| +
|
| + static const gfx::PointF& uv_top_left(const cc::DrawQuad& input) {
|
| + const cc::YVideoDrawQuad* quad = cc::YVideoDrawQuad::MaterialCast(&input);
|
| + return quad->uv_top_left;
|
| + }
|
| +
|
| + static const gfx::PointF& uv_bottom_right(const cc::DrawQuad& input) {
|
| + const cc::YVideoDrawQuad* quad = cc::YVideoDrawQuad::MaterialCast(&input);
|
| + return quad->uv_bottom_right;
|
| + }
|
| +
|
| + static bool Read(cc::mojom::YVideoQuadStateDataView data, cc::DrawQuad* out);
|
| +};
|
| +
|
| struct DrawQuadWithSharedQuadState {
|
| const cc::DrawQuad* quad;
|
| const cc::SharedQuadState* shared_quad_state;
|
|
|