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

Side by Side Diff: webkit/plugins/ppapi/ppb_graphics_2d_impl.cc

Issue 11189146: Eliminate implicit conversion from scoped_refptr<T> to T* (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 months 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 | « webkit/plugins/ppapi/ppb_graphics_2d_impl.h ('k') | webkit/plugins/ppapi/ppb_image_data_impl.h » ('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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "webkit/plugins/ppapi/ppb_graphics_2d_impl.h" 5 #include "webkit/plugins/ppapi/ppb_graphics_2d_impl.h"
6 6
7 #include <iterator> 7 #include <iterator>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 pixel_out[0] = pixel_in[2]; 82 pixel_out[0] = pixel_in[2];
83 pixel_out[1] = pixel_in[1]; 83 pixel_out[1] = pixel_in[1];
84 pixel_out[2] = pixel_in[0]; 84 pixel_out[2] = pixel_in[0];
85 pixel_out[3] = pixel_in[3]; 85 pixel_out[3] = pixel_in[3];
86 } 86 }
87 } 87 }
88 88
89 // Converts ImageData from PP_IMAGEDATAFORMAT_BGRA_PREMUL to 89 // Converts ImageData from PP_IMAGEDATAFORMAT_BGRA_PREMUL to
90 // PP_IMAGEDATAFORMAT_RGBA_PREMUL, or reverse. It's assumed that the 90 // PP_IMAGEDATAFORMAT_RGBA_PREMUL, or reverse. It's assumed that the
91 // destination image is always mapped (so will have non-NULL data). 91 // destination image is always mapped (so will have non-NULL data).
92 void ConvertImageData(PPB_ImageData_Impl* src_image, const SkIRect& src_rect, 92 void ConvertImageData(scoped_refptr<PPB_ImageData_Impl> src_image,
93 PPB_ImageData_Impl* dest_image, const SkRect& dest_rect) { 93 const SkIRect& src_rect,
94 scoped_refptr<PPB_ImageData_Impl> dest_image,
95 const SkRect& dest_rect) {
94 ImageDataAutoMapper auto_mapper(src_image); 96 ImageDataAutoMapper auto_mapper(src_image);
95 97
96 DCHECK(src_image->format() != dest_image->format()); 98 DCHECK(src_image->format() != dest_image->format());
97 DCHECK(PPB_ImageData_Impl::IsImageDataFormatSupported(src_image->format())); 99 DCHECK(PPB_ImageData_Impl::IsImageDataFormatSupported(src_image->format()));
98 DCHECK(PPB_ImageData_Impl::IsImageDataFormatSupported(dest_image->format())); 100 DCHECK(PPB_ImageData_Impl::IsImageDataFormatSupported(dest_image->format()));
99 101
100 const SkBitmap* src_bitmap = src_image->GetMappedBitmap(); 102 const SkBitmap* src_bitmap = src_image->GetMappedBitmap();
101 const SkBitmap* dest_bitmap = dest_image->GetMappedBitmap(); 103 const SkBitmap* dest_bitmap = dest_image->GetMappedBitmap();
102 if (src_rect.width() == src_image->width() && 104 if (src_rect.width() == src_image->width() &&
103 dest_rect.width() == dest_image->width()) { 105 dest_rect.width() == dest_image->width()) {
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 } 552 }
551 } 553 }
552 554
553 void PPB_Graphics2D_Impl::ViewFlushedPaint() { 555 void PPB_Graphics2D_Impl::ViewFlushedPaint() {
554 // Notify any "painted" callback. See |unpainted_flush_callback_| in the 556 // Notify any "painted" callback. See |unpainted_flush_callback_| in the
555 // header for more. 557 // header for more.
556 if (!painted_flush_callback_.is_null()) 558 if (!painted_flush_callback_.is_null())
557 painted_flush_callback_.Execute(PP_OK); 559 painted_flush_callback_.Execute(PP_OK);
558 } 560 }
559 561
560 void PPB_Graphics2D_Impl::ExecutePaintImageData(PPB_ImageData_Impl* image, 562 void PPB_Graphics2D_Impl::ExecutePaintImageData(
561 int x, int y, 563 scoped_refptr<PPB_ImageData_Impl> image, int x, int y,
562 const gfx::Rect& src_rect, 564 const gfx::Rect& src_rect, gfx::Rect* invalidated_rect) {
563 gfx::Rect* invalidated_rect) {
564 // Ensure the source image is mapped to read from it. 565 // Ensure the source image is mapped to read from it.
565 ImageDataAutoMapper auto_mapper(image); 566 ImageDataAutoMapper auto_mapper(image);
566 if (!auto_mapper.is_valid()) 567 if (!auto_mapper.is_valid())
567 return; 568 return;
568 569
569 // Portion within the source image to cut out. 570 // Portion within the source image to cut out.
570 SkIRect src_irect = { src_rect.x(), src_rect.y(), 571 SkIRect src_irect = { src_rect.x(), src_rect.y(),
571 src_rect.right(), src_rect.bottom() }; 572 src_rect.right(), src_rect.bottom() };
572 573
573 // Location within the backing store to copy to. 574 // Location within the backing store to copy to.
574 *invalidated_rect = src_rect; 575 *invalidated_rect = src_rect;
575 invalidated_rect->Offset(x, y); 576 invalidated_rect->Offset(x, y);
576 SkRect dest_rect = { SkIntToScalar(invalidated_rect->x()), 577 SkRect dest_rect = { SkIntToScalar(invalidated_rect->x()),
577 SkIntToScalar(invalidated_rect->y()), 578 SkIntToScalar(invalidated_rect->y()),
578 SkIntToScalar(invalidated_rect->right()), 579 SkIntToScalar(invalidated_rect->right()),
579 SkIntToScalar(invalidated_rect->bottom()) }; 580 SkIntToScalar(invalidated_rect->bottom()) };
580 581
581 if (image->format() != image_data_->format()) { 582 if (image->format() != image_data_->format()) {
582 // Convert the image data if the format does not match. 583 // Convert the image data if the format does not match.
583 ConvertImageData(image, src_irect, image_data_, dest_rect); 584 ConvertImageData(image, src_irect, image_data_.get(), dest_rect);
584 } else { 585 } else {
585 // We're guaranteed to have a mapped canvas since we mapped it in Init(). 586 // We're guaranteed to have a mapped canvas since we mapped it in Init().
586 skia::PlatformCanvas* backing_canvas = image_data_->GetPlatformCanvas(); 587 skia::PlatformCanvas* backing_canvas = image_data_->GetPlatformCanvas();
587 588
588 // We want to replace the contents of the bitmap rather than blend. 589 // We want to replace the contents of the bitmap rather than blend.
589 SkPaint paint; 590 SkPaint paint;
590 paint.setXfermodeMode(SkXfermode::kSrc_Mode); 591 paint.setXfermodeMode(SkXfermode::kSrc_Mode);
591 backing_canvas->drawBitmapRect(*image->GetMappedBitmap(), 592 backing_canvas->drawBitmapRect(*image->GetMappedBitmap(),
592 &src_irect, dest_rect, &paint); 593 &src_irect, dest_rect, &paint);
593 } 594 }
594 } 595 }
595 596
596 void PPB_Graphics2D_Impl::ExecuteScroll(const gfx::Rect& clip, 597 void PPB_Graphics2D_Impl::ExecuteScroll(const gfx::Rect& clip,
597 int dx, int dy, 598 int dx, int dy,
598 gfx::Rect* invalidated_rect) { 599 gfx::Rect* invalidated_rect) {
599 gfx::ScrollCanvas(image_data_->GetPlatformCanvas(), 600 gfx::ScrollCanvas(image_data_->GetPlatformCanvas(),
600 clip, gfx::Point(dx, dy)); 601 clip, gfx::Point(dx, dy));
601 *invalidated_rect = clip; 602 *invalidated_rect = clip;
602 } 603 }
603 604
604 void PPB_Graphics2D_Impl::ExecuteReplaceContents(PPB_ImageData_Impl* image, 605 void PPB_Graphics2D_Impl::ExecuteReplaceContents(
605 gfx::Rect* invalidated_rect) { 606 scoped_refptr<PPB_ImageData_Impl> image, gfx::Rect* invalidated_rect) {
606 if (image->format() != image_data_->format()) { 607 if (image->format() != image_data_->format()) {
607 DCHECK(image->width() == image_data_->width() && 608 DCHECK(image->width() == image_data_->width() &&
608 image->height() == image_data_->height()); 609 image->height() == image_data_->height());
609 // Convert the image data if the format does not match. 610 // Convert the image data if the format does not match.
610 SkIRect src_irect = { 0, 0, image->width(), image->height() }; 611 SkIRect src_irect = { 0, 0, image->width(), image->height() };
611 SkRect dest_rect = { SkIntToScalar(0), 612 SkRect dest_rect = { SkIntToScalar(0),
612 SkIntToScalar(0), 613 SkIntToScalar(0),
613 SkIntToScalar(image_data_->width()), 614 SkIntToScalar(image_data_->width()),
614 SkIntToScalar(image_data_->height()) }; 615 SkIntToScalar(image_data_->height()) };
615 ConvertImageData(image, src_irect, image_data_, dest_rect); 616 ConvertImageData(image, src_irect, image_data_.get(), dest_rect);
616 } else { 617 } else {
617 // The passed-in image may not be mapped in our process, and we need to 618 // The passed-in image may not be mapped in our process, and we need to
618 // guarantee that the current backing store is always mapped. 619 // guarantee that the current backing store is always mapped.
619 if (!image->Map()) 620 if (!image->Map())
620 return; 621 return;
621 image_data_->Unmap(); 622 image_data_->Unmap();
622 image_data_->Swap(image); 623 image_data_->Swap(image);
623 } 624 }
624 *invalidated_rect = gfx::Rect(0, 0, 625 *invalidated_rect = gfx::Rect(0, 0,
625 image_data_->width(), image_data_->height()); 626 image_data_->width(), image_data_->height());
(...skipping 21 matching lines...) Expand all
647 } 648 }
648 649
649 bool PPB_Graphics2D_Impl::HasPendingFlush() const { 650 bool PPB_Graphics2D_Impl::HasPendingFlush() const {
650 return !unpainted_flush_callback_.is_null() || 651 return !unpainted_flush_callback_.is_null() ||
651 !painted_flush_callback_.is_null() || 652 !painted_flush_callback_.is_null() ||
652 offscreen_flush_pending_; 653 offscreen_flush_pending_;
653 } 654 }
654 655
655 } // namespace ppapi 656 } // namespace ppapi
656 } // namespace webkit 657 } // namespace webkit
OLDNEW
« no previous file with comments | « webkit/plugins/ppapi/ppb_graphics_2d_impl.h ('k') | webkit/plugins/ppapi/ppb_image_data_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698