| 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
|
|
|