| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 | 6 |
| 7 #include "CCRendererSoftware.h" | 7 #include "CCRendererSoftware.h" |
| 8 | 8 |
| 9 #include "CCDebugBorderDrawQuad.h" | 9 #include "CCDebugBorderDrawQuad.h" |
| 10 #include "CCSolidColorDrawQuad.h" | 10 #include "CCSolidColorDrawQuad.h" |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 m_skCurrentCanvas->drawRect(toSkRect(quadVertexRect()), m_skCurrentPaint); | 220 m_skCurrentCanvas->drawRect(toSkRect(quadVertexRect()), m_skCurrentPaint); |
| 221 } | 221 } |
| 222 | 222 |
| 223 void CCRendererSoftware::drawTextureQuad(const DrawingFrame& frame, const CCText
ureDrawQuad* quad) | 223 void CCRendererSoftware::drawTextureQuad(const DrawingFrame& frame, const CCText
ureDrawQuad* quad) |
| 224 { | 224 { |
| 225 if (!isSoftwareResource(quad->resourceId())) { | 225 if (!isSoftwareResource(quad->resourceId())) { |
| 226 drawUnsupportedQuad(frame, quad); | 226 drawUnsupportedQuad(frame, quad); |
| 227 return; | 227 return; |
| 228 } | 228 } |
| 229 | 229 |
| 230 IntRect quadRect = quad->quadRect(); |
| 231 |
| 230 // FIXME: Add support for non-premultiplied alpha. | 232 // FIXME: Add support for non-premultiplied alpha. |
| 231 CCResourceProvider::ScopedReadLockSoftware quadResourceLock(m_resourceProvid
er, quad->resourceId()); | 233 CCResourceProvider::ScopedReadLockSoftware quadResourceLock(m_resourceProvid
er, quad->resourceId()); |
| 232 FloatRect uvRect = quad->uvRect(); | 234 FloatRect uvRect = quad->uvRect(); |
| 233 uvRect.scale(quad->quadRect().width(), quad->quadRect().height()); | 235 uvRect.scale(quadRect.width(), quadRect.height()); |
| 234 SkIRect skUvRect = toSkIRect(enclosingIntRect(uvRect)); | 236 SkIRect skUvRect = toSkIRect(enclosingIntRect(uvRect)); |
| 235 if (quad->flipped()) | 237 if (quad->flipped()) |
| 236 m_skCurrentCanvas->scale(1, -1); | 238 m_skCurrentCanvas->scale(1, -1); |
| 237 m_skCurrentCanvas->drawBitmapRect(*quadResourceLock.skBitmap(), &skUvRect, t
oSkRect(quadVertexRect()), &m_skCurrentPaint); | 239 m_skCurrentCanvas->drawBitmapRect(*quadResourceLock.skBitmap(), &skUvRect, t
oSkRect(quadVertexRect()), &m_skCurrentPaint); |
| 238 } | 240 } |
| 239 | 241 |
| 240 void CCRendererSoftware::drawTileQuad(const DrawingFrame& frame, const CCTileDra
wQuad* quad) | 242 void CCRendererSoftware::drawTileQuad(const DrawingFrame& frame, const CCTileDra
wQuad* quad) |
| 241 { | 243 { |
| 242 ASSERT(isSoftwareResource(quad->resourceId())); | 244 ASSERT(isSoftwareResource(quad->resourceId())); |
| 243 CCResourceProvider::ScopedReadLockSoftware quadResourceLock(m_resourceProvid
er, quad->resourceId()); | 245 CCResourceProvider::ScopedReadLockSoftware quadResourceLock(m_resourceProvid
er, quad->resourceId()); |
| 244 | 246 |
| 245 SkIRect uvRect = toSkIRect(IntRect(quad->textureOffset(), quad->quadRect().s
ize())); | 247 SkIRect uvRect = toSkIRect(IntRect(quad->textureOffset(), static_cast<IntRec
t>(quad->quadRect()).size())); |
| 246 m_skCurrentCanvas->drawBitmapRect(*quadResourceLock.skBitmap(), &uvRect, toS
kRect(quadVertexRect()), &m_skCurrentPaint); | 248 m_skCurrentCanvas->drawBitmapRect(*quadResourceLock.skBitmap(), &uvRect, toS
kRect(quadVertexRect()), &m_skCurrentPaint); |
| 247 } | 249 } |
| 248 | 250 |
| 249 void CCRendererSoftware::drawUnsupportedQuad(const DrawingFrame& frame, const CC
DrawQuad* quad) | 251 void CCRendererSoftware::drawUnsupportedQuad(const DrawingFrame& frame, const CC
DrawQuad* quad) |
| 250 { | 252 { |
| 251 m_skCurrentPaint.setColor(SK_ColorMAGENTA); | 253 m_skCurrentPaint.setColor(SK_ColorMAGENTA); |
| 252 m_skCurrentPaint.setAlpha(quad->opacity() * 255); | 254 m_skCurrentPaint.setAlpha(quad->opacity() * 255); |
| 253 m_skCurrentCanvas->drawRect(toSkRect(quadVertexRect()), m_skCurrentPaint); | 255 m_skCurrentCanvas->drawRect(toSkRect(quadVertexRect()), m_skCurrentPaint); |
| 254 } | 256 } |
| 255 | 257 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 271 } | 273 } |
| 272 | 274 |
| 273 void CCRendererSoftware::setVisible(bool visible) | 275 void CCRendererSoftware::setVisible(bool visible) |
| 274 { | 276 { |
| 275 if (m_visible == visible) | 277 if (m_visible == visible) |
| 276 return; | 278 return; |
| 277 m_visible = visible; | 279 m_visible = visible; |
| 278 } | 280 } |
| 279 | 281 |
| 280 } | 282 } |
| OLD | NEW |