Index: cc/playback/compositing_display_item.cc |
diff --git a/cc/playback/compositing_display_item.cc b/cc/playback/compositing_display_item.cc |
index 667371bafe6674db3b8d677417be8150838d5c3e..b9cd395e62fae475ff7e017ef7a37bbf2f1886a1 100644 |
--- a/cc/playback/compositing_display_item.cc |
+++ b/cc/playback/compositing_display_item.cc |
@@ -19,7 +19,35 @@ |
namespace cc { |
-CompositingDisplayItem::CompositingDisplayItem() { |
+CompositingDisplayItem::CompositingDisplayItem(uint8_t alpha, |
+ SkXfermode::Mode xfermode, |
+ SkRect* bounds, |
+ skia::RefPtr<SkColorFilter> cf) { |
+ SetNew(alpha, xfermode, bounds, std::move(cf)); |
+} |
+ |
+CompositingDisplayItem::CompositingDisplayItem( |
+ const proto::DisplayItem& proto) { |
+ DCHECK_EQ(proto::DisplayItem::Type_Compositing, proto.type()); |
+ |
+ const proto::CompositingDisplayItem& details = proto.compositing_item(); |
+ uint8_t alpha = static_cast<uint8_t>(details.alpha()); |
+ SkXfermode::Mode xfermode = SkXfermodeModeFromProto(details.mode()); |
+ scoped_ptr<SkRect> bounds; |
+ if (details.has_bounds()) { |
+ bounds.reset( |
+ new SkRect(gfx::RectFToSkRect(ProtoToRectF(details.bounds())))); |
+ } |
+ |
+ skia::RefPtr<SkColorFilter> filter; |
+ if (details.has_color_filter()) { |
+ SkFlattenable* flattenable = SkValidatingDeserializeFlattenable( |
+ details.color_filter().c_str(), details.color_filter().size(), |
+ SkColorFilter::GetFlattenableType()); |
+ filter = skia::AdoptRef(static_cast<SkColorFilter*>(flattenable)); |
+ } |
+ |
+ SetNew(alpha, xfermode, bounds.get(), std::move(filter)); |
} |
CompositingDisplayItem::~CompositingDisplayItem() { |
@@ -34,12 +62,7 @@ void CompositingDisplayItem::SetNew(uint8_t alpha, |
has_bounds_ = !!bounds; |
if (bounds) |
bounds_ = SkRect(*bounds); |
- color_filter_ = cf; |
- |
- // TODO(pdr): Include color_filter's memory here. |
- size_t external_memory_usage = 0; |
- DisplayItem::SetNew(true /* suitable_for_gpu_raster */, 1 /* op_count */, |
- external_memory_usage); |
+ color_filter_ = std::move(cf); |
} |
void CompositingDisplayItem::ToProtobuf(proto::DisplayItem* proto) const { |
@@ -59,29 +82,6 @@ void CompositingDisplayItem::ToProtobuf(proto::DisplayItem* proto) const { |
} |
} |
-void CompositingDisplayItem::FromProtobuf(const proto::DisplayItem& proto) { |
- DCHECK_EQ(proto::DisplayItem::Type_Compositing, proto.type()); |
- |
- const proto::CompositingDisplayItem& details = proto.compositing_item(); |
- uint8_t alpha = static_cast<uint8_t>(details.alpha()); |
- SkXfermode::Mode xfermode = SkXfermodeModeFromProto(details.mode()); |
- scoped_ptr<SkRect> bounds; |
- if (details.has_bounds()) { |
- bounds.reset( |
- new SkRect(gfx::RectFToSkRect(ProtoToRectF(details.bounds())))); |
- } |
- |
- skia::RefPtr<SkColorFilter> filter; |
- if (details.has_color_filter()) { |
- SkFlattenable* flattenable = SkValidatingDeserializeFlattenable( |
- details.color_filter().c_str(), details.color_filter().size(), |
- SkColorFilter::GetFlattenableType()); |
- filter = skia::AdoptRef(static_cast<SkColorFilter*>(flattenable)); |
- } |
- |
- SetNew(alpha, xfermode, bounds.get(), std::move(filter)); |
-} |
- |
void CompositingDisplayItem::Raster( |
SkCanvas* canvas, |
const gfx::Rect& canvas_target_playback_rect, |
@@ -106,9 +106,16 @@ void CompositingDisplayItem::AsValueInto( |
static_cast<float>(bounds_.height()))); |
} |
-EndCompositingDisplayItem::EndCompositingDisplayItem() { |
- DisplayItem::SetNew(true /* suitable_for_gpu_raster */, 0 /* op_count */, |
- 0 /* external_memory_usage */); |
+size_t CompositingDisplayItem::ExternalMemoryUsage() const { |
+ // TODO(pdr): Include color_filter's memory here. |
+ return 0; |
+} |
+ |
+EndCompositingDisplayItem::EndCompositingDisplayItem() {} |
+ |
+EndCompositingDisplayItem::EndCompositingDisplayItem( |
+ const proto::DisplayItem& proto) { |
+ DCHECK_EQ(proto::DisplayItem::Type_EndCompositing, proto.type()); |
} |
EndCompositingDisplayItem::~EndCompositingDisplayItem() { |
@@ -118,10 +125,6 @@ void EndCompositingDisplayItem::ToProtobuf(proto::DisplayItem* proto) const { |
proto->set_type(proto::DisplayItem::Type_EndCompositing); |
} |
-void EndCompositingDisplayItem::FromProtobuf(const proto::DisplayItem& proto) { |
- DCHECK_EQ(proto::DisplayItem::Type_EndCompositing, proto.type()); |
-} |
- |
void EndCompositingDisplayItem::Raster( |
SkCanvas* canvas, |
const gfx::Rect& canvas_target_playback_rect, |
@@ -137,4 +140,8 @@ void EndCompositingDisplayItem::AsValueInto( |
visual_rect.ToString().c_str())); |
} |
+size_t EndCompositingDisplayItem::ExternalMemoryUsage() const { |
+ return 0; |
+} |
+ |
} // namespace cc |