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

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

Issue 2617783002: Migrate WTF::Vector::append() to ::push_back() [part 12 of N] (Closed)
Patch Set: rebase Created 3 years, 11 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/RoundedInnerRectClipper.h" 5 #include "core/paint/RoundedInnerRectClipper.h"
6 6
7 #include "core/layout/LayoutObject.h" 7 #include "core/layout/LayoutObject.h"
8 #include "core/paint/PaintInfo.h" 8 #include "core/paint/PaintInfo.h"
9 #include "platform/graphics/paint/ClipDisplayItem.h" 9 #include "platform/graphics/paint/ClipDisplayItem.h"
10 #include "platform/graphics/paint/PaintController.h" 10 #include "platform/graphics/paint/PaintController.h"
11 11
12 namespace blink { 12 namespace blink {
13 13
14 RoundedInnerRectClipper::RoundedInnerRectClipper( 14 RoundedInnerRectClipper::RoundedInnerRectClipper(
15 const LayoutObject& layoutObject, 15 const LayoutObject& layoutObject,
16 const PaintInfo& paintInfo, 16 const PaintInfo& paintInfo,
17 const LayoutRect& rect, 17 const LayoutRect& rect,
18 const FloatRoundedRect& clipRect, 18 const FloatRoundedRect& clipRect,
19 RoundedInnerRectClipperBehavior behavior) 19 RoundedInnerRectClipperBehavior behavior)
20 : m_layoutObject(layoutObject), 20 : m_layoutObject(layoutObject),
21 m_paintInfo(paintInfo), 21 m_paintInfo(paintInfo),
22 m_usePaintController(behavior == ApplyToDisplayList), 22 m_usePaintController(behavior == ApplyToDisplayList),
23 m_clipType(m_usePaintController ? m_paintInfo.displayItemTypeForClipping() 23 m_clipType(m_usePaintController ? m_paintInfo.displayItemTypeForClipping()
24 : DisplayItem::kClipBoxPaintPhaseFirst) { 24 : DisplayItem::kClipBoxPaintPhaseFirst) {
25 Vector<FloatRoundedRect> roundedRectClips; 25 Vector<FloatRoundedRect> roundedRectClips;
26 if (clipRect.isRenderable()) { 26 if (clipRect.isRenderable()) {
27 roundedRectClips.append(clipRect); 27 roundedRectClips.push_back(clipRect);
28 } else { 28 } else {
29 // We create a rounded rect for each of the corners and clip it, while 29 // We create a rounded rect for each of the corners and clip it, while
30 // making sure we clip opposing corners together. 30 // making sure we clip opposing corners together.
31 if (!clipRect.getRadii().topLeft().isEmpty() || 31 if (!clipRect.getRadii().topLeft().isEmpty() ||
32 !clipRect.getRadii().bottomRight().isEmpty()) { 32 !clipRect.getRadii().bottomRight().isEmpty()) {
33 FloatRect topCorner(clipRect.rect().x(), clipRect.rect().y(), 33 FloatRect topCorner(clipRect.rect().x(), clipRect.rect().y(),
34 rect.maxX() - clipRect.rect().x(), 34 rect.maxX() - clipRect.rect().x(),
35 rect.maxY() - clipRect.rect().y()); 35 rect.maxY() - clipRect.rect().y());
36 FloatRoundedRect::Radii topCornerRadii; 36 FloatRoundedRect::Radii topCornerRadii;
37 topCornerRadii.setTopLeft(clipRect.getRadii().topLeft()); 37 topCornerRadii.setTopLeft(clipRect.getRadii().topLeft());
38 roundedRectClips.append(FloatRoundedRect(topCorner, topCornerRadii)); 38 roundedRectClips.push_back(FloatRoundedRect(topCorner, topCornerRadii));
39 39
40 FloatRect bottomCorner(rect.x().toFloat(), rect.y().toFloat(), 40 FloatRect bottomCorner(rect.x().toFloat(), rect.y().toFloat(),
41 clipRect.rect().maxX() - rect.x().toFloat(), 41 clipRect.rect().maxX() - rect.x().toFloat(),
42 clipRect.rect().maxY() - rect.y().toFloat()); 42 clipRect.rect().maxY() - rect.y().toFloat());
43 FloatRoundedRect::Radii bottomCornerRadii; 43 FloatRoundedRect::Radii bottomCornerRadii;
44 bottomCornerRadii.setBottomRight(clipRect.getRadii().bottomRight()); 44 bottomCornerRadii.setBottomRight(clipRect.getRadii().bottomRight());
45 roundedRectClips.append( 45 roundedRectClips.push_back(
46 FloatRoundedRect(bottomCorner, bottomCornerRadii)); 46 FloatRoundedRect(bottomCorner, bottomCornerRadii));
47 } 47 }
48 48
49 if (!clipRect.getRadii().topRight().isEmpty() || 49 if (!clipRect.getRadii().topRight().isEmpty() ||
50 !clipRect.getRadii().bottomLeft().isEmpty()) { 50 !clipRect.getRadii().bottomLeft().isEmpty()) {
51 FloatRect topCorner(rect.x().toFloat(), clipRect.rect().y(), 51 FloatRect topCorner(rect.x().toFloat(), clipRect.rect().y(),
52 clipRect.rect().maxX() - rect.x().toFloat(), 52 clipRect.rect().maxX() - rect.x().toFloat(),
53 rect.maxY() - clipRect.rect().y()); 53 rect.maxY() - clipRect.rect().y());
54 FloatRoundedRect::Radii topCornerRadii; 54 FloatRoundedRect::Radii topCornerRadii;
55 topCornerRadii.setTopRight(clipRect.getRadii().topRight()); 55 topCornerRadii.setTopRight(clipRect.getRadii().topRight());
56 roundedRectClips.append(FloatRoundedRect(topCorner, topCornerRadii)); 56 roundedRectClips.push_back(FloatRoundedRect(topCorner, topCornerRadii));
57 57
58 FloatRect bottomCorner(clipRect.rect().x(), rect.y().toFloat(), 58 FloatRect bottomCorner(clipRect.rect().x(), rect.y().toFloat(),
59 rect.maxX() - clipRect.rect().x(), 59 rect.maxX() - clipRect.rect().x(),
60 clipRect.rect().maxY() - rect.y().toFloat()); 60 clipRect.rect().maxY() - rect.y().toFloat());
61 FloatRoundedRect::Radii bottomCornerRadii; 61 FloatRoundedRect::Radii bottomCornerRadii;
62 bottomCornerRadii.setBottomLeft(clipRect.getRadii().bottomLeft()); 62 bottomCornerRadii.setBottomLeft(clipRect.getRadii().bottomLeft());
63 roundedRectClips.append( 63 roundedRectClips.push_back(
64 FloatRoundedRect(bottomCorner, bottomCornerRadii)); 64 FloatRoundedRect(bottomCorner, bottomCornerRadii));
65 } 65 }
66 } 66 }
67 67
68 if (m_usePaintController) { 68 if (m_usePaintController) {
69 m_paintInfo.context.getPaintController().createAndAppend<ClipDisplayItem>( 69 m_paintInfo.context.getPaintController().createAndAppend<ClipDisplayItem>(
70 layoutObject, m_clipType, LayoutRect::infiniteIntRect(), 70 layoutObject, m_clipType, LayoutRect::infiniteIntRect(),
71 roundedRectClips); 71 roundedRectClips);
72 } else { 72 } else {
73 ClipDisplayItem clipDisplayItem(layoutObject, m_clipType, 73 ClipDisplayItem clipDisplayItem(layoutObject, m_clipType,
74 LayoutRect::infiniteIntRect(), 74 LayoutRect::infiniteIntRect(),
75 roundedRectClips); 75 roundedRectClips);
76 clipDisplayItem.replay(paintInfo.context); 76 clipDisplayItem.replay(paintInfo.context);
77 } 77 }
78 } 78 }
79 79
80 RoundedInnerRectClipper::~RoundedInnerRectClipper() { 80 RoundedInnerRectClipper::~RoundedInnerRectClipper() {
81 DisplayItem::Type endType = DisplayItem::clipTypeToEndClipType(m_clipType); 81 DisplayItem::Type endType = DisplayItem::clipTypeToEndClipType(m_clipType);
82 if (m_usePaintController) { 82 if (m_usePaintController) {
83 m_paintInfo.context.getPaintController().endItem<EndClipDisplayItem>( 83 m_paintInfo.context.getPaintController().endItem<EndClipDisplayItem>(
84 m_layoutObject, endType); 84 m_layoutObject, endType);
85 } else { 85 } else {
86 EndClipDisplayItem endClipDisplayItem(m_layoutObject, endType); 86 EndClipDisplayItem endClipDisplayItem(m_layoutObject, endType);
87 endClipDisplayItem.replay(m_paintInfo.context); 87 endClipDisplayItem.replay(m_paintInfo.context);
88 } 88 }
89 } 89 }
90 90
91 } // namespace blink 91 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698