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

Side by Side Diff: content/renderer/pepper/ppb_image_data_impl.cc

Issue 2509983004: Revert "Change call-sites now that SkCanvas is not ref-counted" (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « content/renderer/pepper/ppb_image_data_impl.h ('k') | ppapi/proxy/ppb_image_data_proxy.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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "content/renderer/pepper/ppb_image_data_impl.h" 5 #include "content/renderer/pepper/ppb_image_data_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 return !!mapped_canvas_.get(); 164 return !!mapped_canvas_.get();
165 } 165 }
166 166
167 TransportDIB* ImageDataPlatformBackend::GetTransportDIB() const { 167 TransportDIB* ImageDataPlatformBackend::GetTransportDIB() const {
168 return dib_.get(); 168 return dib_.get();
169 } 169 }
170 170
171 void* ImageDataPlatformBackend::Map() { 171 void* ImageDataPlatformBackend::Map() {
172 if (!mapped_canvas_) { 172 if (!mapped_canvas_) {
173 const bool is_opaque = false; 173 const bool is_opaque = false;
174 mapped_canvas_ = dib_->GetPlatformCanvas(width_, height_, is_opaque); 174 mapped_canvas_ =
175 sk_sp<SkCanvas>(dib_->GetPlatformCanvas(width_, height_, is_opaque));
175 if (!mapped_canvas_) 176 if (!mapped_canvas_)
176 return NULL; 177 return NULL;
177 } 178 }
178 SkPixmap pixmap; 179 SkPixmap pixmap;
179 skia::GetWritablePixels(mapped_canvas_.get(), &pixmap); 180 skia::GetWritablePixels(mapped_canvas_.get(), &pixmap);
180 DCHECK(pixmap.addr()); 181 DCHECK(pixmap.addr());
181 // SkPixmap does not manage the lifetime of this pointer, so it remains 182 // SkPixmap does not manage the lifetime of this pointer, so it remains
182 // valid after the object goes out of scope. It will become invalid if 183 // valid after the object goes out of scope. It will become invalid if
183 // the canvas' backing is destroyed or a pending saveLayer() is resolved. 184 // the canvas' backing is destroyed or a pending saveLayer() is resolved.
184 return pixmap.writable_addr32(0, 0); 185 return pixmap.writable_addr32(0, 0);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 243
243 TransportDIB* ImageDataSimpleBackend::GetTransportDIB() const { return NULL; } 244 TransportDIB* ImageDataSimpleBackend::GetTransportDIB() const { return NULL; }
244 245
245 void* ImageDataSimpleBackend::Map() { 246 void* ImageDataSimpleBackend::Map() {
246 DCHECK(shared_memory_.get()); 247 DCHECK(shared_memory_.get());
247 if (map_count_++ == 0) { 248 if (map_count_++ == 0) {
248 shared_memory_->Map(skia_bitmap_.getSize()); 249 shared_memory_->Map(skia_bitmap_.getSize());
249 skia_bitmap_.setPixels(shared_memory_->memory()); 250 skia_bitmap_.setPixels(shared_memory_->memory());
250 // Our platform bitmaps are set to opaque by default, which we don't want. 251 // Our platform bitmaps are set to opaque by default, which we don't want.
251 skia_bitmap_.setAlphaType(kPremul_SkAlphaType); 252 skia_bitmap_.setAlphaType(kPremul_SkAlphaType);
252 skia_canvas_ = base::MakeUnique<SkCanvas>(skia_bitmap_); 253 skia_canvas_ = sk_make_sp<SkCanvas>(skia_bitmap_);
253 return skia_bitmap_.getAddr32(0, 0); 254 return skia_bitmap_.getAddr32(0, 0);
254 } 255 }
255 return shared_memory_->memory(); 256 return shared_memory_->memory();
256 } 257 }
257 258
258 void ImageDataSimpleBackend::Unmap() { 259 void ImageDataSimpleBackend::Unmap() {
259 if (--map_count_ == 0) 260 if (--map_count_ == 0)
260 shared_memory_->Unmap(); 261 shared_memory_->Unmap();
261 } 262 }
262 263
(...skipping 14 matching lines...) Expand all
277 return skia_canvas_.get(); 278 return skia_canvas_.get();
278 } 279 }
279 280
280 SkBitmap ImageDataSimpleBackend::GetMappedBitmap() const { 281 SkBitmap ImageDataSimpleBackend::GetMappedBitmap() const {
281 if (!IsMapped()) 282 if (!IsMapped())
282 return SkBitmap(); 283 return SkBitmap();
283 return skia_bitmap_; 284 return skia_bitmap_;
284 } 285 }
285 286
286 } // namespace content 287 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/pepper/ppb_image_data_impl.h ('k') | ppapi/proxy/ppb_image_data_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698