Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(406)

Side by Side Diff: cc/ipc/quads_struct_traits.cc

Issue 2088603002: Implement RenderPass StructTraits (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Dana's comments Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698