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

Unified Diff: cc/ipc/cc_param_traits.cc

Issue 2449853004: Getting rid of DelegatedFrameData (Closed)
Patch Set: Created 4 years, 2 months 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 side-by-side diff with in-line comments
Download patch
Index: cc/ipc/cc_param_traits.cc
diff --git a/cc/ipc/cc_param_traits.cc b/cc/ipc/cc_param_traits.cc
index fc734204281f0d63f24c799fc54f2e569e9a7d71..79c16204d68e67cad56e2e03445d8f4d54defee4 100644
--- a/cc/ipc/cc_param_traits.cc
+++ b/cc/ipc/cc_param_traits.cc
@@ -681,52 +681,12 @@ enum CompositorFrameType {
void ParamTraits<cc::CompositorFrame>::Write(base::Pickle* m,
const param_type& p) {
WriteParam(m, p.metadata);
- if (p.delegated_frame_data) {
- WriteParam(m, static_cast<int>(DELEGATED_FRAME));
- WriteParam(m, *p.delegated_frame_data);
- } else {
+ if (p.IsEmpty()) {
WriteParam(m, static_cast<int>(NO_FRAME));
+ return;
}
-}
-
-bool ParamTraits<cc::CompositorFrame>::Read(const base::Pickle* m,
- base::PickleIterator* iter,
- param_type* p) {
- if (!ReadParam(m, iter, &p->metadata))
- return false;
-
- int compositor_frame_type;
- if (!ReadParam(m, iter, &compositor_frame_type))
- return false;
-
- switch (compositor_frame_type) {
- case DELEGATED_FRAME:
- p->delegated_frame_data.reset(new cc::DelegatedFrameData());
- if (!ReadParam(m, iter, p->delegated_frame_data.get()))
- return false;
- break;
- case NO_FRAME:
- break;
- default:
- return false;
- }
- return true;
-}
-
-void ParamTraits<cc::CompositorFrame>::Log(const param_type& p,
- std::string* l) {
- l->append("CompositorFrame(");
- LogParam(p.metadata, l);
- l->append(", ");
- if (p.delegated_frame_data)
- LogParam(*p.delegated_frame_data, l);
- l->append(")");
-}
-
-void ParamTraits<cc::DelegatedFrameData>::Write(base::Pickle* m,
- const param_type& p) {
+ WriteParam(m, static_cast<int>(DELEGATED_FRAME));
DCHECK_NE(0u, p.render_pass_list.size());
-
size_t to_reserve = 0u;
to_reserve += p.resource_list.size() * sizeof(cc::TransferableResource);
for (const auto& pass : p.render_pass_list) {
@@ -745,9 +705,25 @@ void ParamTraits<cc::DelegatedFrameData>::Write(base::Pickle* m,
}
}
-bool ParamTraits<cc::DelegatedFrameData>::Read(const base::Pickle* m,
- base::PickleIterator* iter,
- param_type* p) {
+bool ParamTraits<cc::CompositorFrame>::Read(const base::Pickle* m,
+ base::PickleIterator* iter,
+ param_type* p) {
+ if (!ReadParam(m, iter, &p->metadata))
+ return false;
+
+ int compositor_frame_type;
+ if (!ReadParam(m, iter, &compositor_frame_type))
+ return false;
+
+ if (compositor_frame_type == NO_FRAME) {
+ p->render_pass_list.clear();
danakj 2016/10/25 22:23:07 Why would they not already be empty?
Fady Samuel 2016/10/26 03:13:55 You might want to overwrite an existing Compositor
Saman Sami 2016/10/26 14:41:18 Since the original code assumes the frame is empty
+ p->resource_list.clear();
+ return true;
+ }
+
+ if (compositor_frame_type != DELEGATED_FRAME)
+ return false;
+
const size_t kMaxRenderPasses = 10000;
const size_t kMaxSharedQuadStateListSize = 100000;
const size_t kMaxQuadListSize = 1000000;
@@ -785,12 +761,15 @@ bool ParamTraits<cc::DelegatedFrameData>::Read(const base::Pickle* m,
pass_set.insert(render_pass->id);
p->render_pass_list.push_back(std::move(render_pass));
}
+
return true;
}
-void ParamTraits<cc::DelegatedFrameData>::Log(const param_type& p,
- std::string* l) {
- l->append("DelegatedFrameData(");
+void ParamTraits<cc::CompositorFrame>::Log(const param_type& p,
+ std::string* l) {
+ l->append("CompositorFrame(");
+ LogParam(p.metadata, l);
+ l->append(", ");
LogParam(p.resource_list, l);
l->append(", [");
for (size_t i = 0; i < p.render_pass_list.size(); ++i) {

Powered by Google App Engine
This is Rietveld 408576698