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

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

Issue 2229553004: cc: Implement UnionTraits for DrawQuads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed comment Created 4 years, 4 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
« cc/ipc/quads.mojom ('K') | « cc/ipc/quads_struct_traits.h ('k') | no next file » | 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(cc::mojom::Material material, 10 cc::DrawQuad* AllocateAndConstruct(cc::mojom::Material material,
11 cc::QuadList* list) { 11 cc::QuadList* list) {
12 cc::DrawQuad* quad = nullptr; 12 cc::DrawQuad* quad = nullptr;
13 switch (material) { 13 switch (material) {
14 case cc::mojom::Material::INVALID:
15 return nullptr;
16 case cc::mojom::Material::DEBUG_BORDER: 14 case cc::mojom::Material::DEBUG_BORDER:
17 quad = list->AllocateAndConstruct<cc::DebugBorderDrawQuad>(); 15 quad = list->AllocateAndConstruct<cc::DebugBorderDrawQuad>();
18 quad->material = cc::DrawQuad::DEBUG_BORDER; 16 quad->material = cc::DrawQuad::DEBUG_BORDER;
19 return quad; 17 return quad;
20 case cc::mojom::Material::PICTURE_CONTENT:
21 quad = list->AllocateAndConstruct<cc::PictureDrawQuad>();
22 quad->material = cc::DrawQuad::PICTURE_CONTENT;
23 return quad;
24 case cc::mojom::Material::RENDER_PASS: 18 case cc::mojom::Material::RENDER_PASS:
25 quad = list->AllocateAndConstruct<cc::RenderPassDrawQuad>(); 19 quad = list->AllocateAndConstruct<cc::RenderPassDrawQuad>();
26 quad->material = cc::DrawQuad::RENDER_PASS; 20 quad->material = cc::DrawQuad::RENDER_PASS;
27 return quad; 21 return quad;
28 case cc::mojom::Material::SOLID_COLOR: 22 case cc::mojom::Material::SOLID_COLOR:
29 quad = list->AllocateAndConstruct<cc::SolidColorDrawQuad>(); 23 quad = list->AllocateAndConstruct<cc::SolidColorDrawQuad>();
30 quad->material = cc::DrawQuad::SOLID_COLOR; 24 quad->material = cc::DrawQuad::SOLID_COLOR;
31 return quad; 25 return quad;
32 case cc::mojom::Material::STREAM_VIDEO_CONTENT: 26 case cc::mojom::Material::STREAM_VIDEO_CONTENT:
33 quad = list->AllocateAndConstruct<cc::StreamVideoDrawQuad>(); 27 quad = list->AllocateAndConstruct<cc::StreamVideoDrawQuad>();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 } 63 }
70 64
71 } // namespace 65 } // namespace
72 66
73 // static 67 // static
74 cc::mojom::Material 68 cc::mojom::Material
75 EnumTraits<cc::mojom::Material, cc::DrawQuad::Material>::ToMojom( 69 EnumTraits<cc::mojom::Material, cc::DrawQuad::Material>::ToMojom(
76 cc::DrawQuad::Material material) { 70 cc::DrawQuad::Material material) {
77 switch (material) { 71 switch (material) {
78 case cc::DrawQuad::INVALID: 72 case cc::DrawQuad::INVALID:
79 return cc::mojom::Material::INVALID; 73 break;
80 case cc::DrawQuad::DEBUG_BORDER: 74 case cc::DrawQuad::DEBUG_BORDER:
81 return cc::mojom::Material::DEBUG_BORDER; 75 return cc::mojom::Material::DEBUG_BORDER;
82 case cc::DrawQuad::PICTURE_CONTENT: 76 case cc::DrawQuad::PICTURE_CONTENT:
83 return cc::mojom::Material::PICTURE_CONTENT; 77 break;
84 case cc::DrawQuad::RENDER_PASS: 78 case cc::DrawQuad::RENDER_PASS:
85 return cc::mojom::Material::RENDER_PASS; 79 return cc::mojom::Material::RENDER_PASS;
86 case cc::DrawQuad::SOLID_COLOR: 80 case cc::DrawQuad::SOLID_COLOR:
87 return cc::mojom::Material::SOLID_COLOR; 81 return cc::mojom::Material::SOLID_COLOR;
88 case cc::DrawQuad::STREAM_VIDEO_CONTENT: 82 case cc::DrawQuad::STREAM_VIDEO_CONTENT:
89 return cc::mojom::Material::STREAM_VIDEO_CONTENT; 83 return cc::mojom::Material::STREAM_VIDEO_CONTENT;
90 case cc::DrawQuad::SURFACE_CONTENT: 84 case cc::DrawQuad::SURFACE_CONTENT:
91 return cc::mojom::Material::SURFACE_CONTENT; 85 return cc::mojom::Material::SURFACE_CONTENT;
92 case cc::DrawQuad::TEXTURE_CONTENT: 86 case cc::DrawQuad::TEXTURE_CONTENT:
93 return cc::mojom::Material::TEXTURE_CONTENT; 87 return cc::mojom::Material::TEXTURE_CONTENT;
94 case cc::DrawQuad::TILED_CONTENT: 88 case cc::DrawQuad::TILED_CONTENT:
95 return cc::mojom::Material::TILED_CONTENT; 89 return cc::mojom::Material::TILED_CONTENT;
96 case cc::DrawQuad::YUV_VIDEO_CONTENT: 90 case cc::DrawQuad::YUV_VIDEO_CONTENT:
97 return cc::mojom::Material::YUV_VIDEO_CONTENT; 91 return cc::mojom::Material::YUV_VIDEO_CONTENT;
98 } 92 }
99 return cc::mojom::Material::INVALID; 93 // We cannot serialize PictureDrawQuads or Invalid Quads.
94 NOTREACHED();
95 return cc::mojom::Material::DEBUG_BORDER;
100 } 96 }
101 97
102 // static 98 // static
103 bool EnumTraits<cc::mojom::Material, cc::DrawQuad::Material>::FromMojom( 99 bool EnumTraits<cc::mojom::Material, cc::DrawQuad::Material>::FromMojom(
104 cc::mojom::Material input, 100 cc::mojom::Material input,
105 cc::DrawQuad::Material* out) { 101 cc::DrawQuad::Material* out) {
106 switch (input) { 102 switch (input) {
107 case cc::mojom::Material::INVALID:
108 *out = cc::DrawQuad::INVALID;
109 return true;
110 case cc::mojom::Material::DEBUG_BORDER: 103 case cc::mojom::Material::DEBUG_BORDER:
111 *out = cc::DrawQuad::DEBUG_BORDER; 104 *out = cc::DrawQuad::DEBUG_BORDER;
112 return true; 105 return true;
113 case cc::mojom::Material::PICTURE_CONTENT:
114 *out = cc::DrawQuad::PICTURE_CONTENT;
115 return true;
116 case cc::mojom::Material::RENDER_PASS: 106 case cc::mojom::Material::RENDER_PASS:
117 *out = cc::DrawQuad::RENDER_PASS; 107 *out = cc::DrawQuad::RENDER_PASS;
118 return true; 108 return true;
119 case cc::mojom::Material::SOLID_COLOR: 109 case cc::mojom::Material::SOLID_COLOR:
120 *out = cc::DrawQuad::SOLID_COLOR; 110 *out = cc::DrawQuad::SOLID_COLOR;
121 return true; 111 return true;
122 case cc::mojom::Material::STREAM_VIDEO_CONTENT: 112 case cc::mojom::Material::STREAM_VIDEO_CONTENT:
123 *out = cc::DrawQuad::STREAM_VIDEO_CONTENT; 113 *out = cc::DrawQuad::STREAM_VIDEO_CONTENT;
124 return true; 114 return true;
125 case cc::mojom::Material::SURFACE_CONTENT: 115 case cc::mojom::Material::SURFACE_CONTENT:
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 } 295 }
306 return true; 296 return true;
307 } 297 }
308 298
309 // static 299 // static
310 bool StructTraits<cc::mojom::DrawQuad, cc::DrawQuad>::Read( 300 bool StructTraits<cc::mojom::DrawQuad, cc::DrawQuad>::Read(
311 cc::mojom::DrawQuadDataView data, 301 cc::mojom::DrawQuadDataView data,
312 cc::DrawQuad* out) { 302 cc::DrawQuad* out) {
313 if (!ReadDrawQuad(data, out)) 303 if (!ReadDrawQuad(data, out))
314 return false; 304 return false;
315 switch (data.material()) { 305 return data.ReadDrawQuadState(out);
316 case cc::mojom::Material::INVALID:
317 break;
318 case cc::mojom::Material::DEBUG_BORDER:
319 return data.ReadDebugBorderQuadState(out);
320 case cc::mojom::Material::PICTURE_CONTENT:
321 // TODO(fsamuel): Implement PictureDrawQuad
322 // serialization/deserialization.
323 break;
324 case cc::mojom::Material::RENDER_PASS:
325 return data.ReadRenderPassQuadState(out);
326 case cc::mojom::Material::SOLID_COLOR:
327 return data.ReadSolidColorQuadState(out);
328 case cc::mojom::Material::STREAM_VIDEO_CONTENT:
329 return data.ReadStreamVideoQuadState(out);
330 case cc::mojom::Material::SURFACE_CONTENT:
331 return data.ReadSurfaceQuadState(out);
332 case cc::mojom::Material::TEXTURE_CONTENT:
333 return data.ReadTextureQuadState(out);
334 case cc::mojom::Material::TILED_CONTENT:
335 return data.ReadTileQuadState(out);
336 case cc::mojom::Material::YUV_VIDEO_CONTENT:
337 return data.ReadYuvVideoQuadState(out);
338 }
339 NOTREACHED();
340 return false;
341 } 306 }
342 307
343 } // namespace mojo 308 } // namespace mojo
OLDNEW
« cc/ipc/quads.mojom ('K') | « cc/ipc/quads_struct_traits.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698