| OLD | NEW |
| 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 "config.h" | 5 #include "config.h" |
| 6 #include "core/paint/ViewDisplayList.h" | 6 #include "core/paint/ViewDisplayList.h" |
| 7 | 7 |
| 8 #include "core/paint/ClipRecorder.h" |
| 8 #include "core/paint/DrawingRecorder.h" | 9 #include "core/paint/DrawingRecorder.h" |
| 9 #include "core/paint/LayerClipRecorder.h" | |
| 10 #include "core/rendering/RenderView.h" | 10 #include "core/rendering/RenderView.h" |
| 11 #include "core/rendering/RenderingTestHelper.h" | 11 #include "core/rendering/RenderingTestHelper.h" |
| 12 #include "core/rendering/compositing/RenderLayerCompositor.h" | 12 #include "core/rendering/compositing/RenderLayerCompositor.h" |
| 13 #include "platform/graphics/GraphicsContext.h" | 13 #include "platform/graphics/GraphicsContext.h" |
| 14 #include <gtest/gtest.h> | 14 #include <gtest/gtest.h> |
| 15 | 15 |
| 16 namespace blink { | 16 namespace blink { |
| 17 namespace { | 17 namespace { |
| 18 | 18 |
| 19 class ViewDisplayListTest : public RenderingTest { | 19 class ViewDisplayListTest : public RenderingTest { |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 { | 57 { |
| 58 DrawingRecorder drawingRecorder(context, renderer, phase, bound); | 58 DrawingRecorder drawingRecorder(context, renderer, phase, bound); |
| 59 IntRect rect(0, 0, 10, 10); | 59 IntRect rect(0, 0, 10, 10); |
| 60 context->drawRect(rect); | 60 context->drawRect(rect); |
| 61 } | 61 } |
| 62 | 62 |
| 63 void drawClippedRect(GraphicsContext* context, RenderLayerModelObject* renderer,
PaintPhase phase, const FloatRect& bound) | 63 void drawClippedRect(GraphicsContext* context, RenderLayerModelObject* renderer,
PaintPhase phase, const FloatRect& bound) |
| 64 { | 64 { |
| 65 IntRect rect(1, 1, 9, 9); | 65 IntRect rect(1, 1, 9, 9); |
| 66 ClipRect clipRect(rect); | 66 ClipRect clipRect(rect); |
| 67 LayerClipRecorder layerClipRecorder(renderer, context, DisplayItem::ClipLaye
rForeground, clipRect, 0, LayoutPoint(), PaintLayerFlags()); | 67 ClipRecorder clipRecorder(renderer, context, DisplayItem::ClipLayerForegroun
d, clipRect, 0, LayoutPoint(), PaintLayerFlags()); |
| 68 drawRect(context, renderer, phase, bound); | 68 drawRect(context, renderer, phase, bound); |
| 69 } | 69 } |
| 70 | 70 |
| 71 TEST_F(ViewDisplayListTest, ViewDisplayListTest_NestedRecorders) | 71 TEST_F(ViewDisplayListTest, ViewDisplayListTest_NestedRecorders) |
| 72 { | 72 { |
| 73 GraphicsContext* context = new GraphicsContext(nullptr); | 73 GraphicsContext* context = new GraphicsContext(nullptr); |
| 74 FloatRect bound = renderView()->viewRect(); | 74 FloatRect bound = renderView()->viewRect(); |
| 75 | 75 |
| 76 drawClippedRect(context, renderView(), PaintPhaseForeground, bound); | 76 drawClippedRect(context, renderView(), PaintPhaseForeground, bound); |
| 77 | 77 |
| (...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 355 | 355 |
| 356 TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateClip) | 356 TEST_F(ViewDisplayListTest, ViewDisplayListTest_UpdateClip) |
| 357 { | 357 { |
| 358 setBodyInnerHTML("<div id='first'><div id='second'></div></div>"); | 358 setBodyInnerHTML("<div id='first'><div id='second'></div></div>"); |
| 359 RenderLayerModelObject* firstRenderer = toRenderLayerModelObject(document().
body()->firstChild()->renderer()); | 359 RenderLayerModelObject* firstRenderer = toRenderLayerModelObject(document().
body()->firstChild()->renderer()); |
| 360 RenderLayerModelObject* secondRenderer = toRenderLayerModelObject(document()
.body()->firstChild()->firstChild()->renderer()); | 360 RenderLayerModelObject* secondRenderer = toRenderLayerModelObject(document()
.body()->firstChild()->firstChild()->renderer()); |
| 361 GraphicsContext* context = new GraphicsContext(nullptr); | 361 GraphicsContext* context = new GraphicsContext(nullptr); |
| 362 | 362 |
| 363 ClipRect firstClipRect(IntRect(1, 1, 2, 2)); | 363 ClipRect firstClipRect(IntRect(1, 1, 2, 2)); |
| 364 { | 364 { |
| 365 LayerClipRecorder layerClipRecorder(firstRenderer, context, DisplayItem:
:ClipLayerForeground, firstClipRect, 0, LayoutPoint(), PaintLayerFlags()); | 365 ClipRecorder clipRecorder(firstRenderer, context, DisplayItem::ClipLayer
Foreground, firstClipRect, 0, LayoutPoint(), PaintLayerFlags()); |
| 366 drawRect(context, firstRenderer, PaintPhaseBlockBackground, FloatRect(10
0, 100, 150, 150)); | 366 drawRect(context, firstRenderer, PaintPhaseBlockBackground, FloatRect(10
0, 100, 150, 150)); |
| 367 drawRect(context, secondRenderer, PaintPhaseBlockBackground, FloatRect(1
00, 100, 150, 150)); | 367 drawRect(context, secondRenderer, PaintPhaseBlockBackground, FloatRect(1
00, 100, 150, 150)); |
| 368 } | 368 } |
| 369 | 369 |
| 370 EXPECT_DISPLAY_LIST(renderView()->viewDisplayList().paintList(), 4, | 370 EXPECT_DISPLAY_LIST(renderView()->viewDisplayList().paintList(), 4, |
| 371 TestDisplayItem(firstRenderer, DisplayItem::ClipLayerForeground), | 371 TestDisplayItem(firstRenderer, DisplayItem::ClipLayerForeground), |
| 372 TestDisplayItem(firstRenderer, DisplayItem::DrawingPaintPhaseBlockBackgr
ound), | 372 TestDisplayItem(firstRenderer, DisplayItem::DrawingPaintPhaseBlockBackgr
ound), |
| 373 TestDisplayItem(secondRenderer, DisplayItem::DrawingPaintPhaseBlockBackg
round), | 373 TestDisplayItem(secondRenderer, DisplayItem::DrawingPaintPhaseBlockBackg
round), |
| 374 TestDisplayItem(firstRenderer, DisplayItem::EndClip)); | 374 TestDisplayItem(firstRenderer, DisplayItem::EndClip)); |
| 375 | 375 |
| 376 renderView()->viewDisplayList().invalidate(firstRenderer); | 376 renderView()->viewDisplayList().invalidate(firstRenderer); |
| 377 drawRect(context, firstRenderer, PaintPhaseBlockBackground, FloatRect(100, 1
00, 150, 150)); | 377 drawRect(context, firstRenderer, PaintPhaseBlockBackground, FloatRect(100, 1
00, 150, 150)); |
| 378 drawRect(context, secondRenderer, PaintPhaseBlockBackground, FloatRect(100,
100, 150, 150)); | 378 drawRect(context, secondRenderer, PaintPhaseBlockBackground, FloatRect(100,
100, 150, 150)); |
| 379 | 379 |
| 380 EXPECT_DISPLAY_LIST(renderView()->viewDisplayList().paintList(), 2, | 380 EXPECT_DISPLAY_LIST(renderView()->viewDisplayList().paintList(), 2, |
| 381 TestDisplayItem(firstRenderer, DisplayItem::DrawingPaintPhaseBlockBackgr
ound), | 381 TestDisplayItem(firstRenderer, DisplayItem::DrawingPaintPhaseBlockBackgr
ound), |
| 382 TestDisplayItem(secondRenderer, DisplayItem::DrawingPaintPhaseBlockBackg
round)); | 382 TestDisplayItem(secondRenderer, DisplayItem::DrawingPaintPhaseBlockBackg
round)); |
| 383 | 383 |
| 384 renderView()->viewDisplayList().invalidate(secondRenderer); | 384 renderView()->viewDisplayList().invalidate(secondRenderer); |
| 385 drawRect(context, firstRenderer, PaintPhaseBlockBackground, FloatRect(100, 1
00, 150, 150)); | 385 drawRect(context, firstRenderer, PaintPhaseBlockBackground, FloatRect(100, 1
00, 150, 150)); |
| 386 ClipRect secondClipRect(IntRect(1, 1, 2, 2)); | 386 ClipRect secondClipRect(IntRect(1, 1, 2, 2)); |
| 387 { | 387 { |
| 388 LayerClipRecorder layerClipRecorder(secondRenderer, context, DisplayItem
::ClipLayerForeground, secondClipRect, 0, LayoutPoint(), PaintLayerFlags()); | 388 ClipRecorder clipRecorder(secondRenderer, context, DisplayItem::ClipLaye
rForeground, secondClipRect, 0, LayoutPoint(), PaintLayerFlags()); |
| 389 drawRect(context, secondRenderer, PaintPhaseBlockBackground, FloatRect(1
00, 100, 150, 150)); | 389 drawRect(context, secondRenderer, PaintPhaseBlockBackground, FloatRect(1
00, 100, 150, 150)); |
| 390 } | 390 } |
| 391 | 391 |
| 392 EXPECT_DISPLAY_LIST(renderView()->viewDisplayList().paintList(), 4, | 392 EXPECT_DISPLAY_LIST(renderView()->viewDisplayList().paintList(), 4, |
| 393 TestDisplayItem(firstRenderer, DisplayItem::DrawingPaintPhaseBlockBackgr
ound), | 393 TestDisplayItem(firstRenderer, DisplayItem::DrawingPaintPhaseBlockBackgr
ound), |
| 394 TestDisplayItem(secondRenderer, DisplayItem::ClipLayerForeground), | 394 TestDisplayItem(secondRenderer, DisplayItem::ClipLayerForeground), |
| 395 TestDisplayItem(secondRenderer, DisplayItem::DrawingPaintPhaseBlockBackg
round), | 395 TestDisplayItem(secondRenderer, DisplayItem::DrawingPaintPhaseBlockBackg
round), |
| 396 TestDisplayItem(secondRenderer, DisplayItem::EndClip)); | 396 TestDisplayItem(secondRenderer, DisplayItem::EndClip)); |
| 397 } | 397 } |
| 398 | 398 |
| 399 } // anonymous namespace | 399 } // anonymous namespace |
| 400 } // namespace blink | 400 } // namespace blink |
| OLD | NEW |