OLD | NEW |
---|---|
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 <unordered_map> | 10 #include <unordered_map> |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
89 size_t operator()(const ImageDecodeControllerKey& key) const { | 89 size_t operator()(const ImageDecodeControllerKey& key) const { |
90 return key.get_hash(); | 90 return key.get_hash(); |
91 } | 91 } |
92 }; | 92 }; |
93 | 93 |
94 class CC_EXPORT SoftwareImageDecodeController : public ImageDecodeController { | 94 class CC_EXPORT SoftwareImageDecodeController : public ImageDecodeController { |
95 public: | 95 public: |
96 using ImageKey = ImageDecodeControllerKey; | 96 using ImageKey = ImageDecodeControllerKey; |
97 using ImageKeyHash = ImageDecodeControllerKeyHash; | 97 using ImageKeyHash = ImageDecodeControllerKeyHash; |
98 | 98 |
99 SoftwareImageDecodeController(); | 99 explicit SoftwareImageDecodeController(ResourceFormat format = RGBA_8888); |
vmpstr
2016/03/21 20:00:45
Default parameters are prohibited in Chromium.
| |
100 ~SoftwareImageDecodeController() override; | 100 ~SoftwareImageDecodeController() override; |
101 | 101 |
102 // ImageDecodeController overrides. | 102 // ImageDecodeController overrides. |
103 bool GetTaskForImageAndRef(const DrawImage& image, | 103 bool GetTaskForImageAndRef(const DrawImage& image, |
104 uint64_t prepare_tiles_id, | 104 uint64_t prepare_tiles_id, |
105 scoped_refptr<ImageDecodeTask>* task) override; | 105 scoped_refptr<ImageDecodeTask>* task) override; |
106 void UnrefImage(const DrawImage& image) override; | 106 void UnrefImage(const DrawImage& image) override; |
107 DecodedDrawImage GetDecodedImageForDraw(const DrawImage& image) override; | 107 DecodedDrawImage GetDecodedImageForDraw(const DrawImage& image) override; |
108 void DrawWithImageFinished(const DrawImage& image, | 108 void DrawWithImageFinished(const DrawImage& image, |
109 const DecodedDrawImage& decoded_image) override; | 109 const DecodedDrawImage& decoded_image) override; |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
214 ImageMRUCache at_raster_decoded_images_; | 214 ImageMRUCache at_raster_decoded_images_; |
215 std::unordered_map<ImageKey, int, ImageKeyHash> | 215 std::unordered_map<ImageKey, int, ImageKeyHash> |
216 at_raster_decoded_images_ref_counts_; | 216 at_raster_decoded_images_ref_counts_; |
217 | 217 |
218 MemoryBudget locked_images_budget_; | 218 MemoryBudget locked_images_budget_; |
219 | 219 |
220 // Note that this is used for cases where the only thing we do is preroll the | 220 // Note that this is used for cases where the only thing we do is preroll the |
221 // image the first time we see it. This mimics the previous behavior and | 221 // image the first time we see it. This mimics the previous behavior and |
222 // should over time change as the compositor starts to handle more cases. | 222 // should over time change as the compositor starts to handle more cases. |
223 std::unordered_set<uint32_t> prerolled_images_; | 223 std::unordered_set<uint32_t> prerolled_images_; |
224 | |
225 ResourceFormat format_; | |
224 }; | 226 }; |
225 | 227 |
226 } // namespace cc | 228 } // namespace cc |
227 | 229 |
228 #endif // CC_TILES_SOFTWARE_IMAGE_DECODE_CONTROLLER_H_ | 230 #endif // CC_TILES_SOFTWARE_IMAGE_DECODE_CONTROLLER_H_ |
OLD | NEW |