| OLD | NEW |
| 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/NinePieceImageGrid.h" | 5 #include "core/paint/NinePieceImageGrid.h" |
| 6 | 6 |
| 7 #include "core/style/ComputedStyle.h" | 7 #include "core/style/ComputedStyle.h" |
| 8 #include "core/style/NinePieceImage.h" | 8 #include "core/style/NinePieceImage.h" |
| 9 #include "platform/LengthFunctions.h" | 9 #include "platform/LengthFunctions.h" |
| 10 #include "platform/geometry/FloatSize.h" | 10 #include "platform/geometry/FloatSize.h" |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 if (drawInfo.isDrawable) { | 175 if (drawInfo.isDrawable) { |
| 176 drawInfo.source = source; | 176 drawInfo.source = source; |
| 177 drawInfo.destination = destination; | 177 drawInfo.destination = destination; |
| 178 drawInfo.tileScale = FloatSize(edge.scale(), edge.scale()); | 178 drawInfo.tileScale = FloatSize(edge.scale(), edge.scale()); |
| 179 drawInfo.tileRule = {Image::StretchTile, tileRule}; | 179 drawInfo.tileRule = {Image::StretchTile, tileRule}; |
| 180 } | 180 } |
| 181 } | 181 } |
| 182 | 182 |
| 183 void NinePieceImageGrid::setDrawInfoEdge(NinePieceDrawInfo& drawInfo, | 183 void NinePieceImageGrid::setDrawInfoEdge(NinePieceDrawInfo& drawInfo, |
| 184 NinePiece piece) const { | 184 NinePiece piece) const { |
| 185 IntSize edgeSourceSize = m_imageSize - IntSize(m_left.slice + m_right.slice, | 185 IntSize edgeSourceSize = |
| 186 m_top.slice + m_bottom.slice); | 186 m_imageSize - |
| 187 IntSize(m_left.slice + m_right.slice, m_top.slice + m_bottom.slice); |
| 187 IntSize edgeDestinationSize = | 188 IntSize edgeDestinationSize = |
| 188 m_borderImageArea.size() - | 189 m_borderImageArea.size() - |
| 189 IntSize(m_left.width + m_right.width, m_top.width + m_bottom.width); | 190 IntSize(m_left.width + m_right.width, m_top.width + m_bottom.width); |
| 190 | 191 |
| 191 switch (piece) { | 192 switch (piece) { |
| 192 case LeftPiece: | 193 case LeftPiece: |
| 193 setVerticalEdge(drawInfo, m_left, | 194 setVerticalEdge(drawInfo, m_left, |
| 194 subrect(m_imageSize, 0, m_top.slice, m_left.slice, | 195 subrect(m_imageSize, 0, m_top.slice, m_left.slice, |
| 195 edgeSourceSize.height()), | 196 edgeSourceSize.height()), |
| 196 subrect(m_borderImageArea, 0, m_top.width, m_left.width, | 197 subrect(m_borderImageArea, 0, m_top.width, m_left.width, |
| (...skipping 25 matching lines...) Expand all Loading... |
| 222 edgeDestinationSize.width(), m_bottom.width), | 223 edgeDestinationSize.width(), m_bottom.width), |
| 223 m_horizontalTileRule); | 224 m_horizontalTileRule); |
| 224 break; | 225 break; |
| 225 default: | 226 default: |
| 226 ASSERT_NOT_REACHED(); | 227 ASSERT_NOT_REACHED(); |
| 227 break; | 228 break; |
| 228 } | 229 } |
| 229 } | 230 } |
| 230 | 231 |
| 231 void NinePieceImageGrid::setDrawInfoMiddle(NinePieceDrawInfo& drawInfo) const { | 232 void NinePieceImageGrid::setDrawInfoMiddle(NinePieceDrawInfo& drawInfo) const { |
| 232 IntSize sourceSize = m_imageSize - IntSize(m_left.slice + m_right.slice, | 233 IntSize sourceSize = |
| 233 m_top.slice + m_bottom.slice); | 234 m_imageSize - |
| 235 IntSize(m_left.slice + m_right.slice, m_top.slice + m_bottom.slice); |
| 234 IntSize destinationSize = | 236 IntSize destinationSize = |
| 235 m_borderImageArea.size() - | 237 m_borderImageArea.size() - |
| 236 IntSize(m_left.width + m_right.width, m_top.width + m_bottom.width); | 238 IntSize(m_left.width + m_right.width, m_top.width + m_bottom.width); |
| 237 | 239 |
| 238 drawInfo.isDrawable = | 240 drawInfo.isDrawable = |
| 239 m_fill && !sourceSize.isEmpty() && !destinationSize.isEmpty(); | 241 m_fill && !sourceSize.isEmpty() && !destinationSize.isEmpty(); |
| 240 if (!drawInfo.isDrawable) | 242 if (!drawInfo.isDrawable) |
| 241 return; | 243 return; |
| 242 | 244 |
| 243 drawInfo.source = subrect(m_imageSize, m_left.slice, m_top.slice, | 245 drawInfo.source = subrect(m_imageSize, m_left.slice, m_top.slice, |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 drawInfo.source.scale(imageScaleFactor); | 302 drawInfo.source.scale(imageScaleFactor); |
| 301 | 303 |
| 302 // Compensate for source scaling by scaling down the individual tiles. | 304 // Compensate for source scaling by scaling down the individual tiles. |
| 303 drawInfo.tileScale.scale(1 / imageScaleFactor); | 305 drawInfo.tileScale.scale(1 / imageScaleFactor); |
| 304 } | 306 } |
| 305 | 307 |
| 306 return drawInfo; | 308 return drawInfo; |
| 307 } | 309 } |
| 308 | 310 |
| 309 } // namespace blink | 311 } // namespace blink |
| OLD | NEW |