| Index: cc/ipc/quads_struct_traits.h
|
| diff --git a/cc/ipc/quads_struct_traits.h b/cc/ipc/quads_struct_traits.h
|
| index 6643b43a89603c3963057aa9c41fce2fb3a1f1c2..615a1ec129f59d71911614e96ce343ceba9dda30 100644
|
| --- a/cc/ipc/quads_struct_traits.h
|
| +++ b/cc/ipc/quads_struct_traits.h
|
| @@ -26,6 +26,7 @@ namespace mojo {
|
|
|
| cc::DrawQuad* AllocateAndConstruct(cc::mojom::Material material,
|
| cc::QuadList* list);
|
| +
|
| template <>
|
| struct EnumTraits<cc::mojom::Material, cc::DrawQuad::Material> {
|
| static cc::mojom::Material ToMojom(cc::DrawQuad::Material material);
|
| @@ -33,6 +34,92 @@ struct EnumTraits<cc::mojom::Material, cc::DrawQuad::Material> {
|
| };
|
|
|
| template <>
|
| +struct UnionTraits<cc::mojom::DrawQuadState, cc::DrawQuad> {
|
| + static cc::mojom::DrawQuadState::DataView::Tag GetTag(
|
| + const cc::DrawQuad& quad) {
|
| + switch (quad.material) {
|
| + case cc::DrawQuad::INVALID:
|
| + break;
|
| + case cc::DrawQuad::DEBUG_BORDER:
|
| + return cc::mojom::DrawQuadState::DataView::Tag::DEBUG_BORDER_QUAD_STATE;
|
| + case cc::DrawQuad::PICTURE_CONTENT:
|
| + break;
|
| + case cc::DrawQuad::RENDER_PASS:
|
| + return cc::mojom::DrawQuadState::DataView::Tag::RENDER_PASS_QUAD_STATE;
|
| + case cc::DrawQuad::SOLID_COLOR:
|
| + return cc::mojom::DrawQuadState::DataView::Tag::SOLID_COLOR_QUAD_STATE;
|
| + case cc::DrawQuad::STREAM_VIDEO_CONTENT:
|
| + return cc::mojom::DrawQuadState::DataView::Tag::STREAM_VIDEO_QUAD_STATE;
|
| + case cc::DrawQuad::SURFACE_CONTENT:
|
| + return cc::mojom::DrawQuadState::DataView::Tag::SURFACE_QUAD_STATE;
|
| + case cc::DrawQuad::TEXTURE_CONTENT:
|
| + return cc::mojom::DrawQuadState::DataView::Tag::TEXTURE_QUAD_STATE;
|
| + case cc::DrawQuad::TILED_CONTENT:
|
| + 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;
|
| + }
|
| + NOTREACHED();
|
| + return cc::mojom::DrawQuadState::DataView::Tag::DEBUG_BORDER_QUAD_STATE;
|
| + }
|
| +
|
| + static const cc::DrawQuad& debug_border_quad_state(const cc::DrawQuad& quad) {
|
| + return quad;
|
| + }
|
| +
|
| + static const cc::DrawQuad& render_pass_quad_state(const cc::DrawQuad& quad) {
|
| + return quad;
|
| + }
|
| +
|
| + static const cc::DrawQuad& solid_color_quad_state(const cc::DrawQuad& quad) {
|
| + return quad;
|
| + }
|
| +
|
| + static const cc::DrawQuad& surface_quad_state(const cc::DrawQuad& quad) {
|
| + return quad;
|
| + }
|
| +
|
| + static const cc::DrawQuad& texture_quad_state(const cc::DrawQuad& quad) {
|
| + return quad;
|
| + }
|
| +
|
| + static const cc::DrawQuad& tile_quad_state(const cc::DrawQuad& quad) {
|
| + return quad;
|
| + }
|
| +
|
| + static const cc::DrawQuad& stream_video_quad_state(const cc::DrawQuad& quad) {
|
| + return quad;
|
| + }
|
| +
|
| + static const cc::DrawQuad& yuv_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:
|
| + return data.ReadDebugBorderQuadState(out);
|
| + case cc::mojom::DrawQuadState::DataView::Tag::RENDER_PASS_QUAD_STATE:
|
| + return data.ReadRenderPassQuadState(out);
|
| + case cc::mojom::DrawQuadState::DataView::Tag::SOLID_COLOR_QUAD_STATE:
|
| + return data.ReadSolidColorQuadState(out);
|
| + case cc::mojom::DrawQuadState::DataView::Tag::SURFACE_QUAD_STATE:
|
| + return data.ReadSurfaceQuadState(out);
|
| + case cc::mojom::DrawQuadState::DataView::Tag::TEXTURE_QUAD_STATE:
|
| + return data.ReadTextureQuadState(out);
|
| + case cc::mojom::DrawQuadState::DataView::Tag::TILE_QUAD_STATE:
|
| + return data.ReadTileQuadState(out);
|
| + case cc::mojom::DrawQuadState::DataView::Tag::STREAM_VIDEO_QUAD_STATE:
|
| + return data.ReadStreamVideoQuadState(out);
|
| + case cc::mojom::DrawQuadState::DataView::Tag::YUV_VIDEO_QUAD_STATE:
|
| + return data.ReadYuvVideoQuadState(out);
|
| + }
|
| + NOTREACHED();
|
| + return false;
|
| + }
|
| +};
|
| +
|
| +template <>
|
| struct StructTraits<cc::mojom::DebugBorderQuadState, cc::DrawQuad> {
|
| static bool IsNull(const cc::DrawQuad& input) {
|
| return input.material != cc::DrawQuad::DEBUG_BORDER;
|
| @@ -429,49 +516,14 @@ struct StructTraits<cc::mojom::DrawQuad, DrawQuadWithSharedQuadState> {
|
| return input.quad->needs_blending;
|
| }
|
|
|
| - static const cc::DrawQuad& debug_border_quad_state(
|
| - const DrawQuadWithSharedQuadState& input) {
|
| - return *input.quad;
|
| - }
|
| -
|
| - static const cc::DrawQuad& render_pass_quad_state(
|
| - const DrawQuadWithSharedQuadState& input) {
|
| - return *input.quad;
|
| - }
|
| -
|
| - static const cc::DrawQuad& solid_color_quad_state(
|
| - const DrawQuadWithSharedQuadState& input) {
|
| - return *input.quad;
|
| - }
|
| -
|
| - static const cc::DrawQuad& surface_quad_state(
|
| - const DrawQuadWithSharedQuadState& input) {
|
| - return *input.quad;
|
| - }
|
| -
|
| - static const cc::DrawQuad& texture_quad_state(
|
| - const DrawQuadWithSharedQuadState& input) {
|
| - return *input.quad;
|
| - }
|
| -
|
| - static const cc::DrawQuad& tile_quad_state(
|
| - const DrawQuadWithSharedQuadState& input) {
|
| - return *input.quad;
|
| - }
|
| -
|
| - static const cc::DrawQuad& stream_video_quad_state(
|
| - const DrawQuadWithSharedQuadState& input) {
|
| - return *input.quad;
|
| + static OptSharedQuadState sqs(const DrawQuadWithSharedQuadState& input) {
|
| + return {input.shared_quad_state};
|
| }
|
|
|
| - static const cc::DrawQuad& yuv_video_quad_state(
|
| + static const cc::DrawQuad& draw_quad_state(
|
| const DrawQuadWithSharedQuadState& input) {
|
| return *input.quad;
|
| }
|
| -
|
| - static OptSharedQuadState sqs(const DrawQuadWithSharedQuadState& input) {
|
| - return {input.shared_quad_state};
|
| - }
|
| };
|
|
|
| // This StructTraits is only used for deserialization within RenderPasses.
|
|
|