| 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 | 6 |
| 7 namespace mojo { | 7 namespace mojo { |
| 8 | 8 |
| 9 namespace { | 9 namespace { |
| 10 | 10 |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 return true; | 139 return true; |
| 140 } | 140 } |
| 141 | 141 |
| 142 // static | 142 // static |
| 143 bool StructTraits<cc::mojom::RenderPassQuadState, cc::DrawQuad>::Read( | 143 bool StructTraits<cc::mojom::RenderPassQuadState, cc::DrawQuad>::Read( |
| 144 cc::mojom::RenderPassQuadStateDataView data, | 144 cc::mojom::RenderPassQuadStateDataView data, |
| 145 cc::DrawQuad* out) { | 145 cc::DrawQuad* out) { |
| 146 cc::RenderPassDrawQuad* quad = static_cast<cc::RenderPassDrawQuad*>(out); | 146 cc::RenderPassDrawQuad* quad = static_cast<cc::RenderPassDrawQuad*>(out); |
| 147 quad->resources.ids[cc::RenderPassDrawQuad::kMaskResourceIdIndex] = | 147 quad->resources.ids[cc::RenderPassDrawQuad::kMaskResourceIdIndex] = |
| 148 data.mask_resource_id(); | 148 data.mask_resource_id(); |
| 149 quad->resources.count = data.mask_resource_id() ? 1 : 0; |
| 149 return data.ReadRenderPassId(&quad->render_pass_id) && | 150 return data.ReadRenderPassId(&quad->render_pass_id) && |
| 150 data.ReadMaskUvScale(&quad->mask_uv_scale) && | 151 data.ReadMaskUvScale(&quad->mask_uv_scale) && |
| 151 data.ReadMaskTextureSize(&quad->mask_texture_size) && | 152 data.ReadMaskTextureSize(&quad->mask_texture_size) && |
| 152 data.ReadFilters(&quad->filters) && | 153 data.ReadFilters(&quad->filters) && |
| 153 data.ReadFiltersScale(&quad->filters_scale) && | 154 data.ReadFiltersScale(&quad->filters_scale) && |
| 154 data.ReadBackgroundFilters(&quad->background_filters); | 155 data.ReadBackgroundFilters(&quad->background_filters); |
| 155 } | 156 } |
| 156 | 157 |
| 157 // static | 158 // static |
| 158 bool StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad>::Read( | 159 bool StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad>::Read( |
| (...skipping 13 matching lines...) Expand all Loading... |
| 172 return data.ReadSurface(&quad->surface_id); | 173 return data.ReadSurface(&quad->surface_id); |
| 173 } | 174 } |
| 174 | 175 |
| 175 // static | 176 // static |
| 176 bool StructTraits<cc::mojom::TextureQuadState, cc::DrawQuad>::Read( | 177 bool StructTraits<cc::mojom::TextureQuadState, cc::DrawQuad>::Read( |
| 177 cc::mojom::TextureQuadStateDataView data, | 178 cc::mojom::TextureQuadStateDataView data, |
| 178 cc::DrawQuad* out) { | 179 cc::DrawQuad* out) { |
| 179 cc::TextureDrawQuad* quad = static_cast<cc::TextureDrawQuad*>(out); | 180 cc::TextureDrawQuad* quad = static_cast<cc::TextureDrawQuad*>(out); |
| 180 quad->resources.ids[cc::TextureDrawQuad::kResourceIdIndex] = | 181 quad->resources.ids[cc::TextureDrawQuad::kResourceIdIndex] = |
| 181 data.resource_id(); | 182 data.resource_id(); |
| 183 quad->resources.count = 1; |
| 182 quad->premultiplied_alpha = data.premultiplied_alpha(); | 184 quad->premultiplied_alpha = data.premultiplied_alpha(); |
| 183 if (!data.ReadUvTopLeft(&quad->uv_top_left) || | 185 if (!data.ReadUvTopLeft(&quad->uv_top_left) || |
| 184 !data.ReadUvBottomRight(&quad->uv_bottom_right)) { | 186 !data.ReadUvBottomRight(&quad->uv_bottom_right)) { |
| 185 return false; | 187 return false; |
| 186 } | 188 } |
| 187 quad->background_color = data.background_color(); | 189 quad->background_color = data.background_color(); |
| 188 CArray<float> vertex_opacity_array = {4, 4, &quad->vertex_opacity[0]}; | 190 CArray<float> vertex_opacity_array = {4, 4, &quad->vertex_opacity[0]}; |
| 189 if (!data.ReadVertexOpacity(&vertex_opacity_array)) | 191 if (!data.ReadVertexOpacity(&vertex_opacity_array)) |
| 190 return false; | 192 return false; |
| 191 | 193 |
| 192 quad->y_flipped = data.y_flipped(); | 194 quad->y_flipped = data.y_flipped(); |
| 193 quad->nearest_neighbor = data.nearest_neighbor(); | 195 quad->nearest_neighbor = data.nearest_neighbor(); |
| 194 quad->secure_output_only = data.secure_output_only(); | 196 quad->secure_output_only = data.secure_output_only(); |
| 195 return true; | 197 return true; |
| 196 } | 198 } |
| 197 | 199 |
| 198 // static | 200 // static |
| 199 bool StructTraits<cc::mojom::TileQuadState, cc::DrawQuad>::Read( | 201 bool StructTraits<cc::mojom::TileQuadState, cc::DrawQuad>::Read( |
| 200 cc::mojom::TileQuadStateDataView data, | 202 cc::mojom::TileQuadStateDataView data, |
| 201 cc::DrawQuad* out) { | 203 cc::DrawQuad* out) { |
| 202 cc::TileDrawQuad* quad = static_cast<cc::TileDrawQuad*>(out); | 204 cc::TileDrawQuad* quad = static_cast<cc::TileDrawQuad*>(out); |
| 203 if (!data.ReadTexCoordRect(&quad->tex_coord_rect) || | 205 if (!data.ReadTexCoordRect(&quad->tex_coord_rect) || |
| 204 !data.ReadTextureSize(&quad->texture_size)) { | 206 !data.ReadTextureSize(&quad->texture_size)) { |
| 205 return false; | 207 return false; |
| 206 } | 208 } |
| 207 | 209 |
| 208 quad->swizzle_contents = data.swizzle_contents(); | 210 quad->swizzle_contents = data.swizzle_contents(); |
| 209 quad->nearest_neighbor = data.nearest_neighbor(); | 211 quad->nearest_neighbor = data.nearest_neighbor(); |
| 210 quad->resources.ids[cc::TileDrawQuad::kResourceIdIndex] = data.resource_id(); | 212 quad->resources.ids[cc::TileDrawQuad::kResourceIdIndex] = data.resource_id(); |
| 213 quad->resources.count = 1; |
| 211 return true; | 214 return true; |
| 212 } | 215 } |
| 213 | 216 |
| 214 cc::mojom::YUVColorSpace | 217 cc::mojom::YUVColorSpace |
| 215 EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace>::ToMojom( | 218 EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace>::ToMojom( |
| 216 cc::YUVVideoDrawQuad::ColorSpace color_space) { | 219 cc::YUVVideoDrawQuad::ColorSpace color_space) { |
| 217 switch (color_space) { | 220 switch (color_space) { |
| 218 case cc::YUVVideoDrawQuad::REC_601: | 221 case cc::YUVVideoDrawQuad::REC_601: |
| 219 return cc::mojom::YUVColorSpace::REC_601; | 222 return cc::mojom::YUVColorSpace::REC_601; |
| 220 case cc::YUVVideoDrawQuad::REC_709: | 223 case cc::YUVVideoDrawQuad::REC_709: |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 return false; | 259 return false; |
| 257 } | 260 } |
| 258 quad->resources.ids[cc::YUVVideoDrawQuad::kYPlaneResourceIdIndex] = | 261 quad->resources.ids[cc::YUVVideoDrawQuad::kYPlaneResourceIdIndex] = |
| 259 data.y_plane_resource_id(); | 262 data.y_plane_resource_id(); |
| 260 quad->resources.ids[cc::YUVVideoDrawQuad::kUPlaneResourceIdIndex] = | 263 quad->resources.ids[cc::YUVVideoDrawQuad::kUPlaneResourceIdIndex] = |
| 261 data.u_plane_resource_id(); | 264 data.u_plane_resource_id(); |
| 262 quad->resources.ids[cc::YUVVideoDrawQuad::kVPlaneResourceIdIndex] = | 265 quad->resources.ids[cc::YUVVideoDrawQuad::kVPlaneResourceIdIndex] = |
| 263 data.v_plane_resource_id(); | 266 data.v_plane_resource_id(); |
| 264 quad->resources.ids[cc::YUVVideoDrawQuad::kAPlaneResourceIdIndex] = | 267 quad->resources.ids[cc::YUVVideoDrawQuad::kAPlaneResourceIdIndex] = |
| 265 data.a_plane_resource_id(); | 268 data.a_plane_resource_id(); |
| 269 static_assert(cc::YUVVideoDrawQuad::kAPlaneResourceIdIndex == |
| 270 cc::DrawQuad::Resources::kMaxResourceIdCount - 1, |
| 271 "The A plane resource should be the last resource ID."); |
| 272 quad->resources.count = data.a_plane_resource_id() ? 4 : 3; |
| 273 |
| 266 if (!data.ReadColorSpace(&quad->color_space)) | 274 if (!data.ReadColorSpace(&quad->color_space)) |
| 267 return false; | 275 return false; |
| 268 quad->resource_offset = data.resource_offset(); | 276 quad->resource_offset = data.resource_offset(); |
| 269 quad->resource_multiplier = data.resource_multiplier(); | 277 quad->resource_multiplier = data.resource_multiplier(); |
| 270 return true; | 278 return true; |
| 271 } | 279 } |
| 272 | 280 |
| 273 // static | 281 // static |
| 274 bool StructTraits<cc::mojom::DrawQuad, cc::DrawQuad>::Read( | 282 bool StructTraits<cc::mojom::DrawQuad, cc::DrawQuad>::Read( |
| 275 cc::mojom::DrawQuadDataView data, | 283 cc::mojom::DrawQuadDataView data, |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 if (!AllocateAndConstruct(materials[i], out)) | 354 if (!AllocateAndConstruct(materials[i], out)) |
| 347 return false; | 355 return false; |
| 348 } | 356 } |
| 349 // The materials array and the quads array are expected to be the same size. | 357 // The materials array and the quads array are expected to be the same size. |
| 350 // If they are not, then deserialization will fail. | 358 // If they are not, then deserialization will fail. |
| 351 QuadListArray quad_list_array = {materials.size(), out}; | 359 QuadListArray quad_list_array = {materials.size(), out}; |
| 352 return data.ReadQuads(&quad_list_array); | 360 return data.ReadQuads(&quad_list_array); |
| 353 } | 361 } |
| 354 | 362 |
| 355 } // namespace mojo | 363 } // namespace mojo |
| OLD | NEW |