Index: cc/ipc/cc_param_traits.cc |
diff --git a/cc/ipc/cc_param_traits.cc b/cc/ipc/cc_param_traits.cc |
index 75d2fee8b4c7dcbe178080d5d6edd5764e32a6d9..77c4dc1bdf9d656b048a1e93fb6ae7866995ed11 100644 |
--- a/cc/ipc/cc_param_traits.cc |
+++ b/cc/ipc/cc_param_traits.cc |
@@ -326,6 +326,8 @@ void ParamTraits<cc::RenderPass>::Write(base::Pickle* m, const param_type& p) { |
WriteParam(m, p.output_rect); |
WriteParam(m, p.damage_rect); |
WriteParam(m, p.transform_to_root_target); |
+ WriteParam(m, p.filters); |
+ WriteParam(m, p.background_filters); |
WriteParam(m, p.has_transparent_background); |
WriteParam(m, base::checked_cast<uint32_t>(p.quad_list.size())); |
@@ -407,6 +409,12 @@ static size_t ReserveSizeForRenderPassWrite(const cc::RenderPass& p) { |
// The largest quad type, verified by a unit test. |
to_reserve += p.quad_list.size() * cc::LargestDrawQuadSize(); |
+ |
+ base::PickleSizer sizer; |
+ GetParamSize(&sizer, p.filters); |
+ GetParamSize(&sizer, p.background_filters); |
+ to_reserve += sizer.payload_size(); |
+ |
return to_reserve; |
} |
@@ -427,18 +435,22 @@ bool ParamTraits<cc::RenderPass>::Read(const base::Pickle* m, |
gfx::Rect output_rect; |
gfx::Rect damage_rect; |
gfx::Transform transform_to_root_target; |
+ cc::FilterOperations filters; |
+ cc::FilterOperations background_filters; |
bool has_transparent_background; |
uint32_t quad_list_size; |
if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) || |
!ReadParam(m, iter, &damage_rect) || |
!ReadParam(m, iter, &transform_to_root_target) || |
+ !ReadParam(m, iter, &filters) || |
+ !ReadParam(m, iter, &background_filters) || |
!ReadParam(m, iter, &has_transparent_background) || |
!ReadParam(m, iter, &quad_list_size)) |
return false; |
- p->SetAll(id, output_rect, damage_rect, transform_to_root_target, |
- has_transparent_background); |
+ p->SetAll(id, output_rect, damage_rect, transform_to_root_target, filters, |
+ background_filters, has_transparent_background); |
for (uint32_t i = 0; i < quad_list_size; ++i) { |
cc::DrawQuad::Material material; |
@@ -521,6 +533,10 @@ void ParamTraits<cc::RenderPass>::Log(const param_type& p, std::string* l) { |
l->append(", "); |
LogParam(p.transform_to_root_target, l); |
l->append(", "); |
+ LogParam(p.filters, l); |
+ l->append(", "); |
+ LogParam(p.background_filters, l); |
+ l->append(", "); |
LogParam(p.has_transparent_background, l); |
l->append(", "); |