Chromium Code Reviews| 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 |