| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "platform/testing/TestPaintArtifact.h" | 5 #include "platform/testing/TestPaintArtifact.h" |
| 6 | 6 |
| 7 #include "cc/layers/layer.h" | 7 #include "cc/layers/layer.h" |
| 8 #include "platform/graphics/paint/DisplayItemClient.h" | 8 #include "platform/graphics/paint/DisplayItemClient.h" |
| 9 #include "platform/graphics/paint/DrawingDisplayItem.h" | 9 #include "platform/graphics/paint/DrawingDisplayItem.h" |
| 10 #include "platform/graphics/paint/ForeignLayerDisplayItem.h" | 10 #include "platform/graphics/paint/ForeignLayerDisplayItem.h" |
| 11 #include "platform/graphics/paint/PaintArtifact.h" | 11 #include "platform/graphics/paint/PaintArtifact.h" |
| 12 #include "platform/graphics/skia/SkiaUtils.h" | 12 #include "platform/graphics/skia/SkiaUtils.h" |
| 13 #include "third_party/skia/include/core/SkPaint.h" | 13 #include "third_party/skia/include/core/SkPaint.h" |
| 14 #include "third_party/skia/include/core/SkPicture.h" | 14 #include "third_party/skia/include/core/SkPicture.h" |
| 15 #include "third_party/skia/include/core/SkPictureRecorder.h" | 15 #include "third_party/skia/include/core/SkPictureRecorder.h" |
| 16 #include "wtf/Assertions.h" | 16 #include "wtf/Assertions.h" |
| 17 #include "wtf/PtrUtil.h" | |
| 18 #include <memory> | |
| 19 | 17 |
| 20 namespace blink { | 18 namespace blink { |
| 21 | 19 |
| 22 class TestPaintArtifact::DummyRectClient : public DisplayItemClient { | 20 class TestPaintArtifact::DummyRectClient : public DisplayItemClient { |
| 23 USING_FAST_MALLOC(DummyRectClient); | 21 USING_FAST_MALLOC(DummyRectClient); |
| 24 public: | 22 public: |
| 25 DummyRectClient(const FloatRect& rect, Color color) : m_rect(rect), m_color(
color) {} | 23 DummyRectClient(const FloatRect& rect, Color color) : m_rect(rect), m_color(
color) {} |
| 26 String debugName() const final { return "<dummy>"; } | 24 String debugName() const final { return "<dummy>"; } |
| 27 LayoutRect visualRect() const final { return enclosingLayoutRect(m_rect); } | 25 LayoutRect visualRect() const final { return enclosingLayoutRect(m_rect); } |
| 28 PassRefPtr<SkPicture> makePicture() const; | 26 PassRefPtr<SkPicture> makePicture() const; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 m_paintChunks.last().endIndex = m_displayItemList.size(); | 67 m_paintChunks.last().endIndex = m_displayItemList.size(); |
| 70 PaintChunk chunk; | 68 PaintChunk chunk; |
| 71 chunk.beginIndex = m_displayItemList.size(); | 69 chunk.beginIndex = m_displayItemList.size(); |
| 72 chunk.properties = properties; | 70 chunk.properties = properties; |
| 73 m_paintChunks.append(chunk); | 71 m_paintChunks.append(chunk); |
| 74 return *this; | 72 return *this; |
| 75 } | 73 } |
| 76 | 74 |
| 77 TestPaintArtifact& TestPaintArtifact::rectDrawing(const FloatRect& bounds, Color
color) | 75 TestPaintArtifact& TestPaintArtifact::rectDrawing(const FloatRect& bounds, Color
color) |
| 78 { | 76 { |
| 79 std::unique_ptr<DummyRectClient> client = wrapUnique(new DummyRectClient(bou
nds, color)); | 77 OwnPtr<DummyRectClient> client = adoptPtr(new DummyRectClient(bounds, color)
); |
| 80 m_displayItemList.allocateAndConstruct<DrawingDisplayItem>( | 78 m_displayItemList.allocateAndConstruct<DrawingDisplayItem>( |
| 81 *client, DisplayItem::DrawingFirst, client->makePicture()); | 79 *client, DisplayItem::DrawingFirst, client->makePicture()); |
| 82 m_dummyClients.append(std::move(client)); | 80 m_dummyClients.append(std::move(client)); |
| 83 return *this; | 81 return *this; |
| 84 } | 82 } |
| 85 | 83 |
| 86 TestPaintArtifact& TestPaintArtifact::foreignLayer(const FloatPoint& location, c
onst IntSize& size, scoped_refptr<cc::Layer> layer) | 84 TestPaintArtifact& TestPaintArtifact::foreignLayer(const FloatPoint& location, c
onst IntSize& size, scoped_refptr<cc::Layer> layer) |
| 87 { | 85 { |
| 88 FloatRect floatBounds(location, FloatSize(size)); | 86 FloatRect floatBounds(location, FloatSize(size)); |
| 89 std::unique_ptr<DummyRectClient> client = wrapUnique(new DummyRectClient(flo
atBounds, Color::transparent)); | 87 OwnPtr<DummyRectClient> client = adoptPtr(new DummyRectClient(floatBounds, C
olor::transparent)); |
| 90 m_displayItemList.allocateAndConstruct<ForeignLayerDisplayItem>( | 88 m_displayItemList.allocateAndConstruct<ForeignLayerDisplayItem>( |
| 91 *client, DisplayItem::ForeignLayerFirst, std::move(layer), location, siz
e); | 89 *client, DisplayItem::ForeignLayerFirst, std::move(layer), location, siz
e); |
| 92 m_dummyClients.append(std::move(client)); | 90 m_dummyClients.append(std::move(client)); |
| 93 return *this; | 91 return *this; |
| 94 } | 92 } |
| 95 | 93 |
| 96 const PaintArtifact& TestPaintArtifact::build() | 94 const PaintArtifact& TestPaintArtifact::build() |
| 97 { | 95 { |
| 98 if (m_built) | 96 if (m_built) |
| 99 return m_paintArtifact; | 97 return m_paintArtifact; |
| 100 | 98 |
| 101 if (!m_paintChunks.isEmpty()) | 99 if (!m_paintChunks.isEmpty()) |
| 102 m_paintChunks.last().endIndex = m_displayItemList.size(); | 100 m_paintChunks.last().endIndex = m_displayItemList.size(); |
| 103 m_paintArtifact = PaintArtifact(std::move(m_displayItemList), std::move(m_pa
intChunks), true); | 101 m_paintArtifact = PaintArtifact(std::move(m_displayItemList), std::move(m_pa
intChunks), true); |
| 104 m_built = true; | 102 m_built = true; |
| 105 return m_paintArtifact; | 103 return m_paintArtifact; |
| 106 } | 104 } |
| 107 | 105 |
| 108 } // namespace blink | 106 } // namespace blink |
| OLD | NEW |