| 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( | 10 cc::DrawQuad* AllocateAndConstruct( |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 return false; | 181 return false; |
| 182 } | 182 } |
| 183 | 183 |
| 184 quad->swizzle_contents = data.swizzle_contents(); | 184 quad->swizzle_contents = data.swizzle_contents(); |
| 185 quad->nearest_neighbor = data.nearest_neighbor(); | 185 quad->nearest_neighbor = data.nearest_neighbor(); |
| 186 quad->resources.ids[cc::TileDrawQuad::kResourceIdIndex] = data.resource_id(); | 186 quad->resources.ids[cc::TileDrawQuad::kResourceIdIndex] = data.resource_id(); |
| 187 quad->resources.count = 1; | 187 quad->resources.count = 1; |
| 188 return true; | 188 return true; |
| 189 } | 189 } |
| 190 | 190 |
| 191 cc::mojom::YUVColorSpace | |
| 192 EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace>::ToMojom( | |
| 193 cc::YUVVideoDrawQuad::ColorSpace color_space) { | |
| 194 switch (color_space) { | |
| 195 case cc::YUVVideoDrawQuad::REC_601: | |
| 196 return cc::mojom::YUVColorSpace::REC_601; | |
| 197 case cc::YUVVideoDrawQuad::REC_709: | |
| 198 return cc::mojom::YUVColorSpace::REC_709; | |
| 199 case cc::YUVVideoDrawQuad::JPEG: | |
| 200 return cc::mojom::YUVColorSpace::JPEG; | |
| 201 } | |
| 202 NOTREACHED(); | |
| 203 return cc::mojom::YUVColorSpace::JPEG; | |
| 204 } | |
| 205 | |
| 206 // static | |
| 207 bool EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace>:: | |
| 208 FromMojom(cc::mojom::YUVColorSpace input, | |
| 209 cc::YUVVideoDrawQuad::ColorSpace* out) { | |
| 210 switch (input) { | |
| 211 case cc::mojom::YUVColorSpace::REC_601: | |
| 212 *out = cc::YUVVideoDrawQuad::REC_601; | |
| 213 return true; | |
| 214 case cc::mojom::YUVColorSpace::REC_709: | |
| 215 *out = cc::YUVVideoDrawQuad::REC_709; | |
| 216 return true; | |
| 217 case cc::mojom::YUVColorSpace::JPEG: | |
| 218 *out = cc::YUVVideoDrawQuad::JPEG; | |
| 219 return true; | |
| 220 } | |
| 221 return false; | |
| 222 } | |
| 223 | |
| 224 // static | 191 // static |
| 225 bool StructTraits<cc::mojom::YUVVideoQuadStateDataView, cc::DrawQuad>::Read( | 192 bool StructTraits<cc::mojom::YUVVideoQuadStateDataView, cc::DrawQuad>::Read( |
| 226 cc::mojom::YUVVideoQuadStateDataView data, | 193 cc::mojom::YUVVideoQuadStateDataView data, |
| 227 cc::DrawQuad* out) { | 194 cc::DrawQuad* out) { |
| 228 cc::YUVVideoDrawQuad* quad = static_cast<cc::YUVVideoDrawQuad*>(out); | 195 cc::YUVVideoDrawQuad* quad = static_cast<cc::YUVVideoDrawQuad*>(out); |
| 229 if (!data.ReadYaTexCoordRect(&quad->ya_tex_coord_rect) || | 196 if (!data.ReadYaTexCoordRect(&quad->ya_tex_coord_rect) || |
| 230 !data.ReadUvTexCoordRect(&quad->uv_tex_coord_rect) || | 197 !data.ReadUvTexCoordRect(&quad->uv_tex_coord_rect) || |
| 231 !data.ReadYaTexSize(&quad->ya_tex_size) || | 198 !data.ReadYaTexSize(&quad->ya_tex_size) || |
| 232 !data.ReadUvTexSize(&quad->uv_tex_size)) { | 199 !data.ReadUvTexSize(&quad->uv_tex_size)) { |
| 233 return false; | 200 return false; |
| 234 } | 201 } |
| 235 quad->resources.ids[cc::YUVVideoDrawQuad::kYPlaneResourceIdIndex] = | 202 quad->resources.ids[cc::YUVVideoDrawQuad::kYPlaneResourceIdIndex] = |
| 236 data.y_plane_resource_id(); | 203 data.y_plane_resource_id(); |
| 237 quad->resources.ids[cc::YUVVideoDrawQuad::kUPlaneResourceIdIndex] = | 204 quad->resources.ids[cc::YUVVideoDrawQuad::kUPlaneResourceIdIndex] = |
| 238 data.u_plane_resource_id(); | 205 data.u_plane_resource_id(); |
| 239 quad->resources.ids[cc::YUVVideoDrawQuad::kVPlaneResourceIdIndex] = | 206 quad->resources.ids[cc::YUVVideoDrawQuad::kVPlaneResourceIdIndex] = |
| 240 data.v_plane_resource_id(); | 207 data.v_plane_resource_id(); |
| 241 quad->resources.ids[cc::YUVVideoDrawQuad::kAPlaneResourceIdIndex] = | 208 quad->resources.ids[cc::YUVVideoDrawQuad::kAPlaneResourceIdIndex] = |
| 242 data.a_plane_resource_id(); | 209 data.a_plane_resource_id(); |
| 243 static_assert(cc::YUVVideoDrawQuad::kAPlaneResourceIdIndex == | 210 static_assert(cc::YUVVideoDrawQuad::kAPlaneResourceIdIndex == |
| 244 cc::DrawQuad::Resources::kMaxResourceIdCount - 1, | 211 cc::DrawQuad::Resources::kMaxResourceIdCount - 1, |
| 245 "The A plane resource should be the last resource ID."); | 212 "The A plane resource should be the last resource ID."); |
| 246 quad->resources.count = data.a_plane_resource_id() ? 4 : 3; | 213 quad->resources.count = data.a_plane_resource_id() ? 4 : 3; |
| 247 | 214 |
| 248 if (!data.ReadColorSpace(&quad->color_space)) | |
| 249 return false; | |
| 250 quad->resource_offset = data.resource_offset(); | 215 quad->resource_offset = data.resource_offset(); |
| 251 quad->resource_multiplier = data.resource_multiplier(); | 216 quad->resource_multiplier = data.resource_multiplier(); |
| 252 quad->bits_per_channel = data.bits_per_channel(); | 217 quad->bits_per_channel = data.bits_per_channel(); |
| 253 if (quad->bits_per_channel < cc::YUVVideoDrawQuad::kMinBitsPerChannel || | 218 if (quad->bits_per_channel < cc::YUVVideoDrawQuad::kMinBitsPerChannel || |
| 254 quad->bits_per_channel > cc::YUVVideoDrawQuad::kMaxBitsPerChannel) { | 219 quad->bits_per_channel > cc::YUVVideoDrawQuad::kMaxBitsPerChannel) { |
| 255 return false; | 220 return false; |
| 256 } | 221 } |
| 257 return true; | 222 return true; |
| 258 } | 223 } |
| 259 | 224 |
| 260 // static | 225 // static |
| 261 bool StructTraits<cc::mojom::DrawQuadDataView, cc::DrawQuad>::Read( | 226 bool StructTraits<cc::mojom::DrawQuadDataView, cc::DrawQuad>::Read( |
| 262 cc::mojom::DrawQuadDataView data, | 227 cc::mojom::DrawQuadDataView data, |
| 263 cc::DrawQuad* out) { | 228 cc::DrawQuad* out) { |
| 264 if (!data.ReadRect(&out->rect) || !data.ReadOpaqueRect(&out->opaque_rect) || | 229 if (!data.ReadRect(&out->rect) || !data.ReadOpaqueRect(&out->opaque_rect) || |
| 265 !data.ReadVisibleRect(&out->visible_rect)) { | 230 !data.ReadVisibleRect(&out->visible_rect)) { |
| 266 return false; | 231 return false; |
| 267 } | 232 } |
| 268 out->needs_blending = data.needs_blending(); | 233 out->needs_blending = data.needs_blending(); |
| 269 return data.ReadDrawQuadState(out); | 234 return data.ReadDrawQuadState(out); |
| 270 } | 235 } |
| 271 | 236 |
| 272 } // namespace mojo | 237 } // namespace mojo |
| OLD | NEW |