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

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: 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
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 <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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698