Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Side by Side Diff: cc/software_renderer.cc

Issue 11618026: Move filters to RenderPassDrawQuad (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/scoped_ptr_vector.h ('k') | cc/software_renderer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « cc/scoped_ptr_vector.h ('k') | cc/software_renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698