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