| 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 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 551 return true; | 551 return true; |
| 552 } | 552 } |
| 553 | 553 |
| 554 void ParamTraits<cc::Mailbox>::Log(const param_type& p, std::string* l) { | 554 void ParamTraits<cc::Mailbox>::Log(const param_type& p, std::string* l) { |
| 555 for (size_t i = 0; i < sizeof(p.name); ++i) | 555 for (size_t i = 0; i < sizeof(p.name); ++i) |
| 556 *l += base::StringPrintf("%02x", p.name[i]); | 556 *l += base::StringPrintf("%02x", p.name[i]); |
| 557 } | 557 } |
| 558 | 558 |
| 559 namespace { | 559 namespace { |
| 560 enum CompositorFrameType { | 560 enum CompositorFrameType { |
| 561 NO_FRAME, |
| 561 DELEGATED_FRAME, | 562 DELEGATED_FRAME, |
| 562 GL_FRAME, | 563 GL_FRAME, |
| 563 }; | 564 }; |
| 564 } | 565 } |
| 565 | 566 |
| 566 void ParamTraits<cc::CompositorFrame>::Write(Message* m, | 567 void ParamTraits<cc::CompositorFrame>::Write(Message* m, |
| 567 const param_type& p) { | 568 const param_type& p) { |
| 568 WriteParam(m, p.metadata); | 569 WriteParam(m, p.metadata); |
| 569 if (p.delegated_frame_data) { | 570 if (p.delegated_frame_data) { |
| 570 DCHECK(!p.gl_frame_data); | 571 DCHECK(!p.gl_frame_data); |
| 571 WriteParam(m, static_cast<int>(DELEGATED_FRAME)); | 572 WriteParam(m, static_cast<int>(DELEGATED_FRAME)); |
| 572 WriteParam(m, *p.delegated_frame_data); | 573 WriteParam(m, *p.delegated_frame_data); |
| 573 } else { | 574 } else if (p.gl_frame_data) { |
| 574 DCHECK(p.gl_frame_data); | |
| 575 WriteParam(m, static_cast<int>(GL_FRAME)); | 575 WriteParam(m, static_cast<int>(GL_FRAME)); |
| 576 WriteParam(m, *p.gl_frame_data); | 576 WriteParam(m, *p.gl_frame_data); |
| 577 } else { |
| 578 WriteParam(m, static_cast<int>(NO_FRAME)); |
| 577 } | 579 } |
| 578 } | 580 } |
| 579 | 581 |
| 580 bool ParamTraits<cc::CompositorFrame>::Read(const Message* m, | 582 bool ParamTraits<cc::CompositorFrame>::Read(const Message* m, |
| 581 PickleIterator* iter, | 583 PickleIterator* iter, |
| 582 param_type* p) { | 584 param_type* p) { |
| 583 if (!ReadParam(m, iter, &p->metadata)) | 585 if (!ReadParam(m, iter, &p->metadata)) |
| 584 return false; | 586 return false; |
| 585 | 587 |
| 586 int compositor_frame_type; | 588 int compositor_frame_type; |
| 587 if (!ReadParam(m, iter, &compositor_frame_type)) | 589 if (!ReadParam(m, iter, &compositor_frame_type)) |
| 588 return false; | 590 return false; |
| 589 | 591 |
| 590 switch (compositor_frame_type) { | 592 switch (compositor_frame_type) { |
| 591 case DELEGATED_FRAME: | 593 case DELEGATED_FRAME: |
| 592 p->delegated_frame_data.reset(new cc::DelegatedFrameData()); | 594 p->delegated_frame_data.reset(new cc::DelegatedFrameData()); |
| 593 if (!ReadParam(m, iter, p->delegated_frame_data.get())) | 595 if (!ReadParam(m, iter, p->delegated_frame_data.get())) |
| 594 return false; | 596 return false; |
| 595 break; | 597 break; |
| 596 case GL_FRAME: | 598 case GL_FRAME: |
| 597 p->gl_frame_data.reset(new cc::GLFrameData()); | 599 p->gl_frame_data.reset(new cc::GLFrameData()); |
| 598 if (!ReadParam(m, iter, p->gl_frame_data.get())) | 600 if (!ReadParam(m, iter, p->gl_frame_data.get())) |
| 599 return false; | 601 return false; |
| 600 break; | 602 break; |
| 603 case NO_FRAME: |
| 604 break; |
| 601 default: | 605 default: |
| 602 return false; | 606 return false; |
| 603 } | 607 } |
| 604 return true; | 608 return true; |
| 605 } | 609 } |
| 606 | 610 |
| 607 void ParamTraits<cc::CompositorFrame>::Log(const param_type& p, | 611 void ParamTraits<cc::CompositorFrame>::Log(const param_type& p, |
| 608 std::string* l) { | 612 std::string* l) { |
| 609 l->append("CompositorFrame("); | 613 l->append("CompositorFrame("); |
| 610 LogParam(p.metadata, l); | 614 LogParam(p.metadata, l); |
| 611 l->append(", "); | 615 l->append(", "); |
| 612 if (p.delegated_frame_data) | 616 if (p.delegated_frame_data) |
| 613 LogParam(*p.delegated_frame_data, l); | 617 LogParam(*p.delegated_frame_data, l); |
| 614 else if (p.gl_frame_data) | 618 else if (p.gl_frame_data) |
| 615 LogParam(*p.gl_frame_data, l); | 619 LogParam(*p.gl_frame_data, l); |
| 616 l->append(")"); | 620 l->append(")"); |
| 617 } | 621 } |
| 618 | 622 |
| 623 void ParamTraits<cc::CompositorFrameAck>::Write(Message* m, |
| 624 const param_type& p) { |
| 625 WriteParam(m, p.resources); |
| 626 if (p.gl_frame_data) { |
| 627 WriteParam(m, static_cast<int>(GL_FRAME)); |
| 628 WriteParam(m, *p.gl_frame_data); |
| 629 } else { |
| 630 WriteParam(m, static_cast<int>(NO_FRAME)); |
| 631 } |
| 632 } |
| 633 |
| 634 bool ParamTraits<cc::CompositorFrameAck>::Read(const Message* m, |
| 635 PickleIterator* iter, |
| 636 param_type* p) { |
| 637 if (!ReadParam(m, iter, &p->resources)) |
| 638 return false; |
| 639 |
| 640 int compositor_frame_type; |
| 641 if (!ReadParam(m, iter, &compositor_frame_type)) |
| 642 return false; |
| 643 |
| 644 switch (compositor_frame_type) { |
| 645 case NO_FRAME: |
| 646 break; |
| 647 case GL_FRAME: |
| 648 p->gl_frame_data.reset(new cc::GLFrameData()); |
| 649 if (!ReadParam(m, iter, p->gl_frame_data.get())) |
| 650 return false; |
| 651 break; |
| 652 default: |
| 653 return false; |
| 654 } |
| 655 return true; |
| 656 } |
| 657 |
| 658 void ParamTraits<cc::CompositorFrameAck>::Log(const param_type& p, |
| 659 std::string* l) { |
| 660 l->append("CompositorFrameAck("); |
| 661 LogParam(p.resources, l); |
| 662 l->append(", "); |
| 663 if (p.gl_frame_data) |
| 664 LogParam(*p.gl_frame_data, l); |
| 665 l->append(")"); |
| 666 } |
| 667 |
| 619 void ParamTraits<cc::DelegatedFrameData>::Write(Message* m, | 668 void ParamTraits<cc::DelegatedFrameData>::Write(Message* m, |
| 620 const param_type& p) { | 669 const param_type& p) { |
| 621 WriteParam(m, p.resource_list); | 670 WriteParam(m, p.resource_list); |
| 622 WriteParam(m, p.render_pass_list.size()); | 671 WriteParam(m, p.render_pass_list.size()); |
| 623 for (size_t i = 0; i < p.render_pass_list.size(); ++i) | 672 for (size_t i = 0; i < p.render_pass_list.size(); ++i) |
| 624 WriteParam(m, *p.render_pass_list[i]); | 673 WriteParam(m, *p.render_pass_list[i]); |
| 625 } | 674 } |
| 626 | 675 |
| 627 bool ParamTraits<cc::DelegatedFrameData>::Read(const Message* m, | 676 bool ParamTraits<cc::DelegatedFrameData>::Read(const Message* m, |
| 628 PickleIterator* iter, | 677 PickleIterator* iter, |
| (...skipping 21 matching lines...) Expand all Loading... |
| 650 l->append(", ["); | 699 l->append(", ["); |
| 651 for (size_t i = 0; i < p.render_pass_list.size(); ++i) { | 700 for (size_t i = 0; i < p.render_pass_list.size(); ++i) { |
| 652 if (i) | 701 if (i) |
| 653 l->append(", "); | 702 l->append(", "); |
| 654 LogParam(*p.render_pass_list[i], l); | 703 LogParam(*p.render_pass_list[i], l); |
| 655 } | 704 } |
| 656 l->append("])"); | 705 l->append("])"); |
| 657 } | 706 } |
| 658 | 707 |
| 659 } // namespace IPC | 708 } // namespace IPC |
| OLD | NEW |