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

Side by Side Diff: third_party/WebKit/Source/core/paint/ViewPainter.cpp

Issue 2842983002: [LayoutNG] Paint inlines from the fragment tree
Patch Set: Basic box painting support Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/paint/ViewPainter.h" 5 #include "core/paint/ViewPainter.h"
6 6
7 #include "core/frame/FrameView.h" 7 #include "core/frame/FrameView.h"
8 #include "core/frame/Settings.h" 8 #include "core/frame/Settings.h"
9 #include "core/layout/LayoutBox.h" 9 #include "core/layout/LayoutBox.h"
10 #include "core/layout/LayoutView.h" 10 #include "core/layout/LayoutView.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 } else if (should_clear_canvas) { 156 } else if (should_clear_canvas) {
157 context.FillRect(background_rect, Color(), SkBlendMode::kClear); 157 context.FillRect(background_rect, Color(), SkBlendMode::kClear);
158 } 158 }
159 return; 159 return;
160 } 160 }
161 161
162 BoxPainter::FillLayerOcclusionOutputList reversed_paint_list; 162 BoxPainter::FillLayerOcclusionOutputList reversed_paint_list;
163 bool should_draw_background_in_separate_buffer = 163 bool should_draw_background_in_separate_buffer =
164 BoxPainter(layout_view_) 164 BoxPainter(layout_view_)
165 .CalculateFillLayerOcclusionCulling( 165 .CalculateFillLayerOcclusionCulling(
166 reversed_paint_list, layout_view_.Style()->BackgroundLayers()); 166 reversed_paint_list, layout_view_.Style()->BackgroundLayers(),
167 layout_view_.GetDocument(), layout_view_.StyleRef());
167 DCHECK(reversed_paint_list.size()); 168 DCHECK(reversed_paint_list.size());
168 169
169 // If the root background color is opaque, isolation group can be skipped 170 // If the root background color is opaque, isolation group can be skipped
170 // because the canvas 171 // because the canvas
171 // will be cleared by root background color. 172 // will be cleared by root background color.
172 if (!root_background_color.HasAlpha()) 173 if (!root_background_color.HasAlpha())
173 should_draw_background_in_separate_buffer = false; 174 should_draw_background_in_separate_buffer = false;
174 175
175 // We are going to clear the canvas with transparent pixels, isolation group 176 // We are going to clear the canvas with transparent pixels, isolation group
176 // can be skipped. 177 // can be skipped.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 LayoutRect(paint_rect), kBackgroundBleedNone); 228 LayoutRect(paint_rect), kBackgroundBleedNone);
228 context.Restore(); 229 context.Restore();
229 } 230 }
230 } 231 }
231 232
232 if (should_draw_background_in_separate_buffer) 233 if (should_draw_background_in_separate_buffer)
233 context.EndLayer(); 234 context.EndLayer();
234 } 235 }
235 236
236 } // namespace blink 237 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698