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 "cc/ipc/cc_param_traits.h" | 5 #include "cc/ipc/cc_param_traits.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/numerics/safe_conversions.h" | 10 #include "base/numerics/safe_conversions.h" |
(...skipping 630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
641 LogParam(p.local_id(), l); | 641 LogParam(p.local_id(), l); |
642 l->append(", "); | 642 l->append(", "); |
643 LogParam(p.nonce(), l); | 643 LogParam(p.nonce(), l); |
644 l->append(")"); | 644 l->append(")"); |
645 } | 645 } |
646 | 646 |
647 namespace { | 647 namespace { |
648 enum CompositorFrameType { | 648 enum CompositorFrameType { |
649 NO_FRAME, | 649 NO_FRAME, |
650 DELEGATED_FRAME, | 650 DELEGATED_FRAME, |
651 GL_FRAME, | |
652 }; | 651 }; |
653 } | 652 } |
654 | 653 |
655 void ParamTraits<cc::CompositorFrame>::Write(base::Pickle* m, | 654 void ParamTraits<cc::CompositorFrame>::Write(base::Pickle* m, |
656 const param_type& p) { | 655 const param_type& p) { |
657 WriteParam(m, p.metadata); | 656 WriteParam(m, p.metadata); |
658 if (p.delegated_frame_data) { | 657 if (p.delegated_frame_data) { |
659 DCHECK(!p.gl_frame_data); | |
660 WriteParam(m, static_cast<int>(DELEGATED_FRAME)); | 658 WriteParam(m, static_cast<int>(DELEGATED_FRAME)); |
661 WriteParam(m, *p.delegated_frame_data); | 659 WriteParam(m, *p.delegated_frame_data); |
662 } else if (p.gl_frame_data) { | |
663 WriteParam(m, static_cast<int>(GL_FRAME)); | |
664 WriteParam(m, *p.gl_frame_data); | |
665 } else { | 660 } else { |
666 WriteParam(m, static_cast<int>(NO_FRAME)); | 661 WriteParam(m, static_cast<int>(NO_FRAME)); |
667 } | 662 } |
668 } | 663 } |
669 | 664 |
670 bool ParamTraits<cc::CompositorFrame>::Read(const base::Pickle* m, | 665 bool ParamTraits<cc::CompositorFrame>::Read(const base::Pickle* m, |
671 base::PickleIterator* iter, | 666 base::PickleIterator* iter, |
672 param_type* p) { | 667 param_type* p) { |
673 if (!ReadParam(m, iter, &p->metadata)) | 668 if (!ReadParam(m, iter, &p->metadata)) |
674 return false; | 669 return false; |
675 | 670 |
676 int compositor_frame_type; | 671 int compositor_frame_type; |
677 if (!ReadParam(m, iter, &compositor_frame_type)) | 672 if (!ReadParam(m, iter, &compositor_frame_type)) |
678 return false; | 673 return false; |
679 | 674 |
680 switch (compositor_frame_type) { | 675 switch (compositor_frame_type) { |
681 case DELEGATED_FRAME: | 676 case DELEGATED_FRAME: |
682 p->delegated_frame_data.reset(new cc::DelegatedFrameData()); | 677 p->delegated_frame_data.reset(new cc::DelegatedFrameData()); |
683 if (!ReadParam(m, iter, p->delegated_frame_data.get())) | 678 if (!ReadParam(m, iter, p->delegated_frame_data.get())) |
684 return false; | 679 return false; |
685 break; | 680 break; |
686 case GL_FRAME: | |
687 p->gl_frame_data.reset(new cc::GLFrameData()); | |
688 if (!ReadParam(m, iter, p->gl_frame_data.get())) | |
689 return false; | |
690 break; | |
691 case NO_FRAME: | 681 case NO_FRAME: |
692 break; | 682 break; |
693 default: | 683 default: |
694 return false; | 684 return false; |
695 } | 685 } |
696 return true; | 686 return true; |
697 } | 687 } |
698 | 688 |
699 void ParamTraits<cc::CompositorFrame>::Log(const param_type& p, | 689 void ParamTraits<cc::CompositorFrame>::Log(const param_type& p, |
700 std::string* l) { | 690 std::string* l) { |
701 l->append("CompositorFrame("); | 691 l->append("CompositorFrame("); |
702 LogParam(p.metadata, l); | 692 LogParam(p.metadata, l); |
703 l->append(", "); | 693 l->append(", "); |
704 if (p.delegated_frame_data) | 694 if (p.delegated_frame_data) |
705 LogParam(*p.delegated_frame_data, l); | 695 LogParam(*p.delegated_frame_data, l); |
706 else if (p.gl_frame_data) | |
707 LogParam(*p.gl_frame_data, l); | |
708 l->append(")"); | 696 l->append(")"); |
709 } | 697 } |
710 | 698 |
711 void ParamTraits<cc::DelegatedFrameData>::Write(base::Pickle* m, | 699 void ParamTraits<cc::DelegatedFrameData>::Write(base::Pickle* m, |
712 const param_type& p) { | 700 const param_type& p) { |
713 DCHECK_NE(0u, p.render_pass_list.size()); | 701 DCHECK_NE(0u, p.render_pass_list.size()); |
714 | 702 |
715 size_t to_reserve = 0u; | 703 size_t to_reserve = 0u; |
716 to_reserve += p.resource_list.size() * sizeof(cc::TransferableResource); | 704 to_reserve += p.resource_list.size() * sizeof(cc::TransferableResource); |
717 for (const auto& pass : p.render_pass_list) { | 705 for (const auto& pass : p.render_pass_list) { |
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1003 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_ | 991 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_ |
1004 #include "cc/ipc/cc_param_traits_macros.h" | 992 #include "cc/ipc/cc_param_traits_macros.h" |
1005 } // namespace IPC | 993 } // namespace IPC |
1006 | 994 |
1007 // Generate param traits log methods. | 995 // Generate param traits log methods. |
1008 #include "ipc/param_traits_log_macros.h" | 996 #include "ipc/param_traits_log_macros.h" |
1009 namespace IPC { | 997 namespace IPC { |
1010 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_ | 998 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_ |
1011 #include "cc/ipc/cc_param_traits_macros.h" | 999 #include "cc/ipc/cc_param_traits_macros.h" |
1012 } // namespace IPC | 1000 } // namespace IPC |
OLD | NEW |