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 "cc/compositor_frame.h" | 7 #include "cc/compositor_frame.h" |
8 #include "content/public/common/common_param_traits.h" | 8 #include "content/public/common/common_param_traits.h" |
9 #include "third_party/WebKit/Source/Platform/chromium/public/WebData.h" | 9 #include "third_party/WebKit/Source/Platform/chromium/public/WebData.h" |
10 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperations .h" | 10 #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperations .h" |
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
562 DCHECK(bytes); | 562 DCHECK(bytes); |
563 memcpy(p->name, bytes, sizeof(p->name)); | 563 memcpy(p->name, bytes, sizeof(p->name)); |
564 return true; | 564 return true; |
565 } | 565 } |
566 | 566 |
567 void ParamTraits<cc::Mailbox>::Log(const param_type& p, std::string* l) { | 567 void ParamTraits<cc::Mailbox>::Log(const param_type& p, std::string* l) { |
568 for (size_t i = 0; i < sizeof(p.name); ++i) | 568 for (size_t i = 0; i < sizeof(p.name); ++i) |
569 *l += base::StringPrintf("%02x", p.name[i]); | 569 *l += base::StringPrintf("%02x", p.name[i]); |
570 } | 570 } |
571 | 571 |
572 void ParamTraits<cc::CompositorFrame>::Write(Message* m, const param_type& p) { | 572 void ParamTraits<cc::DelegatedCompositorFrame>::Write(Message* m, |
573 const param_type& p) { | |
574 WriteParam(m, static_cast<const cc::CompositorFrame&>(p)); | |
573 WriteParam(m, p.size); | 575 WriteParam(m, p.size); |
574 WriteParam(m, p.resource_list); | 576 WriteParam(m, p.resource_list); |
575 WriteParam(m, p.render_pass_list.size()); | 577 WriteParam(m, p.render_pass_list.size()); |
576 for (size_t i = 0; i < p.render_pass_list.size(); ++i) | 578 for (size_t i = 0; i < p.render_pass_list.size(); ++i) |
577 WriteParam(m, *p.render_pass_list[i]); | 579 WriteParam(m, *p.render_pass_list[i]); |
578 } | 580 } |
579 | 581 |
580 bool ParamTraits<cc::CompositorFrame>::Read(const Message* m, | 582 bool ParamTraits<cc::DelegatedCompositorFrame>::Read(const Message* m, |
581 PickleIterator* iter, | 583 PickleIterator* iter, |
582 param_type* p) { | 584 param_type* p) { |
583 const static size_t kMaxRenderPasses = 10000; | 585 const static size_t kMaxRenderPasses = 10000; |
584 | 586 |
587 if (!ReadParam(m, iter, static_cast<cc::CompositorFrame*>(p))) | |
piman
2012/12/14 22:02:22
Also fail if the read type is not DELEGATED.
aelias_OOO_until_Jul13
2012/12/15 00:06:17
Done.
| |
588 return false; | |
589 | |
585 size_t num_render_passes; | 590 size_t num_render_passes; |
586 if (!ReadParam(m, iter, &p->size) || | 591 if (!ReadParam(m, iter, &p->size) || |
587 !ReadParam(m, iter, &p->resource_list) || | 592 !ReadParam(m, iter, &p->resource_list) || |
588 !ReadParam(m, iter, &num_render_passes) || | 593 !ReadParam(m, iter, &num_render_passes) || |
589 num_render_passes > kMaxRenderPasses) | 594 num_render_passes > kMaxRenderPasses) |
590 return false; | 595 return false; |
591 for (size_t i = 0; i < num_render_passes; ++i) { | 596 for (size_t i = 0; i < num_render_passes; ++i) { |
592 scoped_ptr<cc::RenderPass> render_pass = cc::RenderPass::Create(); | 597 scoped_ptr<cc::RenderPass> render_pass = cc::RenderPass::Create(); |
593 if (!ReadParam(m, iter, render_pass.get())) | 598 if (!ReadParam(m, iter, render_pass.get())) |
594 return false; | 599 return false; |
595 p->render_pass_list.append(render_pass.Pass()); | 600 p->render_pass_list.append(render_pass.Pass()); |
596 } | 601 } |
597 return true; | 602 return true; |
598 } | 603 } |
599 | 604 |
600 void ParamTraits<cc::CompositorFrame>::Log(const param_type& p, | 605 void ParamTraits<cc::DelegatedCompositorFrame>::Log(const param_type& p, |
601 std::string* l) { | 606 std::string* l) { |
602 l->append("CompositorFrame("); | 607 l->append("DelegatedCompositorFrame("); |
608 LogParam(static_cast<const cc::CompositorFrame&>(p), l); | |
603 LogParam(p.size, l); | 609 LogParam(p.size, l); |
604 l->append(", "); | 610 l->append(", "); |
605 LogParam(p.resource_list, l); | 611 LogParam(p.resource_list, l); |
606 l->append(", ["); | 612 l->append(", ["); |
607 for (size_t i = 0; i < p.render_pass_list.size(); ++i) { | 613 for (size_t i = 0; i < p.render_pass_list.size(); ++i) { |
608 if (i) | 614 if (i) |
609 l->append(", "); | 615 l->append(", "); |
610 LogParam(*p.render_pass_list[i], l); | 616 LogParam(*p.render_pass_list[i], l); |
611 } | 617 } |
612 l->append("])"); | 618 l->append("])"); |
613 } | 619 } |
614 | 620 |
615 } // namespace IPC | 621 } // namespace IPC |
OLD | NEW |