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

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

Issue 2229553004: cc: Implement UnionTraits for DrawQuads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed alphabetization 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
« no previous file with comments | « cc/ipc/quads.mojom ('k') | cc/ipc/quads_struct_traits.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 #ifndef CC_IPC_QUADS_STRUCT_TRAITS_H_ 5 #ifndef CC_IPC_QUADS_STRUCT_TRAITS_H_
6 #define CC_IPC_QUADS_STRUCT_TRAITS_H_ 6 #define CC_IPC_QUADS_STRUCT_TRAITS_H_
7 7
8 #include "cc/ipc/filter_operation_struct_traits.h" 8 #include "cc/ipc/filter_operation_struct_traits.h"
9 #include "cc/ipc/filter_operations_struct_traits.h" 9 #include "cc/ipc/filter_operations_struct_traits.h"
10 #include "cc/ipc/quads.mojom.h" 10 #include "cc/ipc/quads.mojom.h"
11 #include "cc/ipc/render_pass_id_struct_traits.h" 11 #include "cc/ipc/render_pass_id_struct_traits.h"
12 #include "cc/ipc/shared_quad_state_struct_traits.h" 12 #include "cc/ipc/shared_quad_state_struct_traits.h"
13 #include "cc/ipc/surface_id_struct_traits.h" 13 #include "cc/ipc/surface_id_struct_traits.h"
14 #include "cc/quads/debug_border_draw_quad.h" 14 #include "cc/quads/debug_border_draw_quad.h"
15 #include "cc/quads/picture_draw_quad.h" 15 #include "cc/quads/picture_draw_quad.h"
16 #include "cc/quads/render_pass_draw_quad.h" 16 #include "cc/quads/render_pass_draw_quad.h"
17 #include "cc/quads/solid_color_draw_quad.h" 17 #include "cc/quads/solid_color_draw_quad.h"
18 #include "cc/quads/stream_video_draw_quad.h" 18 #include "cc/quads/stream_video_draw_quad.h"
19 #include "cc/quads/surface_draw_quad.h" 19 #include "cc/quads/surface_draw_quad.h"
20 #include "cc/quads/texture_draw_quad.h" 20 #include "cc/quads/texture_draw_quad.h"
21 #include "cc/quads/tile_draw_quad.h" 21 #include "cc/quads/tile_draw_quad.h"
22 #include "cc/quads/yuv_video_draw_quad.h" 22 #include "cc/quads/yuv_video_draw_quad.h"
23 #include "ui/gfx/geometry/mojo/geometry_struct_traits.h" 23 #include "ui/gfx/geometry/mojo/geometry_struct_traits.h"
24 24
25 namespace mojo { 25 namespace mojo {
26 26
27 cc::DrawQuad* AllocateAndConstruct(cc::mojom::Material material, 27 cc::DrawQuad* AllocateAndConstruct(
28 cc::QuadList* list); 28 cc::mojom::DrawQuadState::DataView::Tag material,
29 cc::QuadList* list);
30
29 template <> 31 template <>
30 struct EnumTraits<cc::mojom::Material, cc::DrawQuad::Material> { 32 struct UnionTraits<cc::mojom::DrawQuadState, cc::DrawQuad> {
31 static cc::mojom::Material ToMojom(cc::DrawQuad::Material material); 33 static cc::mojom::DrawQuadState::DataView::Tag GetTag(
32 static bool FromMojom(cc::mojom::Material input, cc::DrawQuad::Material* out); 34 const cc::DrawQuad& quad) {
35 switch (quad.material) {
36 case cc::DrawQuad::INVALID:
37 break;
38 case cc::DrawQuad::DEBUG_BORDER:
39 return cc::mojom::DrawQuadState::DataView::Tag::DEBUG_BORDER_QUAD_STATE;
40 case cc::DrawQuad::PICTURE_CONTENT:
41 break;
42 case cc::DrawQuad::RENDER_PASS:
43 return cc::mojom::DrawQuadState::DataView::Tag::RENDER_PASS_QUAD_STATE;
44 case cc::DrawQuad::SOLID_COLOR:
45 return cc::mojom::DrawQuadState::DataView::Tag::SOLID_COLOR_QUAD_STATE;
46 case cc::DrawQuad::STREAM_VIDEO_CONTENT:
47 return cc::mojom::DrawQuadState::DataView::Tag::STREAM_VIDEO_QUAD_STATE;
48 case cc::DrawQuad::SURFACE_CONTENT:
49 return cc::mojom::DrawQuadState::DataView::Tag::SURFACE_QUAD_STATE;
50 case cc::DrawQuad::TEXTURE_CONTENT:
51 return cc::mojom::DrawQuadState::DataView::Tag::TEXTURE_QUAD_STATE;
52 case cc::DrawQuad::TILED_CONTENT:
53 return cc::mojom::DrawQuadState::DataView::Tag::TILE_QUAD_STATE;
54 case cc::DrawQuad::YUV_VIDEO_CONTENT:
55 return cc::mojom::DrawQuadState::DataView::Tag::YUV_VIDEO_QUAD_STATE;
56 }
57 NOTREACHED();
58 return cc::mojom::DrawQuadState::DataView::Tag::DEBUG_BORDER_QUAD_STATE;
59 }
60
61 static const cc::DrawQuad& debug_border_quad_state(const cc::DrawQuad& quad) {
62 return quad;
63 }
64
65 static const cc::DrawQuad& render_pass_quad_state(const cc::DrawQuad& quad) {
66 return quad;
67 }
68
69 static const cc::DrawQuad& solid_color_quad_state(const cc::DrawQuad& quad) {
70 return quad;
71 }
72
73 static const cc::DrawQuad& surface_quad_state(const cc::DrawQuad& quad) {
74 return quad;
75 }
76
77 static const cc::DrawQuad& texture_quad_state(const cc::DrawQuad& quad) {
78 return quad;
79 }
80
81 static const cc::DrawQuad& tile_quad_state(const cc::DrawQuad& quad) {
82 return quad;
83 }
84
85 static const cc::DrawQuad& stream_video_quad_state(const cc::DrawQuad& quad) {
86 return quad;
87 }
88
89 static const cc::DrawQuad& yuv_video_quad_state(const cc::DrawQuad& quad) {
90 return quad;
91 }
92
93 static bool Read(cc::mojom::DrawQuadState::DataView data, cc::DrawQuad* out) {
94 switch (data.tag()) {
95 case cc::mojom::DrawQuadState::DataView::Tag::DEBUG_BORDER_QUAD_STATE:
96 return data.ReadDebugBorderQuadState(out);
97 case cc::mojom::DrawQuadState::DataView::Tag::RENDER_PASS_QUAD_STATE:
98 return data.ReadRenderPassQuadState(out);
99 case cc::mojom::DrawQuadState::DataView::Tag::SOLID_COLOR_QUAD_STATE:
100 return data.ReadSolidColorQuadState(out);
101 case cc::mojom::DrawQuadState::DataView::Tag::SURFACE_QUAD_STATE:
102 return data.ReadSurfaceQuadState(out);
103 case cc::mojom::DrawQuadState::DataView::Tag::TEXTURE_QUAD_STATE:
104 return data.ReadTextureQuadState(out);
105 case cc::mojom::DrawQuadState::DataView::Tag::TILE_QUAD_STATE:
106 return data.ReadTileQuadState(out);
107 case cc::mojom::DrawQuadState::DataView::Tag::STREAM_VIDEO_QUAD_STATE:
108 return data.ReadStreamVideoQuadState(out);
109 case cc::mojom::DrawQuadState::DataView::Tag::YUV_VIDEO_QUAD_STATE:
110 return data.ReadYuvVideoQuadState(out);
111 }
112 NOTREACHED();
113 return false;
114 }
33 }; 115 };
34 116
35 template <> 117 template <>
36 struct StructTraits<cc::mojom::DebugBorderQuadState, cc::DrawQuad> { 118 struct StructTraits<cc::mojom::DebugBorderQuadState, cc::DrawQuad> {
37 static bool IsNull(const cc::DrawQuad& input) {
38 return input.material != cc::DrawQuad::DEBUG_BORDER;
39 }
40
41 static void SetToNull(cc::DrawQuad* output) {
42 // There is nothing to deserialize here if the DrawQuad is not a
43 // DebugBorderDrawQuad. If it is, then this should not be called.
44 DCHECK_NE(cc::DrawQuad::DEBUG_BORDER, output->material);
45 }
46
47 static uint32_t color(const cc::DrawQuad& input) { 119 static uint32_t color(const cc::DrawQuad& input) {
48 const cc::DebugBorderDrawQuad* quad = 120 const cc::DebugBorderDrawQuad* quad =
49 cc::DebugBorderDrawQuad::MaterialCast(&input); 121 cc::DebugBorderDrawQuad::MaterialCast(&input);
50 return quad->color; 122 return quad->color;
51 } 123 }
52 124
53 static int32_t width(const cc::DrawQuad& input) { 125 static int32_t width(const cc::DrawQuad& input) {
54 const cc::DebugBorderDrawQuad* quad = 126 const cc::DebugBorderDrawQuad* quad =
55 cc::DebugBorderDrawQuad::MaterialCast(&input); 127 cc::DebugBorderDrawQuad::MaterialCast(&input);
56 return quad->width; 128 return quad->width;
57 } 129 }
58 130
59 static bool Read(cc::mojom::DebugBorderQuadStateDataView data, 131 static bool Read(cc::mojom::DebugBorderQuadStateDataView data,
60 cc::DrawQuad* out); 132 cc::DrawQuad* out);
61 }; 133 };
62 134
63 template <> 135 template <>
64 struct StructTraits<cc::mojom::RenderPassQuadState, cc::DrawQuad> { 136 struct StructTraits<cc::mojom::RenderPassQuadState, cc::DrawQuad> {
65 static bool IsNull(const cc::DrawQuad& quad) {
66 return quad.material != cc::DrawQuad::RENDER_PASS;
67 }
68
69 static void SetToNull(cc::DrawQuad* output) {
70 // There is nothing to deserialize here if the DrawQuad is not a
71 // RenderPassDrawQuad. If it is, then this should not be called.
72 DCHECK_NE(cc::DrawQuad::RENDER_PASS, output->material);
73 }
74
75 static const cc::RenderPassId& render_pass_id(const cc::DrawQuad& input) { 137 static const cc::RenderPassId& render_pass_id(const cc::DrawQuad& input) {
76 const cc::RenderPassDrawQuad* quad = 138 const cc::RenderPassDrawQuad* quad =
77 cc::RenderPassDrawQuad::MaterialCast(&input); 139 cc::RenderPassDrawQuad::MaterialCast(&input);
78 return quad->render_pass_id; 140 return quad->render_pass_id;
79 } 141 }
80 142
81 static uint32_t mask_resource_id(const cc::DrawQuad& input) { 143 static uint32_t mask_resource_id(const cc::DrawQuad& input) {
82 const cc::RenderPassDrawQuad* quad = 144 const cc::RenderPassDrawQuad* quad =
83 cc::RenderPassDrawQuad::MaterialCast(&input); 145 cc::RenderPassDrawQuad::MaterialCast(&input);
84 return quad->mask_resource_id(); 146 return quad->mask_resource_id();
(...skipping 29 matching lines...) Expand all
114 cc::RenderPassDrawQuad::MaterialCast(&input); 176 cc::RenderPassDrawQuad::MaterialCast(&input);
115 return quad->background_filters; 177 return quad->background_filters;
116 } 178 }
117 179
118 static bool Read(cc::mojom::RenderPassQuadStateDataView data, 180 static bool Read(cc::mojom::RenderPassQuadStateDataView data,
119 cc::DrawQuad* out); 181 cc::DrawQuad* out);
120 }; 182 };
121 183
122 template <> 184 template <>
123 struct StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad> { 185 struct StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad> {
124 static bool IsNull(const cc::DrawQuad& input) {
125 return input.material != cc::DrawQuad::SOLID_COLOR;
126 }
127
128 static void SetToNull(cc::DrawQuad* output) {
129 // There is nothing to deserialize here if the DrawQuad is not a
130 // SolidColorDrawQuad. If it is, then this should not be called.
131 DCHECK_NE(cc::DrawQuad::SOLID_COLOR, output->material);
132 }
133
134 static uint32_t color(const cc::DrawQuad& input) { 186 static uint32_t color(const cc::DrawQuad& input) {
135 const cc::SolidColorDrawQuad* quad = 187 const cc::SolidColorDrawQuad* quad =
136 cc::SolidColorDrawQuad::MaterialCast(&input); 188 cc::SolidColorDrawQuad::MaterialCast(&input);
137 return quad->color; 189 return quad->color;
138 } 190 }
139 191
140 static bool force_anti_aliasing_off(const cc::DrawQuad& input) { 192 static bool force_anti_aliasing_off(const cc::DrawQuad& input) {
141 const cc::SolidColorDrawQuad* quad = 193 const cc::SolidColorDrawQuad* quad =
142 cc::SolidColorDrawQuad::MaterialCast(&input); 194 cc::SolidColorDrawQuad::MaterialCast(&input);
143 return quad->force_anti_aliasing_off; 195 return quad->force_anti_aliasing_off;
144 } 196 }
145 197
146 static bool Read(cc::mojom::SolidColorQuadStateDataView data, 198 static bool Read(cc::mojom::SolidColorQuadStateDataView data,
147 cc::DrawQuad* out); 199 cc::DrawQuad* out);
148 }; 200 };
149 201
150 template <> 202 template <>
151 struct StructTraits<cc::mojom::StreamVideoQuadState, cc::DrawQuad> { 203 struct StructTraits<cc::mojom::StreamVideoQuadState, cc::DrawQuad> {
152 static bool IsNull(const cc::DrawQuad& input) {
153 return input.material != cc::DrawQuad::STREAM_VIDEO_CONTENT;
154 }
155
156 static void SetToNull(cc::DrawQuad* output) {
157 // There is nothing to deserialize here if the DrawQuad is not a
158 // StreamVideoDrawQuad. If it is, then this should not be called.
159 DCHECK_NE(cc::DrawQuad::STREAM_VIDEO_CONTENT, output->material);
160 }
161
162 static uint32_t resource_id(const cc::DrawQuad& input) { 204 static uint32_t resource_id(const cc::DrawQuad& input) {
163 const cc::StreamVideoDrawQuad* quad = 205 const cc::StreamVideoDrawQuad* quad =
164 cc::StreamVideoDrawQuad::MaterialCast(&input); 206 cc::StreamVideoDrawQuad::MaterialCast(&input);
165 return quad->resources.ids[cc::StreamVideoDrawQuad::kResourceIdIndex]; 207 return quad->resources.ids[cc::StreamVideoDrawQuad::kResourceIdIndex];
166 } 208 }
167 209
168 static const gfx::Size& resource_size_in_pixels(const cc::DrawQuad& input) { 210 static const gfx::Size& resource_size_in_pixels(const cc::DrawQuad& input) {
169 const cc::StreamVideoDrawQuad* quad = 211 const cc::StreamVideoDrawQuad* quad =
170 cc::StreamVideoDrawQuad::MaterialCast(&input); 212 cc::StreamVideoDrawQuad::MaterialCast(&input);
171 return quad->overlay_resources 213 return quad->overlay_resources
172 .size_in_pixels[cc::StreamVideoDrawQuad::kResourceIdIndex]; 214 .size_in_pixels[cc::StreamVideoDrawQuad::kResourceIdIndex];
173 } 215 }
174 216
175 static const gfx::Transform& matrix(const cc::DrawQuad& input) { 217 static const gfx::Transform& matrix(const cc::DrawQuad& input) {
176 const cc::StreamVideoDrawQuad* quad = 218 const cc::StreamVideoDrawQuad* quad =
177 cc::StreamVideoDrawQuad::MaterialCast(&input); 219 cc::StreamVideoDrawQuad::MaterialCast(&input);
178 return quad->matrix; 220 return quad->matrix;
179 } 221 }
180 222
181 static bool Read(cc::mojom::StreamVideoQuadStateDataView data, 223 static bool Read(cc::mojom::StreamVideoQuadStateDataView data,
182 cc::DrawQuad* out); 224 cc::DrawQuad* out);
183 }; 225 };
184 226
185 template <> 227 template <>
186 struct StructTraits<cc::mojom::SurfaceQuadState, cc::DrawQuad> { 228 struct StructTraits<cc::mojom::SurfaceQuadState, cc::DrawQuad> {
187 static bool IsNull(const cc::DrawQuad& input) {
188 return input.material != cc::DrawQuad::SURFACE_CONTENT;
189 }
190
191 static void SetToNull(cc::DrawQuad* output) {
192 // There is nothing to deserialize here if the DrawQuad is not a
193 // SurfaceDrawQuad. If it is, then this should not be called.
194 DCHECK_NE(cc::DrawQuad::SURFACE_CONTENT, output->material);
195 }
196
197 static const cc::SurfaceId& surface(const cc::DrawQuad& input) { 229 static const cc::SurfaceId& surface(const cc::DrawQuad& input) {
198 const cc::SurfaceDrawQuad* quad = cc::SurfaceDrawQuad::MaterialCast(&input); 230 const cc::SurfaceDrawQuad* quad = cc::SurfaceDrawQuad::MaterialCast(&input);
199 return quad->surface_id; 231 return quad->surface_id;
200 } 232 }
201 233
202 static bool Read(cc::mojom::SurfaceQuadStateDataView data, cc::DrawQuad* out); 234 static bool Read(cc::mojom::SurfaceQuadStateDataView data, cc::DrawQuad* out);
203 }; 235 };
204 236
205 template <> 237 template <>
206 struct StructTraits<cc::mojom::TextureQuadState, cc::DrawQuad> { 238 struct StructTraits<cc::mojom::TextureQuadState, cc::DrawQuad> {
207 static bool IsNull(const cc::DrawQuad& input) {
208 return input.material != cc::DrawQuad::TEXTURE_CONTENT;
209 }
210
211 static void SetToNull(cc::DrawQuad* output) {
212 // There is nothing to deserialize here if the DrawQuad is not a
213 // TextureContentDrawQuad. If it is, then this should not be called.
214 DCHECK_NE(cc::DrawQuad::TEXTURE_CONTENT, output->material);
215 }
216
217 static uint32_t resource_id(const cc::DrawQuad& input) { 239 static uint32_t resource_id(const cc::DrawQuad& input) {
218 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); 240 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input);
219 return quad->resource_id(); 241 return quad->resource_id();
220 } 242 }
221 243
222 static bool premultiplied_alpha(const cc::DrawQuad& input) { 244 static bool premultiplied_alpha(const cc::DrawQuad& input) {
223 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); 245 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input);
224 return quad->premultiplied_alpha; 246 return quad->premultiplied_alpha;
225 } 247 }
226 248
(...skipping 30 matching lines...) Expand all
257 static bool secure_output_only(const cc::DrawQuad& input) { 279 static bool secure_output_only(const cc::DrawQuad& input) {
258 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); 280 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input);
259 return quad->secure_output_only; 281 return quad->secure_output_only;
260 } 282 }
261 283
262 static bool Read(cc::mojom::TextureQuadStateDataView data, cc::DrawQuad* out); 284 static bool Read(cc::mojom::TextureQuadStateDataView data, cc::DrawQuad* out);
263 }; 285 };
264 286
265 template <> 287 template <>
266 struct StructTraits<cc::mojom::TileQuadState, cc::DrawQuad> { 288 struct StructTraits<cc::mojom::TileQuadState, cc::DrawQuad> {
267 static bool IsNull(const cc::DrawQuad& input) {
268 return input.material != cc::DrawQuad::TILED_CONTENT;
269 }
270
271 static void SetToNull(cc::DrawQuad* output) {
272 // There is nothing to deserialize here if the DrawQuad is not a
273 // TileDrawQuad. If it is, then this should not be called.
274 DCHECK_NE(cc::DrawQuad::TILED_CONTENT, output->material);
275 }
276
277 static const gfx::RectF& tex_coord_rect(const cc::DrawQuad& input) { 289 static const gfx::RectF& tex_coord_rect(const cc::DrawQuad& input) {
278 const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input); 290 const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input);
279 return quad->tex_coord_rect; 291 return quad->tex_coord_rect;
280 } 292 }
281 293
282 static const gfx::Size& texture_size(const cc::DrawQuad& input) { 294 static const gfx::Size& texture_size(const cc::DrawQuad& input) {
283 const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input); 295 const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input);
284 return quad->texture_size; 296 return quad->texture_size;
285 } 297 }
286 298
(...skipping 18 matching lines...) Expand all
305 template <> 317 template <>
306 struct EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace> { 318 struct EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace> {
307 static cc::mojom::YUVColorSpace ToMojom( 319 static cc::mojom::YUVColorSpace ToMojom(
308 cc::YUVVideoDrawQuad::ColorSpace color_space); 320 cc::YUVVideoDrawQuad::ColorSpace color_space);
309 static bool FromMojom(cc::mojom::YUVColorSpace input, 321 static bool FromMojom(cc::mojom::YUVColorSpace input,
310 cc::YUVVideoDrawQuad::ColorSpace* out); 322 cc::YUVVideoDrawQuad::ColorSpace* out);
311 }; 323 };
312 324
313 template <> 325 template <>
314 struct StructTraits<cc::mojom::YUVVideoQuadState, cc::DrawQuad> { 326 struct StructTraits<cc::mojom::YUVVideoQuadState, cc::DrawQuad> {
315 static bool IsNull(const cc::DrawQuad& input) {
316 return input.material != cc::DrawQuad::YUV_VIDEO_CONTENT;
317 }
318
319 static void SetToNull(cc::DrawQuad* output) {
320 // There is nothing to deserialize here if the DrawQuad is not a
321 // YUVVideoDrawQuad. If it is, then this should not be called.
322 DCHECK_NE(cc::DrawQuad::YUV_VIDEO_CONTENT, output->material);
323 }
324
325 static const gfx::RectF& ya_tex_coord_rect(const cc::DrawQuad& input) { 327 static const gfx::RectF& ya_tex_coord_rect(const cc::DrawQuad& input) {
326 const cc::YUVVideoDrawQuad* quad = 328 const cc::YUVVideoDrawQuad* quad =
327 cc::YUVVideoDrawQuad::MaterialCast(&input); 329 cc::YUVVideoDrawQuad::MaterialCast(&input);
328 return quad->ya_tex_coord_rect; 330 return quad->ya_tex_coord_rect;
329 } 331 }
330 332
331 static const gfx::RectF& uv_tex_coord_rect(const cc::DrawQuad& input) { 333 static const gfx::RectF& uv_tex_coord_rect(const cc::DrawQuad& input) {
332 const cc::YUVVideoDrawQuad* quad = 334 const cc::YUVVideoDrawQuad* quad =
333 cc::YUVVideoDrawQuad::MaterialCast(&input); 335 cc::YUVVideoDrawQuad::MaterialCast(&input);
334 return quad->uv_tex_coord_rect; 336 return quad->uv_tex_coord_rect;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 cc::DrawQuad* out); 401 cc::DrawQuad* out);
400 }; 402 };
401 403
402 struct DrawQuadWithSharedQuadState { 404 struct DrawQuadWithSharedQuadState {
403 const cc::DrawQuad* quad; 405 const cc::DrawQuad* quad;
404 const cc::SharedQuadState* shared_quad_state; 406 const cc::SharedQuadState* shared_quad_state;
405 }; 407 };
406 408
407 template <> 409 template <>
408 struct StructTraits<cc::mojom::DrawQuad, DrawQuadWithSharedQuadState> { 410 struct StructTraits<cc::mojom::DrawQuad, DrawQuadWithSharedQuadState> {
409 static cc::DrawQuad::Material material(
410 const DrawQuadWithSharedQuadState& input) {
411 return input.quad->material;
412 }
413
414 static const gfx::Rect& rect(const DrawQuadWithSharedQuadState& input) { 411 static const gfx::Rect& rect(const DrawQuadWithSharedQuadState& input) {
415 return input.quad->rect; 412 return input.quad->rect;
416 } 413 }
417 414
418 static const gfx::Rect& opaque_rect( 415 static const gfx::Rect& opaque_rect(
419 const DrawQuadWithSharedQuadState& input) { 416 const DrawQuadWithSharedQuadState& input) {
420 return input.quad->opaque_rect; 417 return input.quad->opaque_rect;
421 } 418 }
422 419
423 static const gfx::Rect& visible_rect( 420 static const gfx::Rect& visible_rect(
424 const DrawQuadWithSharedQuadState& input) { 421 const DrawQuadWithSharedQuadState& input) {
425 return input.quad->visible_rect; 422 return input.quad->visible_rect;
426 } 423 }
427 424
428 static bool needs_blending(const DrawQuadWithSharedQuadState& input) { 425 static bool needs_blending(const DrawQuadWithSharedQuadState& input) {
429 return input.quad->needs_blending; 426 return input.quad->needs_blending;
430 } 427 }
431 428
432 static const cc::DrawQuad& debug_border_quad_state(
433 const DrawQuadWithSharedQuadState& input) {
434 return *input.quad;
435 }
436
437 static const cc::DrawQuad& render_pass_quad_state(
438 const DrawQuadWithSharedQuadState& input) {
439 return *input.quad;
440 }
441
442 static const cc::DrawQuad& solid_color_quad_state(
443 const DrawQuadWithSharedQuadState& input) {
444 return *input.quad;
445 }
446
447 static const cc::DrawQuad& surface_quad_state(
448 const DrawQuadWithSharedQuadState& input) {
449 return *input.quad;
450 }
451
452 static const cc::DrawQuad& texture_quad_state(
453 const DrawQuadWithSharedQuadState& input) {
454 return *input.quad;
455 }
456
457 static const cc::DrawQuad& tile_quad_state(
458 const DrawQuadWithSharedQuadState& input) {
459 return *input.quad;
460 }
461
462 static const cc::DrawQuad& stream_video_quad_state(
463 const DrawQuadWithSharedQuadState& input) {
464 return *input.quad;
465 }
466
467 static const cc::DrawQuad& yuv_video_quad_state(
468 const DrawQuadWithSharedQuadState& input) {
469 return *input.quad;
470 }
471
472 static OptSharedQuadState sqs(const DrawQuadWithSharedQuadState& input) { 429 static OptSharedQuadState sqs(const DrawQuadWithSharedQuadState& input) {
473 return {input.shared_quad_state}; 430 return {input.shared_quad_state};
474 } 431 }
432
433 static const cc::DrawQuad& draw_quad_state(
434 const DrawQuadWithSharedQuadState& input) {
435 return *input.quad;
436 }
475 }; 437 };
476 438
477 // This StructTraits is only used for deserialization within RenderPasses. 439 // This StructTraits is only used for deserialization within RenderPasses.
478 template <> 440 template <>
479 struct StructTraits<cc::mojom::DrawQuad, cc::DrawQuad> { 441 struct StructTraits<cc::mojom::DrawQuad, cc::DrawQuad> {
480 static bool Read(cc::mojom::DrawQuadDataView data, cc::DrawQuad* out); 442 static bool Read(cc::mojom::DrawQuadDataView data, cc::DrawQuad* out);
481 }; 443 };
482 444
483 template <> 445 template <>
484 struct ArrayTraits<cc::QuadList> { 446 struct ArrayTraits<cc::QuadList> {
(...skipping 24 matching lines...) Expand all
509 dq.shared_quad_state = current_sqs; 471 dq.shared_quad_state = current_sqs;
510 return dq; 472 return dq;
511 } 473 }
512 474
513 static size_t GetSize(const cc::QuadList& input) { return input.size(); } 475 static size_t GetSize(const cc::QuadList& input) { return input.size(); }
514 }; 476 };
515 477
516 } // namespace mojo 478 } // namespace mojo
517 479
518 #endif // CC_IPC_QUADS_STRUCT_TRAITS_H_ 480 #endif // CC_IPC_QUADS_STRUCT_TRAITS_H_
OLDNEW
« no previous file with comments | « cc/ipc/quads.mojom ('k') | cc/ipc/quads_struct_traits.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698