Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Side by Side Diff: content/common/cc_messages.cc

Issue 11316128: Send compositor frame IPC with metadata. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Clean up and rebase to 173167 Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698