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

Unified Diff: third_party/WebKit/Source/platform/graphics/paint/CompositingRecorder.cpp

Issue 2768143002: Back PaintRecord with PaintOpBuffer instead of SkPicture (Closed)
Patch Set: more const casting Created 3 years, 8 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: third_party/WebKit/Source/platform/graphics/paint/CompositingRecorder.cpp
diff --git a/third_party/WebKit/Source/platform/graphics/paint/CompositingRecorder.cpp b/third_party/WebKit/Source/platform/graphics/paint/CompositingRecorder.cpp
index cdcd8fd07f413cf43f16af7211cc5f8df50797f1..7eac3491469a701ff97a3110d0bd6afd24a29725 100644
--- a/third_party/WebKit/Source/platform/graphics/paint/CompositingRecorder.cpp
+++ b/third_party/WebKit/Source/platform/graphics/paint/CompositingRecorder.cpp
@@ -29,58 +29,8 @@ CompositingRecorder::CompositingRecorder(GraphicsContext& graphics_context,
CompositingRecorder::~CompositingRecorder() {
if (RuntimeEnabledFeatures::slimmingPaintV2Enabled())
return;
- // If the end of the current display list is of the form
- // [BeginCompositingDisplayItem] [DrawingDisplayItem], then fold the
- // BeginCompositingDisplayItem into a new DrawingDisplayItem that replaces
- // them both. This allows Skia to optimize for the case when the
- // BeginCompositingDisplayItem represents a simple opacity/color that can be
- // merged into the opacity/color of the drawing. See crbug.com/628831 for more
- // details.
- PaintController& paint_controller = graphics_context_.GetPaintController();
- const DisplayItem* last_display_item = paint_controller.LastDisplayItem(0);
- const DisplayItem* second_to_last_display_item =
- paint_controller.LastDisplayItem(1);
- // TODO(chrishtr): remove the call to LastDisplayItemIsSubsequenceEnd when
- // https://codereview.chromium.org/2768143002 lands.
- if (!RuntimeEnabledFeatures::slimmingPaintV2Enabled() && last_display_item &&
- second_to_last_display_item && last_display_item->DrawsContent() &&
- second_to_last_display_item->GetType() ==
- DisplayItem::kBeginCompositing &&
- !paint_controller.LastDisplayItemIsSubsequenceEnd()) {
- FloatRect cull_rect(
- ((DrawingDisplayItem*)last_display_item)->GetPaintRecord()->cullRect());
- const DisplayItemClient& display_item_client = last_display_item->Client();
- DisplayItem::Type display_item_type = last_display_item->GetType();
-
- // Re-record the last two DisplayItems into a new drawing. The new item
- // cannot be cached, because it is a mutation of the DisplayItem the client
- // thought it was painting.
- paint_controller.BeginSkippingCache();
- {
-#if DCHECK_IS_ON()
- // In the recorder's scope we remove the last two display items which
- // are combined into a new drawing.
- DisableListModificationCheck disabler;
-#endif
- DrawingRecorder new_recorder(graphics_context_, display_item_client,
- display_item_type, cull_rect);
- DCHECK(!DrawingRecorder::UseCachedDrawingIfPossible(
- graphics_context_, display_item_client, display_item_type));
-
- second_to_last_display_item->Replay(graphics_context_);
- last_display_item->Replay(graphics_context_);
- EndCompositingDisplayItem(client_).Replay(graphics_context_);
-
- // Remove the DrawingDisplayItem.
- paint_controller.RemoveLastDisplayItem();
- // Remove the BeginCompositingDisplayItem.
- paint_controller.RemoveLastDisplayItem();
- }
- paint_controller.EndSkippingCache();
- } else {
- graphics_context_.GetPaintController().EndItem<EndCompositingDisplayItem>(
- client_);
- }
+ graphics_context_.GetPaintController().EndItem<EndCompositingDisplayItem>(
+ client_);
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698