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

Side by Side Diff: cc/software_renderer.cc

Issue 11412255: cc: Use skia::RefPtr in place of raw pointers and SkAutoTUnref. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ref() 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/resource_update_controller.cc ('k') | content/common/cc_messages.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 <public/WebCompositorSoftwareOutputDevice.h> 7 #include <public/WebCompositorSoftwareOutputDevice.h>
8 #include <public/WebImage.h> 8 #include <public/WebImage.h>
9 #include <public/WebSize.h> 9 #include <public/WebSize.h>
10 10
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 SkRect destRect = gfx::RectFToSkRect(quadVertexRect()); 300 SkRect destRect = gfx::RectFToSkRect(quadVertexRect());
301 301
302 const SkBitmap* content = lock.skBitmap(); 302 const SkBitmap* content = lock.skBitmap();
303 303
304 SkRect contentRect; 304 SkRect contentRect;
305 content->getBounds(&contentRect); 305 content->getBounds(&contentRect);
306 306
307 SkMatrix contentMat; 307 SkMatrix contentMat;
308 contentMat.setRectToRect(contentRect, destRect, SkMatrix::kFill_ScaleToFit); 308 contentMat.setRectToRect(contentRect, destRect, SkMatrix::kFill_ScaleToFit);
309 309
310 SkAutoTUnref<SkShader> shader(SkShader::CreateBitmapShader(*content, 310 skia::RefPtr<SkShader> shader = skia::AdoptRef(
311 SkShader::kClamp_ TileMode, 311 SkShader::CreateBitmapShader(*content,
312 SkShader::kClamp_ TileMode)); 312 SkShader::kClamp_TileMode,
313 SkShader::kClamp_TileMode));
313 shader->setLocalMatrix(contentMat); 314 shader->setLocalMatrix(contentMat);
314 m_skCurrentPaint.setShader(shader); 315 m_skCurrentPaint.setShader(shader.get());
315 316
316 SkImageFilter* filter = renderPass->filter; 317 SkImageFilter* filter = renderPass->filter.get();
317 if (filter) 318 if (filter)
318 m_skCurrentPaint.setImageFilter(filter); 319 m_skCurrentPaint.setImageFilter(filter);
319 320
320 if (quad->mask_resource_id) { 321 if (quad->mask_resource_id) {
321 ResourceProvider::ScopedReadLockSoftware maskLock(m_resourceProvider, qu ad->mask_resource_id); 322 ResourceProvider::ScopedReadLockSoftware maskLock(m_resourceProvider, qu ad->mask_resource_id);
322 323
323 const SkBitmap* mask = maskLock.skBitmap(); 324 const SkBitmap* mask = maskLock.skBitmap();
324 325
325 SkRect maskRect = SkRect::MakeXYWH( 326 SkRect maskRect = SkRect::MakeXYWH(
326 quad->mask_tex_coord_offset_x * mask->width(), 327 quad->mask_tex_coord_offset_x * mask->width(),
327 quad->mask_tex_coord_offset_y * mask->height(), 328 quad->mask_tex_coord_offset_y * mask->height(),
328 quad->mask_tex_coord_scale_x * mask->width(), 329 quad->mask_tex_coord_scale_x * mask->width(),
329 quad->mask_tex_coord_scale_y * mask->height()); 330 quad->mask_tex_coord_scale_y * mask->height());
330 331
331 SkMatrix maskMat; 332 SkMatrix maskMat;
332 maskMat.setRectToRect(maskRect, destRect, SkMatrix::kFill_ScaleToFit); 333 maskMat.setRectToRect(maskRect, destRect, SkMatrix::kFill_ScaleToFit);
333 334
334 SkAutoTUnref<SkShader> maskShader(SkShader::CreateBitmapShader(*mask, 335 skia::RefPtr<SkShader> maskShader = skia::AdoptRef(
335 SkShader: :kClamp_TileMode, 336 SkShader::CreateBitmapShader(*mask,
336 SkShader: :kClamp_TileMode)); 337 SkShader::kClamp_TileMode,
338 SkShader::kClamp_TileMode));
337 maskShader->setLocalMatrix(maskMat); 339 maskShader->setLocalMatrix(maskMat);
338 340
339 SkPaint maskPaint; 341 SkPaint maskPaint;
340 maskPaint.setShader(maskShader); 342 maskPaint.setShader(maskShader.get());
341 343
342 SkAutoTUnref<SkLayerRasterizer> maskRasterizer(new SkLayerRasterizer); 344 skia::RefPtr<SkLayerRasterizer> maskRasterizer = skia::AdoptRef(new SkLa yerRasterizer);
343 maskRasterizer->addLayer(maskPaint); 345 maskRasterizer->addLayer(maskPaint);
344 346
345 m_skCurrentPaint.setRasterizer(maskRasterizer); 347 m_skCurrentPaint.setRasterizer(maskRasterizer.get());
346 m_skCurrentCanvas->drawRect(destRect, m_skCurrentPaint); 348 m_skCurrentCanvas->drawRect(destRect, m_skCurrentPaint);
347 } else { 349 } else {
348 // FIXME: Apply background filters and blend with content 350 // FIXME: Apply background filters and blend with content
349 m_skCurrentCanvas->drawRect(destRect, m_skCurrentPaint); 351 m_skCurrentCanvas->drawRect(destRect, m_skCurrentPaint);
350 } 352 }
351 } 353 }
352 354
353 void SoftwareRenderer::drawUnsupportedQuad(const DrawingFrame& frame, const Draw Quad* quad) 355 void SoftwareRenderer::drawUnsupportedQuad(const DrawingFrame& frame, const Draw Quad* quad)
354 { 356 {
355 m_skCurrentPaint.setColor(SK_ColorMAGENTA); 357 m_skCurrentPaint.setColor(SK_ColorMAGENTA);
(...skipping 20 matching lines...) Expand all
376 } 378 }
377 379
378 void SoftwareRenderer::setVisible(bool visible) 380 void SoftwareRenderer::setVisible(bool visible)
379 { 381 {
380 if (m_visible == visible) 382 if (m_visible == visible)
381 return; 383 return;
382 m_visible = visible; 384 m_visible = visible;
383 } 385 }
384 386
385 } // namespace cc 387 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resource_update_controller.cc ('k') | content/common/cc_messages.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698