| 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 "cc/software_renderer.h" | 5 #include "cc/software_renderer.h" |
| 6 | 6 |
| 7 #include <public/WebImage.h> | 7 #include <public/WebImage.h> |
| 8 | 8 |
| 9 #include "base/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
| 10 #include "cc/debug_border_draw_quad.h" | 10 #include "cc/debug_border_draw_quad.h" |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 279 gfx::RectFToSkRect(quadVertexRect())
, | 279 gfx::RectFToSkRect(quadVertexRect())
, |
| 280 &m_skCurrentPaint); | 280 &m_skCurrentPaint); |
| 281 } | 281 } |
| 282 | 282 |
| 283 void SoftwareRenderer::drawRenderPassQuad(const DrawingFrame& frame, const Rende
rPassDrawQuad* quad) | 283 void SoftwareRenderer::drawRenderPassQuad(const DrawingFrame& frame, const Rende
rPassDrawQuad* quad) |
| 284 { | 284 { |
| 285 CachedResource* contentTexture = m_renderPassTextures.get(quad->render_pass_
id); | 285 CachedResource* contentTexture = m_renderPassTextures.get(quad->render_pass_
id); |
| 286 if (!contentTexture || !contentTexture->id()) | 286 if (!contentTexture || !contentTexture->id()) |
| 287 return; | 287 return; |
| 288 | 288 |
| 289 const RenderPass* renderPass = frame.renderPassesById->get(quad->render_pass
_id); | |
| 290 DCHECK(renderPass); | |
| 291 if (!renderPass) | |
| 292 return; | |
| 293 | |
| 294 DCHECK(isSoftwareResource(contentTexture->id())); | 289 DCHECK(isSoftwareResource(contentTexture->id())); |
| 295 ResourceProvider::ScopedReadLockSoftware lock(m_resourceProvider, contentTex
ture->id()); | 290 ResourceProvider::ScopedReadLockSoftware lock(m_resourceProvider, contentTex
ture->id()); |
| 296 | 291 |
| 297 SkRect destRect = gfx::RectFToSkRect(quadVertexRect()); | 292 SkRect destRect = gfx::RectFToSkRect(quadVertexRect()); |
| 298 | 293 |
| 299 const SkBitmap* content = lock.skBitmap(); | 294 const SkBitmap* content = lock.skBitmap(); |
| 300 | 295 |
| 301 SkRect contentRect; | 296 SkRect contentRect; |
| 302 content->getBounds(&contentRect); | 297 content->getBounds(&contentRect); |
| 303 | 298 |
| 304 SkMatrix contentMat; | 299 SkMatrix contentMat; |
| 305 contentMat.setRectToRect(contentRect, destRect, SkMatrix::kFill_ScaleToFit); | 300 contentMat.setRectToRect(contentRect, destRect, SkMatrix::kFill_ScaleToFit); |
| 306 | 301 |
| 307 skia::RefPtr<SkShader> shader = skia::AdoptRef( | 302 skia::RefPtr<SkShader> shader = skia::AdoptRef( |
| 308 SkShader::CreateBitmapShader(*content, | 303 SkShader::CreateBitmapShader(*content, |
| 309 SkShader::kClamp_TileMode, | 304 SkShader::kClamp_TileMode, |
| 310 SkShader::kClamp_TileMode)); | 305 SkShader::kClamp_TileMode)); |
| 311 shader->setLocalMatrix(contentMat); | 306 shader->setLocalMatrix(contentMat); |
| 312 m_skCurrentPaint.setShader(shader.get()); | 307 m_skCurrentPaint.setShader(shader.get()); |
| 313 | 308 |
| 314 SkImageFilter* filter = renderPass->filter.get(); | 309 SkImageFilter* filter = quad->filter.get(); |
| 315 if (filter) | 310 if (filter) |
| 316 m_skCurrentPaint.setImageFilter(filter); | 311 m_skCurrentPaint.setImageFilter(filter); |
| 317 | 312 |
| 318 if (quad->mask_resource_id) { | 313 if (quad->mask_resource_id) { |
| 319 ResourceProvider::ScopedReadLockSoftware maskLock(m_resourceProvider, qu
ad->mask_resource_id); | 314 ResourceProvider::ScopedReadLockSoftware maskLock(m_resourceProvider, qu
ad->mask_resource_id); |
| 320 | 315 |
| 321 const SkBitmap* mask = maskLock.skBitmap(); | 316 const SkBitmap* mask = maskLock.skBitmap(); |
| 322 | 317 |
| 323 SkRect maskRect = SkRect::MakeXYWH( | 318 SkRect maskRect = SkRect::MakeXYWH( |
| 324 quad->mask_uv_rect.x() * mask->width(), | 319 quad->mask_uv_rect.x() * mask->width(), |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 375 } | 370 } |
| 376 | 371 |
| 377 void SoftwareRenderer::setVisible(bool visible) | 372 void SoftwareRenderer::setVisible(bool visible) |
| 378 { | 373 { |
| 379 if (m_visible == visible) | 374 if (m_visible == visible) |
| 380 return; | 375 return; |
| 381 m_visible = visible; | 376 m_visible = visible; |
| 382 } | 377 } |
| 383 | 378 |
| 384 } // namespace cc | 379 } // namespace cc |
| OLD | NEW |