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 #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" |
(...skipping 11 matching lines...) Expand all Loading... |
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( | 27 cc::DrawQuad* AllocateAndConstruct( |
28 cc::mojom::DrawQuadState::DataView::Tag material, | 28 cc::mojom::DrawQuadState::DataView::Tag material, |
29 cc::QuadList* list); | 29 cc::QuadList* list); |
30 | 30 |
31 template <> | 31 template <> |
32 struct UnionTraits<cc::mojom::DrawQuadState, cc::DrawQuad> { | 32 struct UnionTraits<cc::mojom::DrawQuadStateDataView, cc::DrawQuad> { |
33 static cc::mojom::DrawQuadState::DataView::Tag GetTag( | 33 static cc::mojom::DrawQuadState::DataView::Tag GetTag( |
34 const cc::DrawQuad& quad) { | 34 const cc::DrawQuad& quad) { |
35 switch (quad.material) { | 35 switch (quad.material) { |
36 case cc::DrawQuad::INVALID: | 36 case cc::DrawQuad::INVALID: |
37 break; | 37 break; |
38 case cc::DrawQuad::DEBUG_BORDER: | 38 case cc::DrawQuad::DEBUG_BORDER: |
39 return cc::mojom::DrawQuadState::DataView::Tag::DEBUG_BORDER_QUAD_STATE; | 39 return cc::mojom::DrawQuadState::DataView::Tag::DEBUG_BORDER_QUAD_STATE; |
40 case cc::DrawQuad::PICTURE_CONTENT: | 40 case cc::DrawQuad::PICTURE_CONTENT: |
41 break; | 41 break; |
42 case cc::DrawQuad::RENDER_PASS: | 42 case cc::DrawQuad::RENDER_PASS: |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 return data.ReadStreamVideoQuadState(out); | 108 return data.ReadStreamVideoQuadState(out); |
109 case cc::mojom::DrawQuadState::DataView::Tag::YUV_VIDEO_QUAD_STATE: | 109 case cc::mojom::DrawQuadState::DataView::Tag::YUV_VIDEO_QUAD_STATE: |
110 return data.ReadYuvVideoQuadState(out); | 110 return data.ReadYuvVideoQuadState(out); |
111 } | 111 } |
112 NOTREACHED(); | 112 NOTREACHED(); |
113 return false; | 113 return false; |
114 } | 114 } |
115 }; | 115 }; |
116 | 116 |
117 template <> | 117 template <> |
118 struct StructTraits<cc::mojom::DebugBorderQuadState, cc::DrawQuad> { | 118 struct StructTraits<cc::mojom::DebugBorderQuadStateDataView, cc::DrawQuad> { |
119 static uint32_t color(const cc::DrawQuad& input) { | 119 static uint32_t color(const cc::DrawQuad& input) { |
120 const cc::DebugBorderDrawQuad* quad = | 120 const cc::DebugBorderDrawQuad* quad = |
121 cc::DebugBorderDrawQuad::MaterialCast(&input); | 121 cc::DebugBorderDrawQuad::MaterialCast(&input); |
122 return quad->color; | 122 return quad->color; |
123 } | 123 } |
124 | 124 |
125 static int32_t width(const cc::DrawQuad& input) { | 125 static int32_t width(const cc::DrawQuad& input) { |
126 const cc::DebugBorderDrawQuad* quad = | 126 const cc::DebugBorderDrawQuad* quad = |
127 cc::DebugBorderDrawQuad::MaterialCast(&input); | 127 cc::DebugBorderDrawQuad::MaterialCast(&input); |
128 return quad->width; | 128 return quad->width; |
129 } | 129 } |
130 | 130 |
131 static bool Read(cc::mojom::DebugBorderQuadStateDataView data, | 131 static bool Read(cc::mojom::DebugBorderQuadStateDataView data, |
132 cc::DrawQuad* out); | 132 cc::DrawQuad* out); |
133 }; | 133 }; |
134 | 134 |
135 template <> | 135 template <> |
136 struct StructTraits<cc::mojom::RenderPassQuadState, cc::DrawQuad> { | 136 struct StructTraits<cc::mojom::RenderPassQuadStateDataView, cc::DrawQuad> { |
137 static const cc::RenderPassId& render_pass_id(const cc::DrawQuad& input) { | 137 static const cc::RenderPassId& render_pass_id(const cc::DrawQuad& input) { |
138 const cc::RenderPassDrawQuad* quad = | 138 const cc::RenderPassDrawQuad* quad = |
139 cc::RenderPassDrawQuad::MaterialCast(&input); | 139 cc::RenderPassDrawQuad::MaterialCast(&input); |
140 return quad->render_pass_id; | 140 return quad->render_pass_id; |
141 } | 141 } |
142 | 142 |
143 static uint32_t mask_resource_id(const cc::DrawQuad& input) { | 143 static uint32_t mask_resource_id(const cc::DrawQuad& input) { |
144 const cc::RenderPassDrawQuad* quad = | 144 const cc::RenderPassDrawQuad* quad = |
145 cc::RenderPassDrawQuad::MaterialCast(&input); | 145 cc::RenderPassDrawQuad::MaterialCast(&input); |
146 return quad->mask_resource_id(); | 146 return quad->mask_resource_id(); |
(...skipping 28 matching lines...) Expand all Loading... |
175 const cc::RenderPassDrawQuad* quad = | 175 const cc::RenderPassDrawQuad* quad = |
176 cc::RenderPassDrawQuad::MaterialCast(&input); | 176 cc::RenderPassDrawQuad::MaterialCast(&input); |
177 return quad->background_filters; | 177 return quad->background_filters; |
178 } | 178 } |
179 | 179 |
180 static bool Read(cc::mojom::RenderPassQuadStateDataView data, | 180 static bool Read(cc::mojom::RenderPassQuadStateDataView data, |
181 cc::DrawQuad* out); | 181 cc::DrawQuad* out); |
182 }; | 182 }; |
183 | 183 |
184 template <> | 184 template <> |
185 struct StructTraits<cc::mojom::SolidColorQuadState, cc::DrawQuad> { | 185 struct StructTraits<cc::mojom::SolidColorQuadStateDataView, cc::DrawQuad> { |
186 static uint32_t color(const cc::DrawQuad& input) { | 186 static uint32_t color(const cc::DrawQuad& input) { |
187 const cc::SolidColorDrawQuad* quad = | 187 const cc::SolidColorDrawQuad* quad = |
188 cc::SolidColorDrawQuad::MaterialCast(&input); | 188 cc::SolidColorDrawQuad::MaterialCast(&input); |
189 return quad->color; | 189 return quad->color; |
190 } | 190 } |
191 | 191 |
192 static bool force_anti_aliasing_off(const cc::DrawQuad& input) { | 192 static bool force_anti_aliasing_off(const cc::DrawQuad& input) { |
193 const cc::SolidColorDrawQuad* quad = | 193 const cc::SolidColorDrawQuad* quad = |
194 cc::SolidColorDrawQuad::MaterialCast(&input); | 194 cc::SolidColorDrawQuad::MaterialCast(&input); |
195 return quad->force_anti_aliasing_off; | 195 return quad->force_anti_aliasing_off; |
196 } | 196 } |
197 | 197 |
198 static bool Read(cc::mojom::SolidColorQuadStateDataView data, | 198 static bool Read(cc::mojom::SolidColorQuadStateDataView data, |
199 cc::DrawQuad* out); | 199 cc::DrawQuad* out); |
200 }; | 200 }; |
201 | 201 |
202 template <> | 202 template <> |
203 struct StructTraits<cc::mojom::StreamVideoQuadState, cc::DrawQuad> { | 203 struct StructTraits<cc::mojom::StreamVideoQuadStateDataView, cc::DrawQuad> { |
204 static uint32_t resource_id(const cc::DrawQuad& input) { | 204 static uint32_t resource_id(const cc::DrawQuad& input) { |
205 const cc::StreamVideoDrawQuad* quad = | 205 const cc::StreamVideoDrawQuad* quad = |
206 cc::StreamVideoDrawQuad::MaterialCast(&input); | 206 cc::StreamVideoDrawQuad::MaterialCast(&input); |
207 return quad->resources.ids[cc::StreamVideoDrawQuad::kResourceIdIndex]; | 207 return quad->resources.ids[cc::StreamVideoDrawQuad::kResourceIdIndex]; |
208 } | 208 } |
209 | 209 |
210 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) { |
211 const cc::StreamVideoDrawQuad* quad = | 211 const cc::StreamVideoDrawQuad* quad = |
212 cc::StreamVideoDrawQuad::MaterialCast(&input); | 212 cc::StreamVideoDrawQuad::MaterialCast(&input); |
213 return quad->overlay_resources | 213 return quad->overlay_resources |
214 .size_in_pixels[cc::StreamVideoDrawQuad::kResourceIdIndex]; | 214 .size_in_pixels[cc::StreamVideoDrawQuad::kResourceIdIndex]; |
215 } | 215 } |
216 | 216 |
217 static const gfx::Transform& matrix(const cc::DrawQuad& input) { | 217 static const gfx::Transform& matrix(const cc::DrawQuad& input) { |
218 const cc::StreamVideoDrawQuad* quad = | 218 const cc::StreamVideoDrawQuad* quad = |
219 cc::StreamVideoDrawQuad::MaterialCast(&input); | 219 cc::StreamVideoDrawQuad::MaterialCast(&input); |
220 return quad->matrix; | 220 return quad->matrix; |
221 } | 221 } |
222 | 222 |
223 static bool Read(cc::mojom::StreamVideoQuadStateDataView data, | 223 static bool Read(cc::mojom::StreamVideoQuadStateDataView data, |
224 cc::DrawQuad* out); | 224 cc::DrawQuad* out); |
225 }; | 225 }; |
226 | 226 |
227 template <> | 227 template <> |
228 struct StructTraits<cc::mojom::SurfaceQuadState, cc::DrawQuad> { | 228 struct StructTraits<cc::mojom::SurfaceQuadStateDataView, cc::DrawQuad> { |
229 static const cc::SurfaceId& surface(const cc::DrawQuad& input) { | 229 static const cc::SurfaceId& surface(const cc::DrawQuad& input) { |
230 const cc::SurfaceDrawQuad* quad = cc::SurfaceDrawQuad::MaterialCast(&input); | 230 const cc::SurfaceDrawQuad* quad = cc::SurfaceDrawQuad::MaterialCast(&input); |
231 return quad->surface_id; | 231 return quad->surface_id; |
232 } | 232 } |
233 | 233 |
234 static bool Read(cc::mojom::SurfaceQuadStateDataView data, cc::DrawQuad* out); | 234 static bool Read(cc::mojom::SurfaceQuadStateDataView data, cc::DrawQuad* out); |
235 }; | 235 }; |
236 | 236 |
237 template <> | 237 template <> |
238 struct StructTraits<cc::mojom::TextureQuadState, cc::DrawQuad> { | 238 struct StructTraits<cc::mojom::TextureQuadStateDataView, cc::DrawQuad> { |
239 static uint32_t resource_id(const cc::DrawQuad& input) { | 239 static uint32_t resource_id(const cc::DrawQuad& input) { |
240 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); | 240 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); |
241 return quad->resource_id(); | 241 return quad->resource_id(); |
242 } | 242 } |
243 | 243 |
244 static bool premultiplied_alpha(const cc::DrawQuad& input) { | 244 static bool premultiplied_alpha(const cc::DrawQuad& input) { |
245 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); | 245 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); |
246 return quad->premultiplied_alpha; | 246 return quad->premultiplied_alpha; |
247 } | 247 } |
248 | 248 |
(...skipping 29 matching lines...) Expand all Loading... |
278 | 278 |
279 static bool secure_output_only(const cc::DrawQuad& input) { | 279 static bool secure_output_only(const cc::DrawQuad& input) { |
280 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); | 280 const cc::TextureDrawQuad* quad = cc::TextureDrawQuad::MaterialCast(&input); |
281 return quad->secure_output_only; | 281 return quad->secure_output_only; |
282 } | 282 } |
283 | 283 |
284 static bool Read(cc::mojom::TextureQuadStateDataView data, cc::DrawQuad* out); | 284 static bool Read(cc::mojom::TextureQuadStateDataView data, cc::DrawQuad* out); |
285 }; | 285 }; |
286 | 286 |
287 template <> | 287 template <> |
288 struct StructTraits<cc::mojom::TileQuadState, cc::DrawQuad> { | 288 struct StructTraits<cc::mojom::TileQuadStateDataView, cc::DrawQuad> { |
289 static const gfx::RectF& tex_coord_rect(const cc::DrawQuad& input) { | 289 static const gfx::RectF& tex_coord_rect(const cc::DrawQuad& input) { |
290 const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input); | 290 const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input); |
291 return quad->tex_coord_rect; | 291 return quad->tex_coord_rect; |
292 } | 292 } |
293 | 293 |
294 static const gfx::Size& texture_size(const cc::DrawQuad& input) { | 294 static const gfx::Size& texture_size(const cc::DrawQuad& input) { |
295 const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input); | 295 const cc::TileDrawQuad* quad = cc::TileDrawQuad::MaterialCast(&input); |
296 return quad->texture_size; | 296 return quad->texture_size; |
297 } | 297 } |
298 | 298 |
(...skipping 17 matching lines...) Expand all Loading... |
316 | 316 |
317 template <> | 317 template <> |
318 struct EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace> { | 318 struct EnumTraits<cc::mojom::YUVColorSpace, cc::YUVVideoDrawQuad::ColorSpace> { |
319 static cc::mojom::YUVColorSpace ToMojom( | 319 static cc::mojom::YUVColorSpace ToMojom( |
320 cc::YUVVideoDrawQuad::ColorSpace color_space); | 320 cc::YUVVideoDrawQuad::ColorSpace color_space); |
321 static bool FromMojom(cc::mojom::YUVColorSpace input, | 321 static bool FromMojom(cc::mojom::YUVColorSpace input, |
322 cc::YUVVideoDrawQuad::ColorSpace* out); | 322 cc::YUVVideoDrawQuad::ColorSpace* out); |
323 }; | 323 }; |
324 | 324 |
325 template <> | 325 template <> |
326 struct StructTraits<cc::mojom::YUVVideoQuadState, cc::DrawQuad> { | 326 struct StructTraits<cc::mojom::YUVVideoQuadStateDataView, cc::DrawQuad> { |
327 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) { |
328 const cc::YUVVideoDrawQuad* quad = | 328 const cc::YUVVideoDrawQuad* quad = |
329 cc::YUVVideoDrawQuad::MaterialCast(&input); | 329 cc::YUVVideoDrawQuad::MaterialCast(&input); |
330 return quad->ya_tex_coord_rect; | 330 return quad->ya_tex_coord_rect; |
331 } | 331 } |
332 | 332 |
333 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) { |
334 const cc::YUVVideoDrawQuad* quad = | 334 const cc::YUVVideoDrawQuad* quad = |
335 cc::YUVVideoDrawQuad::MaterialCast(&input); | 335 cc::YUVVideoDrawQuad::MaterialCast(&input); |
336 return quad->uv_tex_coord_rect; | 336 return quad->uv_tex_coord_rect; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
400 static bool Read(cc::mojom::YUVVideoQuadStateDataView data, | 400 static bool Read(cc::mojom::YUVVideoQuadStateDataView data, |
401 cc::DrawQuad* out); | 401 cc::DrawQuad* out); |
402 }; | 402 }; |
403 | 403 |
404 struct DrawQuadWithSharedQuadState { | 404 struct DrawQuadWithSharedQuadState { |
405 const cc::DrawQuad* quad; | 405 const cc::DrawQuad* quad; |
406 const cc::SharedQuadState* shared_quad_state; | 406 const cc::SharedQuadState* shared_quad_state; |
407 }; | 407 }; |
408 | 408 |
409 template <> | 409 template <> |
410 struct StructTraits<cc::mojom::DrawQuad, DrawQuadWithSharedQuadState> { | 410 struct StructTraits<cc::mojom::DrawQuadDataView, DrawQuadWithSharedQuadState> { |
411 static const gfx::Rect& rect(const DrawQuadWithSharedQuadState& input) { | 411 static const gfx::Rect& rect(const DrawQuadWithSharedQuadState& input) { |
412 return input.quad->rect; | 412 return input.quad->rect; |
413 } | 413 } |
414 | 414 |
415 static const gfx::Rect& opaque_rect( | 415 static const gfx::Rect& opaque_rect( |
416 const DrawQuadWithSharedQuadState& input) { | 416 const DrawQuadWithSharedQuadState& input) { |
417 return input.quad->opaque_rect; | 417 return input.quad->opaque_rect; |
418 } | 418 } |
419 | 419 |
420 static const gfx::Rect& visible_rect( | 420 static const gfx::Rect& visible_rect( |
(...skipping 10 matching lines...) Expand all Loading... |
431 } | 431 } |
432 | 432 |
433 static const cc::DrawQuad& draw_quad_state( | 433 static const cc::DrawQuad& draw_quad_state( |
434 const DrawQuadWithSharedQuadState& input) { | 434 const DrawQuadWithSharedQuadState& input) { |
435 return *input.quad; | 435 return *input.quad; |
436 } | 436 } |
437 }; | 437 }; |
438 | 438 |
439 // This StructTraits is only used for deserialization within RenderPasses. | 439 // This StructTraits is only used for deserialization within RenderPasses. |
440 template <> | 440 template <> |
441 struct StructTraits<cc::mojom::DrawQuad, cc::DrawQuad> { | 441 struct StructTraits<cc::mojom::DrawQuadDataView, cc::DrawQuad> { |
442 static bool Read(cc::mojom::DrawQuadDataView data, cc::DrawQuad* out); | 442 static bool Read(cc::mojom::DrawQuadDataView data, cc::DrawQuad* out); |
443 }; | 443 }; |
444 | 444 |
445 template <> | 445 template <> |
446 struct ArrayTraits<cc::QuadList> { | 446 struct ArrayTraits<cc::QuadList> { |
447 using Element = DrawQuadWithSharedQuadState; | 447 using Element = DrawQuadWithSharedQuadState; |
448 struct ConstIterator { | 448 struct ConstIterator { |
449 explicit ConstIterator(const cc::QuadList::ConstIterator& it) | 449 explicit ConstIterator(const cc::QuadList::ConstIterator& it) |
450 : it(it), last_shared_quad_state(nullptr) {} | 450 : it(it), last_shared_quad_state(nullptr) {} |
451 | 451 |
(...skipping 19 matching lines...) Expand all Loading... |
471 dq.shared_quad_state = current_sqs; | 471 dq.shared_quad_state = current_sqs; |
472 return dq; | 472 return dq; |
473 } | 473 } |
474 | 474 |
475 static size_t GetSize(const cc::QuadList& input) { return input.size(); } | 475 static size_t GetSize(const cc::QuadList& input) { return input.size(); } |
476 }; | 476 }; |
477 | 477 |
478 } // namespace mojo | 478 } // namespace mojo |
479 | 479 |
480 #endif // CC_IPC_QUADS_STRUCT_TRAITS_H_ | 480 #endif // CC_IPC_QUADS_STRUCT_TRAITS_H_ |
OLD | NEW |