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

Side by Side Diff: cc/tiles/software_image_decode_controller.cc

Issue 1869753003: Replace many skia::RefPtr with sk_sp<> in cc/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fmalita review - deconstify sk_sp<>s Created 4 years, 8 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/tiles/software_image_decode_controller.h" 5 #include "cc/tiles/software_image_decode_controller.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <functional> 9 #include <functional>
10 10
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 56
57 class ImageDecodeTaskImpl : public ImageDecodeTask { 57 class ImageDecodeTaskImpl : public ImageDecodeTask {
58 public: 58 public:
59 ImageDecodeTaskImpl(SoftwareImageDecodeController* controller, 59 ImageDecodeTaskImpl(SoftwareImageDecodeController* controller,
60 const SoftwareImageDecodeController::ImageKey& image_key, 60 const SoftwareImageDecodeController::ImageKey& image_key,
61 const DrawImage& image, 61 const DrawImage& image,
62 uint64_t source_prepare_tiles_id) 62 uint64_t source_prepare_tiles_id)
63 : controller_(controller), 63 : controller_(controller),
64 image_key_(image_key), 64 image_key_(image_key),
65 image_(image), 65 image_(image),
66 image_ref_(skia::SharePtr(image.image())), 66 image_ref_(image.image()),
f(malita) 2016/04/21 15:45:47 sk_ref_sp(image.image())?
tomhudson 2016/04/25 20:20:51 Dana's suggestions made this member go away.
67 source_prepare_tiles_id_(source_prepare_tiles_id) {} 67 source_prepare_tiles_id_(source_prepare_tiles_id) {}
68 68
69 // Overridden from Task: 69 // Overridden from Task:
70 void RunOnWorkerThread() override { 70 void RunOnWorkerThread() override {
71 TRACE_EVENT2("cc", "ImageDecodeTaskImpl::RunOnWorkerThread", "mode", 71 TRACE_EVENT2("cc", "ImageDecodeTaskImpl::RunOnWorkerThread", "mode",
72 "software", "source_prepare_tiles_id", 72 "software", "source_prepare_tiles_id",
73 source_prepare_tiles_id_); 73 source_prepare_tiles_id_);
74 devtools_instrumentation::ScopedImageDecodeTask image_decode_task( 74 devtools_instrumentation::ScopedImageDecodeTask image_decode_task(
75 image_ref_.get()); 75 image_ref_.get());
76 controller_->DecodeImage(image_key_, image_); 76 controller_->DecodeImage(image_key_, image_);
77 } 77 }
78 78
79 // Overridden from TileTask: 79 // Overridden from TileTask:
80 void ScheduleOnOriginThread(RasterBufferProvider* provider) override {} 80 void ScheduleOnOriginThread(RasterBufferProvider* provider) override {}
81 void CompleteOnOriginThread(RasterBufferProvider* provider) override { 81 void CompleteOnOriginThread(RasterBufferProvider* provider) override {
82 controller_->RemovePendingTask(image_key_); 82 controller_->RemovePendingTask(image_key_);
83 } 83 }
84 84
85 protected: 85 protected:
86 ~ImageDecodeTaskImpl() override {} 86 ~ImageDecodeTaskImpl() override {}
87 87
88 private: 88 private:
89 SoftwareImageDecodeController* controller_; 89 SoftwareImageDecodeController* controller_;
90 SoftwareImageDecodeController::ImageKey image_key_; 90 SoftwareImageDecodeController::ImageKey image_key_;
91 DrawImage image_; 91 DrawImage image_;
92 skia::RefPtr<const SkImage> image_ref_; 92 sk_sp<const SkImage> image_ref_;
93 uint64_t source_prepare_tiles_id_; 93 uint64_t source_prepare_tiles_id_;
94 94
95 DISALLOW_COPY_AND_ASSIGN(ImageDecodeTaskImpl); 95 DISALLOW_COPY_AND_ASSIGN(ImageDecodeTaskImpl);
96 }; 96 };
97 97
98 SkSize GetScaleAdjustment(const ImageDecodeControllerKey& key) { 98 SkSize GetScaleAdjustment(const ImageDecodeControllerKey& key) {
99 // If the requested filter quality did not require scale, then the adjustment 99 // If the requested filter quality did not require scale, then the adjustment
100 // is identity. 100 // is identity.
101 if (key.can_use_original_decode()) 101 if (key.can_use_original_decode())
102 return SkSize::Make(1.f, 1.f); 102 return SkSize::Make(1.f, 1.f);
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 SanityCheckState(__LINE__, true); 362 SanityCheckState(__LINE__, true);
363 } 363 }
364 364
365 std::unique_ptr<SoftwareImageDecodeController::DecodedImage> 365 std::unique_ptr<SoftwareImageDecodeController::DecodedImage>
366 SoftwareImageDecodeController::DecodeImageInternal( 366 SoftwareImageDecodeController::DecodeImageInternal(
367 const ImageKey& key, 367 const ImageKey& key,
368 const DrawImage& draw_image) { 368 const DrawImage& draw_image) {
369 TRACE_EVENT1("disabled-by-default-cc.debug", 369 TRACE_EVENT1("disabled-by-default-cc.debug",
370 "SoftwareImageDecodeController::DecodeImageInternal", "key", 370 "SoftwareImageDecodeController::DecodeImageInternal", "key",
371 key.ToString()); 371 key.ToString());
372 const SkImage* image = draw_image.image(); 372 sk_sp<const SkImage> image(draw_image.image());
f(malita) 2016/04/21 15:45:47 sk_ref_sp(draw_image.image())? (or just leave as
tomhudson 2016/04/25 20:20:51 This is now returning sk_sp<>, and passing it on t
373 if (!image) 373 if (!image)
374 return nullptr; 374 return nullptr;
375 375
376 switch (key.filter_quality()) { 376 switch (key.filter_quality()) {
377 case kNone_SkFilterQuality: 377 case kNone_SkFilterQuality:
378 case kLow_SkFilterQuality: 378 case kLow_SkFilterQuality:
379 return GetOriginalImageDecode(key, *image); 379 return GetOriginalImageDecode(key, *image.get());
380 case kMedium_SkFilterQuality: 380 case kMedium_SkFilterQuality:
381 NOTIMPLEMENTED(); 381 NOTIMPLEMENTED();
382 return nullptr; 382 return nullptr;
383 case kHigh_SkFilterQuality: 383 case kHigh_SkFilterQuality:
384 return GetScaledImageDecode(key, *image); 384 return GetScaledImageDecode(key, *image.get());
385 default: 385 default:
386 NOTREACHED(); 386 NOTREACHED();
387 return nullptr; 387 return nullptr;
388 } 388 }
389 } 389 }
390 390
391 DecodedDrawImage SoftwareImageDecodeController::GetDecodedImageForDraw( 391 DecodedDrawImage SoftwareImageDecodeController::GetDecodedImageForDraw(
392 const DrawImage& draw_image) { 392 const DrawImage& draw_image) {
393 ImageKey key = ImageKey::FromDrawImage(draw_image); 393 ImageKey key = ImageKey::FromDrawImage(draw_image);
394 TRACE_EVENT1("disabled-by-default-cc.debug", 394 TRACE_EVENT1("disabled-by-default-cc.debug",
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 SoftwareImageDecodeController::DecodedImage::DecodedImage( 879 SoftwareImageDecodeController::DecodedImage::DecodedImage(
880 const SkImageInfo& info, 880 const SkImageInfo& info,
881 std::unique_ptr<base::DiscardableMemory> memory, 881 std::unique_ptr<base::DiscardableMemory> memory,
882 const SkSize& src_rect_offset, 882 const SkSize& src_rect_offset,
883 uint64_t tracing_id) 883 uint64_t tracing_id)
884 : locked_(true), 884 : locked_(true),
885 image_info_(info), 885 image_info_(info),
886 memory_(std::move(memory)), 886 memory_(std::move(memory)),
887 src_rect_offset_(src_rect_offset), 887 src_rect_offset_(src_rect_offset),
888 tracing_id_(tracing_id) { 888 tracing_id_(tracing_id) {
889 image_ = skia::AdoptRef(SkImage::NewFromRaster( 889 SkPixmap p(image_info_, memory_->data(), image_info_.minRowBytes());
890 image_info_, memory_->data(), image_info_.minRowBytes(), 890 image_ = SkImage::MakeFromRaster(p, [](const void* pixels, void* context) {},
891 [](const void* pixels, void* context) {}, nullptr)); 891 nullptr);
892 } 892 }
893 893
894 SoftwareImageDecodeController::DecodedImage::~DecodedImage() { 894 SoftwareImageDecodeController::DecodedImage::~DecodedImage() {
895 DCHECK(!locked_); 895 DCHECK(!locked_);
896 } 896 }
897 897
898 bool SoftwareImageDecodeController::DecodedImage::Lock() { 898 bool SoftwareImageDecodeController::DecodedImage::Lock() {
899 DCHECK(!locked_); 899 DCHECK(!locked_);
900 bool success = memory_->Lock(); 900 bool success = memory_->Lock();
901 if (!success) 901 if (!success)
(...skipping 30 matching lines...) Expand all
932 void SoftwareImageDecodeController::MemoryBudget::ResetUsage() { 932 void SoftwareImageDecodeController::MemoryBudget::ResetUsage() {
933 current_usage_bytes_ = 0; 933 current_usage_bytes_ = 0;
934 } 934 }
935 935
936 size_t SoftwareImageDecodeController::MemoryBudget::GetCurrentUsageSafe() 936 size_t SoftwareImageDecodeController::MemoryBudget::GetCurrentUsageSafe()
937 const { 937 const {
938 return current_usage_bytes_.ValueOrDie(); 938 return current_usage_bytes_.ValueOrDie();
939 } 939 }
940 940
941 } // namespace cc 941 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698