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

Unified Diff: cc/playback/compositing_display_item.cc

Issue 1494223003: cc: Shrink size of display item (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix some compilation issues in ui oops Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/playback/compositing_display_item.h ('k') | cc/playback/display_item.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « cc/playback/compositing_display_item.h ('k') | cc/playback/display_item.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698