| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. | 2 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above | 8 * 1. Redistributions of source code must retain the above |
| 9 * copyright notice, this list of conditions and the following | 9 * copyright notice, this list of conditions and the following |
| 10 * disclaimer. | 10 * disclaimer. |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 | 248 |
| 249 return result.release(); | 249 return result.release(); |
| 250 } | 250 } |
| 251 | 251 |
| 252 const RasterShapeIntervals& RasterShape::marginIntervals() const | 252 const RasterShapeIntervals& RasterShape::marginIntervals() const |
| 253 { | 253 { |
| 254 ASSERT(shapeMargin() >= 0); | 254 ASSERT(shapeMargin() >= 0); |
| 255 if (!shapeMargin()) | 255 if (!shapeMargin()) |
| 256 return *m_intervals; | 256 return *m_intervals; |
| 257 | 257 |
| 258 int shapeMarginInt = clampToPositiveInteger(ceil(shapeMargin())); | 258 int marginBoundaryRadius = std::min(clampToInteger(ceil(shapeMargin())), std
::max(m_imageSize.width(), m_imageSize.height())); |
| 259 int maxShapeMarginInt = std::max(m_marginRectSize.width(), m_marginRectSize.
height()) * sqrt(2); | 259 if (!m_marginIntervals) { |
| 260 if (!m_marginIntervals) | 260 ASSERT(marginBoundaryRadius >= 0); |
| 261 m_marginIntervals = m_intervals->computeShapeMarginIntervals(std::min(sh
apeMarginInt, maxShapeMarginInt)); | 261 m_marginIntervals = m_intervals->computeShapeMarginIntervals(marginBound
aryRadius); |
| 262 } |
| 262 | 263 |
| 263 return *m_marginIntervals; | 264 return *m_marginIntervals; |
| 264 } | 265 } |
| 265 | 266 |
| 266 const RasterShapeIntervals& RasterShape::paddingIntervals() const | 267 const RasterShapeIntervals& RasterShape::paddingIntervals() const |
| 267 { | 268 { |
| 268 ASSERT(shapePadding() >= 0); | 269 ASSERT(shapePadding() >= 0); |
| 269 if (!shapePadding()) | 270 if (!shapePadding()) |
| 270 return *m_intervals; | 271 return *m_intervals; |
| 271 | 272 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 bool RasterShape::firstIncludedIntervalLogicalTop(LayoutUnit minLogicalIntervalT
op, const FloatSize& minLogicalIntervalSize, LayoutUnit& result) const | 305 bool RasterShape::firstIncludedIntervalLogicalTop(LayoutUnit minLogicalIntervalT
op, const FloatSize& minLogicalIntervalSize, LayoutUnit& result) const |
| 305 { | 306 { |
| 306 const RasterShapeIntervals& intervals = paddingIntervals(); | 307 const RasterShapeIntervals& intervals = paddingIntervals(); |
| 307 if (intervals.isEmpty()) | 308 if (intervals.isEmpty()) |
| 308 return false; | 309 return false; |
| 309 | 310 |
| 310 return intervals.firstIncludedIntervalY(minLogicalIntervalTop.floor(), floor
edIntSize(minLogicalIntervalSize), result); | 311 return intervals.firstIncludedIntervalY(minLogicalIntervalTop.floor(), floor
edIntSize(minLogicalIntervalSize), result); |
| 311 } | 312 } |
| 312 | 313 |
| 313 } // namespace WebCore | 314 } // namespace WebCore |
| OLD | NEW |