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