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

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

Issue 1890903002: cc: Simplify Task and its derived classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove_tile_task_runner
Patch Set: feedback 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #ifndef CC_TILES_SOFTWARE_IMAGE_DECODE_CONTROLLER_H_ 5 #ifndef CC_TILES_SOFTWARE_IMAGE_DECODE_CONTROLLER_H_
6 #define CC_TILES_SOFTWARE_IMAGE_DECODE_CONTROLLER_H_ 6 #define CC_TILES_SOFTWARE_IMAGE_DECODE_CONTROLLER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 using ImageKey = ImageDecodeControllerKey; 103 using ImageKey = ImageDecodeControllerKey;
104 using ImageKeyHash = ImageDecodeControllerKeyHash; 104 using ImageKeyHash = ImageDecodeControllerKeyHash;
105 105
106 explicit SoftwareImageDecodeController(ResourceFormat format); 106 explicit SoftwareImageDecodeController(ResourceFormat format);
107 SoftwareImageDecodeController(); 107 SoftwareImageDecodeController();
108 ~SoftwareImageDecodeController() override; 108 ~SoftwareImageDecodeController() override;
109 109
110 // ImageDecodeController overrides. 110 // ImageDecodeController overrides.
111 bool GetTaskForImageAndRef(const DrawImage& image, 111 bool GetTaskForImageAndRef(const DrawImage& image,
112 uint64_t prepare_tiles_id, 112 uint64_t prepare_tiles_id,
113 scoped_refptr<ImageDecodeTask>* task) override; 113 scoped_refptr<TileTask>* task) override;
114 void UnrefImage(const DrawImage& image) override; 114 void UnrefImage(const DrawImage& image) override;
115 DecodedDrawImage GetDecodedImageForDraw(const DrawImage& image) override; 115 DecodedDrawImage GetDecodedImageForDraw(const DrawImage& image) override;
116 void DrawWithImageFinished(const DrawImage& image, 116 void DrawWithImageFinished(const DrawImage& image,
117 const DecodedDrawImage& decoded_image) override; 117 const DecodedDrawImage& decoded_image) override;
118 void ReduceCacheUsage() override; 118 void ReduceCacheUsage() override;
119 // Software doesn't keep outstanding images pinned, so this is a no-op. 119 // Software doesn't keep outstanding images pinned, so this is a no-op.
120 void SetShouldAggressivelyFreeResources( 120 void SetShouldAggressivelyFreeResources(
121 bool aggressively_free_resources) override {} 121 bool aggressively_free_resources) override {}
122 122
123 // Decode the given image and store it in the cache. This is only called by an 123 // Decode the given image and store it in the cache. This is only called by an
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
234 // exception of possibly prerolling them). Over time these should return 234 // exception of possibly prerolling them). Over time these should return
235 // "false" in less cases, as the ImageDecodeController should start handling 235 // "false" in less cases, as the ImageDecodeController should start handling
236 // more of them. 236 // more of them.
237 bool CanHandleImage(const ImageKey& key); 237 bool CanHandleImage(const ImageKey& key);
238 238
239 // Helper function which dumps all images in a specific ImageMRUCache. 239 // Helper function which dumps all images in a specific ImageMRUCache.
240 void DumpImageMemoryForCache(const ImageMRUCache& cache, 240 void DumpImageMemoryForCache(const ImageMRUCache& cache,
241 const char* cache_name, 241 const char* cache_name,
242 base::trace_event::ProcessMemoryDump* pmd) const; 242 base::trace_event::ProcessMemoryDump* pmd) const;
243 243
244 std::unordered_map<ImageKey, scoped_refptr<ImageDecodeTask>, ImageKeyHash> 244 std::unordered_map<ImageKey, scoped_refptr<TileTask>, ImageKeyHash>
245 pending_image_tasks_; 245 pending_image_tasks_;
246 246
247 // The members below this comment can only be accessed if the lock is held to 247 // The members below this comment can only be accessed if the lock is held to
248 // ensure that they are safe to access on multiple threads. 248 // ensure that they are safe to access on multiple threads.
249 base::Lock lock_; 249 base::Lock lock_;
250 250
251 // Decoded images and ref counts (predecode path). 251 // Decoded images and ref counts (predecode path).
252 ImageMRUCache decoded_images_; 252 ImageMRUCache decoded_images_;
253 std::unordered_map<ImageKey, int, ImageKeyHash> decoded_images_ref_counts_; 253 std::unordered_map<ImageKey, int, ImageKeyHash> decoded_images_ref_counts_;
254 254
(...skipping 11 matching lines...) Expand all
266 266
267 ResourceFormat format_; 267 ResourceFormat format_;
268 268
269 // Used to uniquely identify DecodedImages for memory traces. 269 // Used to uniquely identify DecodedImages for memory traces.
270 base::AtomicSequenceNumber next_tracing_id_; 270 base::AtomicSequenceNumber next_tracing_id_;
271 }; 271 };
272 272
273 } // namespace cc 273 } // namespace cc
274 274
275 #endif // CC_TILES_SOFTWARE_IMAGE_DECODE_CONTROLLER_H_ 275 #endif // CC_TILES_SOFTWARE_IMAGE_DECODE_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698