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 quad->resources.count = data.a_plane_resource_id() ? 4 : 3; | |
danakj
2016/06/22 20:51:35
This depends on the A resource coming last in the
Fady Samuel
2016/06/22 21:41:19
Done.
| |
270 | |
266 if (!data.ReadColorSpace(&quad->color_space)) | 271 if (!data.ReadColorSpace(&quad->color_space)) |
267 return false; | 272 return false; |
268 quad->resource_offset = data.resource_offset(); | 273 quad->resource_offset = data.resource_offset(); |
269 quad->resource_multiplier = data.resource_multiplier(); | 274 quad->resource_multiplier = data.resource_multiplier(); |
270 return true; | 275 return true; |
271 } | 276 } |
272 | 277 |
273 // static | 278 // static |
274 bool StructTraits<cc::mojom::DrawQuad, cc::DrawQuad>::Read( | 279 bool StructTraits<cc::mojom::DrawQuad, cc::DrawQuad>::Read( |
275 cc::mojom::DrawQuadDataView data, | 280 cc::mojom::DrawQuadDataView data, |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
346 if (!AllocateAndConstruct(materials[i], out)) | 351 if (!AllocateAndConstruct(materials[i], out)) |
347 return false; | 352 return false; |
348 } | 353 } |
349 // The materials array and the quads array are expected to be the same size. | 354 // The materials array and the quads array are expected to be the same size. |
350 // If they are not, then deserialization will fail. | 355 // If they are not, then deserialization will fail. |
351 QuadListArray quad_list_array = {materials.size(), out}; | 356 QuadListArray quad_list_array = {materials.size(), out}; |
352 return data.ReadQuads(&quad_list_array); | 357 return data.ReadQuads(&quad_list_array); |
353 } | 358 } |
354 | 359 |
355 } // namespace mojo | 360 } // namespace mojo |
OLD | NEW |