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 |