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

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

Issue 2773103002: cc: Unify all sources of color space for YUVVideoDrawQuad (Closed)
Patch Set: Created 3 years, 9 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
« no previous file with comments | « cc/ipc/quads_struct_traits.h ('k') | cc/ipc/struct_traits_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #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
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
OLDNEW
« no previous file with comments | « cc/ipc/quads_struct_traits.h ('k') | cc/ipc/struct_traits_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698