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/BoxPainter.h" | 6 #include "core/paint/BoxPainter.h" |
7 | 7 |
8 #include "core/HTMLNames.h" | 8 #include "core/HTMLNames.h" |
9 #include "core/frame/Settings.h" | 9 #include "core/frame/Settings.h" |
10 #include "core/html/HTMLFrameOwnerElement.h" | 10 #include "core/html/HTMLFrameOwnerElement.h" |
(...skipping 2092 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2103 quad[2].x(), | 2103 quad[2].x(), |
2104 quad[2].y() - innerBorder.radii().bottomRight().height()), | 2104 quad[2].y() - innerBorder.radii().bottomRight().height()), |
2105 quad[2]); | 2105 quad[2]); |
2106 } | 2106 } |
2107 break; | 2107 break; |
2108 } | 2108 } |
2109 | 2109 |
2110 // If the border matches both of its adjacent sides, don't anti-alias the cl
ip, and | 2110 // If the border matches both of its adjacent sides, don't anti-alias the cl
ip, and |
2111 // if neither side matches, anti-alias the clip. | 2111 // if neither side matches, anti-alias the clip. |
2112 if (firstEdgeMatches == secondEdgeMatches) { | 2112 if (firstEdgeMatches == secondEdgeMatches) { |
2113 graphicsContext->clipConvexPolygon(4, quad, !firstEdgeMatches); | 2113 graphicsContext->clipPolygon(4, quad, !firstEdgeMatches); |
2114 return; | 2114 return; |
2115 } | 2115 } |
2116 | 2116 |
2117 // If antialiasing settings for the first edge and second edge is different, | 2117 // If antialiasing settings for the first edge and second edge is different, |
2118 // they have to be addressed separately. We do this by breaking the quad int
o | 2118 // they have to be addressed separately. We do this by breaking the quad int
o |
2119 // two parallelograms, made by moving quad[1] and quad[2]. | 2119 // two parallelograms, made by moving quad[1] and quad[2]. |
2120 float ax = quad[1].x() - quad[0].x(); | 2120 float ax = quad[1].x() - quad[0].x(); |
2121 float ay = quad[1].y() - quad[0].y(); | 2121 float ay = quad[1].y() - quad[0].y(); |
2122 float bx = quad[2].x() - quad[1].x(); | 2122 float bx = quad[2].x() - quad[1].x(); |
2123 float by = quad[2].y() - quad[1].y(); | 2123 float by = quad[2].y() - quad[1].y(); |
(...skipping 11 matching lines...) Expand all Loading... |
2135 | 2135 |
2136 r1 = (-ax * by + ay * bx) / (cx * by - cy * bx) + kExtendFill; | 2136 r1 = (-ax * by + ay * bx) / (cx * by - cy * bx) + kExtendFill; |
2137 r2 = (-cx * by + cy * bx) / (ax * by - ay * bx) + kExtendFill; | 2137 r2 = (-cx * by + cy * bx) / (ax * by - ay * bx) + kExtendFill; |
2138 } | 2138 } |
2139 | 2139 |
2140 FloatPoint firstQuad[4]; | 2140 FloatPoint firstQuad[4]; |
2141 firstQuad[0] = quad[0]; | 2141 firstQuad[0] = quad[0]; |
2142 firstQuad[1] = quad[1]; | 2142 firstQuad[1] = quad[1]; |
2143 firstQuad[2] = FloatPoint(quad[3].x() + r2 * ax, quad[3].y() + r2 * ay); | 2143 firstQuad[2] = FloatPoint(quad[3].x() + r2 * ax, quad[3].y() + r2 * ay); |
2144 firstQuad[3] = quad[3]; | 2144 firstQuad[3] = quad[3]; |
2145 graphicsContext->clipConvexPolygon(4, firstQuad, !firstEdgeMatches); | 2145 graphicsContext->clipPolygon(4, firstQuad, !firstEdgeMatches); |
2146 | 2146 |
2147 FloatPoint secondQuad[4]; | 2147 FloatPoint secondQuad[4]; |
2148 secondQuad[0] = quad[0]; | 2148 secondQuad[0] = quad[0]; |
2149 secondQuad[1] = FloatPoint(quad[0].x() - r1 * cx, quad[0].y() - r1 * cy); | 2149 secondQuad[1] = FloatPoint(quad[0].x() - r1 * cx, quad[0].y() - r1 * cy); |
2150 secondQuad[2] = quad[2]; | 2150 secondQuad[2] = quad[2]; |
2151 secondQuad[3] = quad[3]; | 2151 secondQuad[3] = quad[3]; |
2152 graphicsContext->clipConvexPolygon(4, secondQuad, !secondEdgeMatches); | 2152 graphicsContext->clipPolygon(4, secondQuad, !secondEdgeMatches); |
2153 } | 2153 } |
2154 | 2154 |
2155 } // namespace blink | 2155 } // namespace blink |
OLD | NEW |