OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/common/cc_messages.h" | 5 #include "content/common/cc_messages.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "cc/output/compositor_frame.h" | 10 #include "cc/output/compositor_frame.h" |
11 #include "cc/output/filter_operations.h" | 11 #include "cc/output/filter_operations.h" |
12 #include "cc/quads/draw_quad.h" | 12 #include "cc/quads/draw_quad.h" |
13 #include "cc/quads/largest_draw_quad.h" | 13 #include "cc/quads/largest_draw_quad.h" |
14 #include "cc/quads/render_pass_id.h" | 14 #include "cc/quads/render_pass_id.h" |
15 #include "content/public/common/common_param_traits.h" | 15 #include "content/public/common/common_param_traits.h" |
16 #include "third_party/skia/include/core/SkData.h" | 16 #include "third_party/skia/include/core/SkData.h" |
17 #include "third_party/skia/include/core/SkFlattenableSerialization.h" | 17 #include "third_party/skia/include/core/SkFlattenableSerialization.h" |
18 #include "ui/gfx/transform.h" | 18 #include "ui/gfx/transform.h" |
19 | 19 |
20 namespace IPC { | 20 namespace IPC { |
21 | 21 |
22 void ParamTraits<cc::FilterOperation>::Write( | 22 void ParamTraits<cc::FilterOperation>::Write(base::Pickle* m, |
23 Message* m, const param_type& p) { | 23 const param_type& p) { |
24 WriteParam(m, p.type()); | 24 WriteParam(m, p.type()); |
25 switch (p.type()) { | 25 switch (p.type()) { |
26 case cc::FilterOperation::GRAYSCALE: | 26 case cc::FilterOperation::GRAYSCALE: |
27 case cc::FilterOperation::SEPIA: | 27 case cc::FilterOperation::SEPIA: |
28 case cc::FilterOperation::SATURATE: | 28 case cc::FilterOperation::SATURATE: |
29 case cc::FilterOperation::HUE_ROTATE: | 29 case cc::FilterOperation::HUE_ROTATE: |
30 case cc::FilterOperation::INVERT: | 30 case cc::FilterOperation::INVERT: |
31 case cc::FilterOperation::BRIGHTNESS: | 31 case cc::FilterOperation::BRIGHTNESS: |
32 case cc::FilterOperation::SATURATING_BRIGHTNESS: | 32 case cc::FilterOperation::SATURATING_BRIGHTNESS: |
33 case cc::FilterOperation::CONTRAST: | 33 case cc::FilterOperation::CONTRAST: |
(...skipping 16 matching lines...) Expand all Loading... |
50 break; | 50 break; |
51 case cc::FilterOperation::REFERENCE: | 51 case cc::FilterOperation::REFERENCE: |
52 WriteParam(m, p.image_filter()); | 52 WriteParam(m, p.image_filter()); |
53 break; | 53 break; |
54 case cc::FilterOperation::ALPHA_THRESHOLD: | 54 case cc::FilterOperation::ALPHA_THRESHOLD: |
55 NOTREACHED(); | 55 NOTREACHED(); |
56 break; | 56 break; |
57 } | 57 } |
58 } | 58 } |
59 | 59 |
60 bool ParamTraits<cc::FilterOperation>::Read(const Message* m, | 60 bool ParamTraits<cc::FilterOperation>::Read(const base::Pickle* m, |
61 base::PickleIterator* iter, | 61 base::PickleIterator* iter, |
62 param_type* r) { | 62 param_type* r) { |
63 cc::FilterOperation::FilterType type; | 63 cc::FilterOperation::FilterType type; |
64 float amount; | 64 float amount; |
65 gfx::Point drop_shadow_offset; | 65 gfx::Point drop_shadow_offset; |
66 SkColor drop_shadow_color; | 66 SkColor drop_shadow_color; |
67 SkScalar matrix[20]; | 67 SkScalar matrix[20]; |
68 int zoom_inset; | 68 int zoom_inset; |
69 | 69 |
70 if (!ReadParam(m, iter, &type)) | 70 if (!ReadParam(m, iter, &type)) |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 case cc::FilterOperation::REFERENCE: | 177 case cc::FilterOperation::REFERENCE: |
178 LogParam(p.image_filter(), l); | 178 LogParam(p.image_filter(), l); |
179 break; | 179 break; |
180 case cc::FilterOperation::ALPHA_THRESHOLD: | 180 case cc::FilterOperation::ALPHA_THRESHOLD: |
181 NOTREACHED(); | 181 NOTREACHED(); |
182 break; | 182 break; |
183 } | 183 } |
184 l->append(")"); | 184 l->append(")"); |
185 } | 185 } |
186 | 186 |
187 void ParamTraits<cc::FilterOperations>::Write( | 187 void ParamTraits<cc::FilterOperations>::Write(base::Pickle* m, |
188 Message* m, const param_type& p) { | 188 const param_type& p) { |
189 WriteParam(m, p.size()); | 189 WriteParam(m, p.size()); |
190 for (std::size_t i = 0; i < p.size(); ++i) { | 190 for (std::size_t i = 0; i < p.size(); ++i) { |
191 WriteParam(m, p.at(i)); | 191 WriteParam(m, p.at(i)); |
192 } | 192 } |
193 } | 193 } |
194 | 194 |
195 bool ParamTraits<cc::FilterOperations>::Read(const Message* m, | 195 bool ParamTraits<cc::FilterOperations>::Read(const base::Pickle* m, |
196 base::PickleIterator* iter, | 196 base::PickleIterator* iter, |
197 param_type* r) { | 197 param_type* r) { |
198 size_t count; | 198 size_t count; |
199 if (!ReadParam(m, iter, &count)) | 199 if (!ReadParam(m, iter, &count)) |
200 return false; | 200 return false; |
201 | 201 |
202 for (std::size_t i = 0; i < count; ++i) { | 202 for (std::size_t i = 0; i < count; ++i) { |
203 cc::FilterOperation op = cc::FilterOperation::CreateEmptyFilter(); | 203 cc::FilterOperation op = cc::FilterOperation::CreateEmptyFilter(); |
204 if (!ReadParam(m, iter, &op)) | 204 if (!ReadParam(m, iter, &op)) |
205 return false; | 205 return false; |
206 r->Append(op); | 206 r->Append(op); |
207 } | 207 } |
208 return true; | 208 return true; |
209 } | 209 } |
210 | 210 |
211 void ParamTraits<cc::FilterOperations>::Log( | 211 void ParamTraits<cc::FilterOperations>::Log( |
212 const param_type& p, std::string* l) { | 212 const param_type& p, std::string* l) { |
213 l->append("("); | 213 l->append("("); |
214 for (std::size_t i = 0; i < p.size(); ++i) { | 214 for (std::size_t i = 0; i < p.size(); ++i) { |
215 if (i) | 215 if (i) |
216 l->append(", "); | 216 l->append(", "); |
217 LogParam(p.at(i), l); | 217 LogParam(p.at(i), l); |
218 } | 218 } |
219 l->append(")"); | 219 l->append(")"); |
220 } | 220 } |
221 | 221 |
222 void ParamTraits<skia::RefPtr<SkImageFilter> >::Write( | 222 void ParamTraits<skia::RefPtr<SkImageFilter>>::Write(base::Pickle* m, |
223 Message* m, const param_type& p) { | 223 const param_type& p) { |
224 SkImageFilter* filter = p.get(); | 224 SkImageFilter* filter = p.get(); |
225 if (filter) { | 225 if (filter) { |
226 skia::RefPtr<SkData> data = | 226 skia::RefPtr<SkData> data = |
227 skia::AdoptRef(SkValidatingSerializeFlattenable(filter)); | 227 skia::AdoptRef(SkValidatingSerializeFlattenable(filter)); |
228 m->WriteData(static_cast<const char*>(data->data()), data->size()); | 228 m->WriteData(static_cast<const char*>(data->data()), data->size()); |
229 } else { | 229 } else { |
230 m->WriteData(0, 0); | 230 m->WriteData(0, 0); |
231 } | 231 } |
232 } | 232 } |
233 | 233 |
234 bool ParamTraits<skia::RefPtr<SkImageFilter>>::Read(const Message* m, | 234 bool ParamTraits<skia::RefPtr<SkImageFilter>>::Read(const base::Pickle* m, |
235 base::PickleIterator* iter, | 235 base::PickleIterator* iter, |
236 param_type* r) { | 236 param_type* r) { |
237 const char* data = 0; | 237 const char* data = 0; |
238 int length = 0; | 238 int length = 0; |
239 if (!iter->ReadData(&data, &length)) | 239 if (!iter->ReadData(&data, &length)) |
240 return false; | 240 return false; |
241 if (length > 0) { | 241 if (length > 0) { |
242 SkFlattenable* flattenable = SkValidatingDeserializeFlattenable( | 242 SkFlattenable* flattenable = SkValidatingDeserializeFlattenable( |
243 data, length, SkImageFilter::GetFlattenableType()); | 243 data, length, SkImageFilter::GetFlattenableType()); |
244 *r = skia::AdoptRef(static_cast<SkImageFilter*>(flattenable)); | 244 *r = skia::AdoptRef(static_cast<SkImageFilter*>(flattenable)); |
245 } else { | 245 } else { |
246 r->clear(); | 246 r->clear(); |
247 } | 247 } |
248 return true; | 248 return true; |
249 } | 249 } |
250 | 250 |
251 void ParamTraits<skia::RefPtr<SkImageFilter> >::Log( | 251 void ParamTraits<skia::RefPtr<SkImageFilter> >::Log( |
252 const param_type& p, std::string* l) { | 252 const param_type& p, std::string* l) { |
253 l->append("("); | 253 l->append("("); |
254 LogParam(p.get() ? p->countInputs() : 0, l); | 254 LogParam(p.get() ? p->countInputs() : 0, l); |
255 l->append(")"); | 255 l->append(")"); |
256 } | 256 } |
257 | 257 |
258 void ParamTraits<gfx::Transform>::Write( | 258 void ParamTraits<gfx::Transform>::Write(base::Pickle* m, const param_type& p) { |
259 Message* m, const param_type& p) { | |
260 #ifdef SK_MSCALAR_IS_FLOAT | 259 #ifdef SK_MSCALAR_IS_FLOAT |
261 float column_major_data[16]; | 260 float column_major_data[16]; |
262 p.matrix().asColMajorf(column_major_data); | 261 p.matrix().asColMajorf(column_major_data); |
263 #else | 262 #else |
264 double column_major_data[16]; | 263 double column_major_data[16]; |
265 p.matrix().asColMajord(column_major_data); | 264 p.matrix().asColMajord(column_major_data); |
266 #endif | 265 #endif |
267 m->WriteBytes(&column_major_data, sizeof(SkMScalar) * 16); | 266 m->WriteBytes(&column_major_data, sizeof(SkMScalar) * 16); |
268 } | 267 } |
269 | 268 |
270 bool ParamTraits<gfx::Transform>::Read(const Message* m, | 269 bool ParamTraits<gfx::Transform>::Read(const base::Pickle* m, |
271 base::PickleIterator* iter, | 270 base::PickleIterator* iter, |
272 param_type* r) { | 271 param_type* r) { |
273 const char* column_major_data; | 272 const char* column_major_data; |
274 if (!iter->ReadBytes(&column_major_data, sizeof(SkMScalar) * 16)) | 273 if (!iter->ReadBytes(&column_major_data, sizeof(SkMScalar) * 16)) |
275 return false; | 274 return false; |
276 r->matrix().setColMajor( | 275 r->matrix().setColMajor( |
277 reinterpret_cast<const SkMScalar*>(column_major_data)); | 276 reinterpret_cast<const SkMScalar*>(column_major_data)); |
278 return true; | 277 return true; |
279 } | 278 } |
280 | 279 |
281 void ParamTraits<gfx::Transform>::Log( | 280 void ParamTraits<gfx::Transform>::Log( |
282 const param_type& p, std::string* l) { | 281 const param_type& p, std::string* l) { |
283 #ifdef SK_MSCALAR_IS_FLOAT | 282 #ifdef SK_MSCALAR_IS_FLOAT |
284 float row_major_data[16]; | 283 float row_major_data[16]; |
285 p.matrix().asRowMajorf(row_major_data); | 284 p.matrix().asRowMajorf(row_major_data); |
286 #else | 285 #else |
287 double row_major_data[16]; | 286 double row_major_data[16]; |
288 p.matrix().asRowMajord(row_major_data); | 287 p.matrix().asRowMajord(row_major_data); |
289 #endif | 288 #endif |
290 l->append("("); | 289 l->append("("); |
291 for (int i = 0; i < 16; ++i) { | 290 for (int i = 0; i < 16; ++i) { |
292 if (i > 0) | 291 if (i > 0) |
293 l->append(", "); | 292 l->append(", "); |
294 LogParam(row_major_data[i], l); | 293 LogParam(row_major_data[i], l); |
295 } | 294 } |
296 l->append(") "); | 295 l->append(") "); |
297 } | 296 } |
298 | 297 |
299 void ParamTraits<cc::RenderPass>::Write( | 298 void ParamTraits<cc::RenderPass>::Write(base::Pickle* m, const param_type& p) { |
300 Message* m, const param_type& p) { | |
301 WriteParam(m, p.id); | 299 WriteParam(m, p.id); |
302 WriteParam(m, p.output_rect); | 300 WriteParam(m, p.output_rect); |
303 WriteParam(m, p.damage_rect); | 301 WriteParam(m, p.damage_rect); |
304 WriteParam(m, p.transform_to_root_target); | 302 WriteParam(m, p.transform_to_root_target); |
305 WriteParam(m, p.has_transparent_background); | 303 WriteParam(m, p.has_transparent_background); |
306 WriteParam(m, p.quad_list.size()); | 304 WriteParam(m, p.quad_list.size()); |
307 | 305 |
308 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter = | 306 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter = |
309 p.shared_quad_state_list.begin(); | 307 p.shared_quad_state_list.begin(); |
310 cc::SharedQuadStateList::ConstIterator last_shared_quad_state_iter = | 308 cc::SharedQuadStateList::ConstIterator last_shared_quad_state_iter = |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
383 // Shared quad state is only written when a quad contains a shared quad state | 381 // Shared quad state is only written when a quad contains a shared quad state |
384 // that has not been written. | 382 // that has not been written. |
385 to_reserve += p.shared_quad_state_list.size() * sizeof(cc::SharedQuadState); | 383 to_reserve += p.shared_quad_state_list.size() * sizeof(cc::SharedQuadState); |
386 | 384 |
387 // The largest quad type, verified by a unit test. | 385 // The largest quad type, verified by a unit test. |
388 to_reserve += p.quad_list.size() * cc::LargestDrawQuadSize(); | 386 to_reserve += p.quad_list.size() * cc::LargestDrawQuadSize(); |
389 return to_reserve; | 387 return to_reserve; |
390 } | 388 } |
391 | 389 |
392 template <typename QuadType> | 390 template <typename QuadType> |
393 static cc::DrawQuad* ReadDrawQuad(const Message* m, | 391 static cc::DrawQuad* ReadDrawQuad(const base::Pickle* m, |
394 base::PickleIterator* iter, | 392 base::PickleIterator* iter, |
395 cc::RenderPass* render_pass) { | 393 cc::RenderPass* render_pass) { |
396 QuadType* quad = render_pass->CreateAndAppendDrawQuad<QuadType>(); | 394 QuadType* quad = render_pass->CreateAndAppendDrawQuad<QuadType>(); |
397 if (!ReadParam(m, iter, quad)) | 395 if (!ReadParam(m, iter, quad)) |
398 return NULL; | 396 return NULL; |
399 return quad; | 397 return quad; |
400 } | 398 } |
401 | 399 |
402 bool ParamTraits<cc::RenderPass>::Read(const Message* m, | 400 bool ParamTraits<cc::RenderPass>::Read(const base::Pickle* m, |
403 base::PickleIterator* iter, | 401 base::PickleIterator* iter, |
404 param_type* p) { | 402 param_type* p) { |
405 cc::RenderPassId id; | 403 cc::RenderPassId id; |
406 gfx::Rect output_rect; | 404 gfx::Rect output_rect; |
407 gfx::Rect damage_rect; | 405 gfx::Rect damage_rect; |
408 gfx::Transform transform_to_root_target; | 406 gfx::Transform transform_to_root_target; |
409 bool has_transparent_background; | 407 bool has_transparent_background; |
410 size_t quad_list_size; | 408 size_t quad_list_size; |
411 | 409 |
412 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) || | 410 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) || |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 } | 557 } |
560 | 558 |
561 namespace { | 559 namespace { |
562 enum CompositorFrameType { | 560 enum CompositorFrameType { |
563 NO_FRAME, | 561 NO_FRAME, |
564 DELEGATED_FRAME, | 562 DELEGATED_FRAME, |
565 GL_FRAME, | 563 GL_FRAME, |
566 }; | 564 }; |
567 } | 565 } |
568 | 566 |
569 void ParamTraits<cc::CompositorFrame>::Write(Message* m, | 567 void ParamTraits<cc::CompositorFrame>::Write(base::Pickle* m, |
570 const param_type& p) { | 568 const param_type& p) { |
571 WriteParam(m, p.metadata); | 569 WriteParam(m, p.metadata); |
572 if (p.delegated_frame_data) { | 570 if (p.delegated_frame_data) { |
573 DCHECK(!p.gl_frame_data); | 571 DCHECK(!p.gl_frame_data); |
574 WriteParam(m, static_cast<int>(DELEGATED_FRAME)); | 572 WriteParam(m, static_cast<int>(DELEGATED_FRAME)); |
575 WriteParam(m, *p.delegated_frame_data); | 573 WriteParam(m, *p.delegated_frame_data); |
576 } else if (p.gl_frame_data) { | 574 } else if (p.gl_frame_data) { |
577 WriteParam(m, static_cast<int>(GL_FRAME)); | 575 WriteParam(m, static_cast<int>(GL_FRAME)); |
578 WriteParam(m, *p.gl_frame_data); | 576 WriteParam(m, *p.gl_frame_data); |
579 } else { | 577 } else { |
580 WriteParam(m, static_cast<int>(NO_FRAME)); | 578 WriteParam(m, static_cast<int>(NO_FRAME)); |
581 } | 579 } |
582 } | 580 } |
583 | 581 |
584 bool ParamTraits<cc::CompositorFrame>::Read(const Message* m, | 582 bool ParamTraits<cc::CompositorFrame>::Read(const base::Pickle* m, |
585 base::PickleIterator* iter, | 583 base::PickleIterator* iter, |
586 param_type* p) { | 584 param_type* p) { |
587 if (!ReadParam(m, iter, &p->metadata)) | 585 if (!ReadParam(m, iter, &p->metadata)) |
588 return false; | 586 return false; |
589 | 587 |
590 int compositor_frame_type; | 588 int compositor_frame_type; |
591 if (!ReadParam(m, iter, &compositor_frame_type)) | 589 if (!ReadParam(m, iter, &compositor_frame_type)) |
592 return false; | 590 return false; |
593 | 591 |
594 switch (compositor_frame_type) { | 592 switch (compositor_frame_type) { |
(...skipping 20 matching lines...) Expand all Loading... |
615 l->append("CompositorFrame("); | 613 l->append("CompositorFrame("); |
616 LogParam(p.metadata, l); | 614 LogParam(p.metadata, l); |
617 l->append(", "); | 615 l->append(", "); |
618 if (p.delegated_frame_data) | 616 if (p.delegated_frame_data) |
619 LogParam(*p.delegated_frame_data, l); | 617 LogParam(*p.delegated_frame_data, l); |
620 else if (p.gl_frame_data) | 618 else if (p.gl_frame_data) |
621 LogParam(*p.gl_frame_data, l); | 619 LogParam(*p.gl_frame_data, l); |
622 l->append(")"); | 620 l->append(")"); |
623 } | 621 } |
624 | 622 |
625 void ParamTraits<cc::CompositorFrameAck>::Write(Message* m, | 623 void ParamTraits<cc::CompositorFrameAck>::Write(base::Pickle* m, |
626 const param_type& p) { | 624 const param_type& p) { |
627 WriteParam(m, p.resources); | 625 WriteParam(m, p.resources); |
628 if (p.gl_frame_data) { | 626 if (p.gl_frame_data) { |
629 WriteParam(m, static_cast<int>(GL_FRAME)); | 627 WriteParam(m, static_cast<int>(GL_FRAME)); |
630 WriteParam(m, *p.gl_frame_data); | 628 WriteParam(m, *p.gl_frame_data); |
631 } else { | 629 } else { |
632 WriteParam(m, static_cast<int>(NO_FRAME)); | 630 WriteParam(m, static_cast<int>(NO_FRAME)); |
633 } | 631 } |
634 } | 632 } |
635 | 633 |
636 bool ParamTraits<cc::CompositorFrameAck>::Read(const Message* m, | 634 bool ParamTraits<cc::CompositorFrameAck>::Read(const base::Pickle* m, |
637 base::PickleIterator* iter, | 635 base::PickleIterator* iter, |
638 param_type* p) { | 636 param_type* p) { |
639 if (!ReadParam(m, iter, &p->resources)) | 637 if (!ReadParam(m, iter, &p->resources)) |
640 return false; | 638 return false; |
641 | 639 |
642 int compositor_frame_type; | 640 int compositor_frame_type; |
643 if (!ReadParam(m, iter, &compositor_frame_type)) | 641 if (!ReadParam(m, iter, &compositor_frame_type)) |
644 return false; | 642 return false; |
645 | 643 |
646 switch (compositor_frame_type) { | 644 switch (compositor_frame_type) { |
(...skipping 13 matching lines...) Expand all Loading... |
660 void ParamTraits<cc::CompositorFrameAck>::Log(const param_type& p, | 658 void ParamTraits<cc::CompositorFrameAck>::Log(const param_type& p, |
661 std::string* l) { | 659 std::string* l) { |
662 l->append("CompositorFrameAck("); | 660 l->append("CompositorFrameAck("); |
663 LogParam(p.resources, l); | 661 LogParam(p.resources, l); |
664 l->append(", "); | 662 l->append(", "); |
665 if (p.gl_frame_data) | 663 if (p.gl_frame_data) |
666 LogParam(*p.gl_frame_data, l); | 664 LogParam(*p.gl_frame_data, l); |
667 l->append(")"); | 665 l->append(")"); |
668 } | 666 } |
669 | 667 |
670 void ParamTraits<cc::DelegatedFrameData>::Write(Message* m, | 668 void ParamTraits<cc::DelegatedFrameData>::Write(base::Pickle* m, |
671 const param_type& p) { | 669 const param_type& p) { |
672 DCHECK_NE(0u, p.render_pass_list.size()); | 670 DCHECK_NE(0u, p.render_pass_list.size()); |
673 | 671 |
674 size_t to_reserve = sizeof(p.device_scale_factor); | 672 size_t to_reserve = sizeof(p.device_scale_factor); |
675 to_reserve += p.resource_list.size() * sizeof(cc::TransferableResource); | 673 to_reserve += p.resource_list.size() * sizeof(cc::TransferableResource); |
676 for (const auto& pass : p.render_pass_list) { | 674 for (const auto& pass : p.render_pass_list) { |
677 to_reserve += sizeof(size_t) * 2; | 675 to_reserve += sizeof(size_t) * 2; |
678 to_reserve += ReserveSizeForRenderPassWrite(*pass); | 676 to_reserve += ReserveSizeForRenderPassWrite(*pass); |
679 } | 677 } |
680 m->Reserve(to_reserve); | 678 m->Reserve(to_reserve); |
681 | 679 |
682 WriteParam(m, p.device_scale_factor); | 680 WriteParam(m, p.device_scale_factor); |
683 WriteParam(m, p.resource_list); | 681 WriteParam(m, p.resource_list); |
684 WriteParam(m, p.render_pass_list.size()); | 682 WriteParam(m, p.render_pass_list.size()); |
685 for (const auto& pass : p.render_pass_list) { | 683 for (const auto& pass : p.render_pass_list) { |
686 WriteParam(m, pass->quad_list.size()); | 684 WriteParam(m, pass->quad_list.size()); |
687 WriteParam(m, pass->shared_quad_state_list.size()); | 685 WriteParam(m, pass->shared_quad_state_list.size()); |
688 WriteParam(m, *pass); | 686 WriteParam(m, *pass); |
689 } | 687 } |
690 } | 688 } |
691 | 689 |
692 bool ParamTraits<cc::DelegatedFrameData>::Read(const Message* m, | 690 bool ParamTraits<cc::DelegatedFrameData>::Read(const base::Pickle* m, |
693 base::PickleIterator* iter, | 691 base::PickleIterator* iter, |
694 param_type* p) { | 692 param_type* p) { |
695 if (!ReadParam(m, iter, &p->device_scale_factor)) | 693 if (!ReadParam(m, iter, &p->device_scale_factor)) |
696 return false; | 694 return false; |
697 | 695 |
698 const static size_t kMaxRenderPasses = 10000; | 696 const static size_t kMaxRenderPasses = 10000; |
699 const static size_t kMaxSharedQuadStateListSize = 100000; | 697 const static size_t kMaxSharedQuadStateListSize = 100000; |
700 const static size_t kMaxQuadListSize = 1000000; | 698 const static size_t kMaxQuadListSize = 1000000; |
701 | 699 |
702 std::set<cc::RenderPassId> pass_set; | 700 std::set<cc::RenderPassId> pass_set; |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
741 LogParam(p.resource_list, l); | 739 LogParam(p.resource_list, l); |
742 l->append(", ["); | 740 l->append(", ["); |
743 for (size_t i = 0; i < p.render_pass_list.size(); ++i) { | 741 for (size_t i = 0; i < p.render_pass_list.size(); ++i) { |
744 if (i) | 742 if (i) |
745 l->append(", "); | 743 l->append(", "); |
746 LogParam(*p.render_pass_list[i], l); | 744 LogParam(*p.render_pass_list[i], l); |
747 } | 745 } |
748 l->append("])"); | 746 l->append("])"); |
749 } | 747 } |
750 | 748 |
751 void ParamTraits<cc::DrawQuad::Resources>::Write(Message* m, | 749 void ParamTraits<cc::DrawQuad::Resources>::Write(base::Pickle* m, |
752 const param_type& p) { | 750 const param_type& p) { |
753 DCHECK_LE(p.count, cc::DrawQuad::Resources::kMaxResourceIdCount); | 751 DCHECK_LE(p.count, cc::DrawQuad::Resources::kMaxResourceIdCount); |
754 WriteParam(m, p.count); | 752 WriteParam(m, p.count); |
755 for (size_t i = 0; i < p.count; ++i) | 753 for (size_t i = 0; i < p.count; ++i) |
756 WriteParam(m, p.ids[i]); | 754 WriteParam(m, p.ids[i]); |
757 } | 755 } |
758 | 756 |
759 bool ParamTraits<cc::DrawQuad::Resources>::Read(const Message* m, | 757 bool ParamTraits<cc::DrawQuad::Resources>::Read(const base::Pickle* m, |
760 base::PickleIterator* iter, | 758 base::PickleIterator* iter, |
761 param_type* p) { | 759 param_type* p) { |
762 if (!ReadParam(m, iter, &p->count)) | 760 if (!ReadParam(m, iter, &p->count)) |
763 return false; | 761 return false; |
764 if (p->count > cc::DrawQuad::Resources::kMaxResourceIdCount) | 762 if (p->count > cc::DrawQuad::Resources::kMaxResourceIdCount) |
765 return false; | 763 return false; |
766 for (size_t i = 0; i < p->count; ++i) { | 764 for (size_t i = 0; i < p->count; ++i) { |
767 if (!ReadParam(m, iter, &p->ids[i])) | 765 if (!ReadParam(m, iter, &p->ids[i])) |
768 return false; | 766 return false; |
769 } | 767 } |
(...skipping 12 matching lines...) Expand all Loading... |
782 | 780 |
783 for (size_t i = 0; i < p.count; ++i) { | 781 for (size_t i = 0; i < p.count; ++i) { |
784 LogParam(p.ids[i], l); | 782 LogParam(p.ids[i], l); |
785 if (i < (p.count - 1)) | 783 if (i < (p.count - 1)) |
786 l->append(", "); | 784 l->append(", "); |
787 } | 785 } |
788 l->append("])"); | 786 l->append("])"); |
789 } | 787 } |
790 | 788 |
791 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Write( | 789 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Write( |
792 Message* m, | 790 base::Pickle* m, |
793 const param_type& p) { | 791 const param_type& p) { |
794 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 792 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
795 WriteParam(m, p.size_in_pixels[i]); | 793 WriteParam(m, p.size_in_pixels[i]); |
796 } | 794 } |
797 } | 795 } |
798 | 796 |
799 bool ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Read( | 797 bool ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Read( |
800 const Message* m, | 798 const base::Pickle* m, |
801 base::PickleIterator* iter, | 799 base::PickleIterator* iter, |
802 param_type* p) { | 800 param_type* p) { |
803 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 801 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
804 if (!ReadParam(m, iter, &p->size_in_pixels[i])) | 802 if (!ReadParam(m, iter, &p->size_in_pixels[i])) |
805 return false; | 803 return false; |
806 } | 804 } |
807 return true; | 805 return true; |
808 } | 806 } |
809 | 807 |
810 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Log( | 808 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Log( |
811 const param_type& p, | 809 const param_type& p, |
812 std::string* l) { | 810 std::string* l) { |
813 l->append("StreamVideoDrawQuad::OverlayResources(["); | 811 l->append("StreamVideoDrawQuad::OverlayResources(["); |
814 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 812 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
815 LogParam(p.size_in_pixels[i], l); | 813 LogParam(p.size_in_pixels[i], l); |
816 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) | 814 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) |
817 l->append(", "); | 815 l->append(", "); |
818 } | 816 } |
819 l->append("])"); | 817 l->append("])"); |
820 } | 818 } |
821 | 819 |
822 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::Write( | 820 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::Write( |
823 Message* m, | 821 base::Pickle* m, |
824 const param_type& p) { | 822 const param_type& p) { |
825 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 823 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
826 WriteParam(m, p.size_in_pixels[i]); | 824 WriteParam(m, p.size_in_pixels[i]); |
827 } | 825 } |
828 } | 826 } |
829 | 827 |
830 bool ParamTraits<cc::TextureDrawQuad::OverlayResources>::Read( | 828 bool ParamTraits<cc::TextureDrawQuad::OverlayResources>::Read( |
831 const Message* m, | 829 const base::Pickle* m, |
832 base::PickleIterator* iter, | 830 base::PickleIterator* iter, |
833 param_type* p) { | 831 param_type* p) { |
834 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 832 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
835 if (!ReadParam(m, iter, &p->size_in_pixels[i])) | 833 if (!ReadParam(m, iter, &p->size_in_pixels[i])) |
836 return false; | 834 return false; |
837 } | 835 } |
838 return true; | 836 return true; |
839 } | 837 } |
840 | 838 |
841 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::Log( | 839 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::Log( |
842 const param_type& p, | 840 const param_type& p, |
843 std::string* l) { | 841 std::string* l) { |
844 l->append("TextureDrawQuad::OverlayResources(["); | 842 l->append("TextureDrawQuad::OverlayResources(["); |
845 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 843 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
846 LogParam(p.size_in_pixels[i], l); | 844 LogParam(p.size_in_pixels[i], l); |
847 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) | 845 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) |
848 l->append(", "); | 846 l->append(", "); |
849 } | 847 } |
850 l->append("])"); | 848 l->append("])"); |
851 } | 849 } |
852 | 850 |
853 } // namespace IPC | 851 } // namespace IPC |
OLD | NEW |