OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef SkBitmapFactory_DEFINED | 8 #ifndef SkBitmapFactory_DEFINED |
9 #define SkBitmapFactory_DEFINED | 9 #define SkBitmapFactory_DEFINED |
10 | 10 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 * width, height, rowBytes and pixelref set. If fImageCache is non-NULL, or
if fCacheSelector | 60 * width, height, rowBytes and pixelref set. If fImageCache is non-NULL, or
if fCacheSelector |
61 * is set and returns non-NULL, the pixelref will lazily decode, and that S
kImageCache will | 61 * is set and returns non-NULL, the pixelref will lazily decode, and that S
kImageCache will |
62 * handle the pixel memory. Otherwise installPixelRef will do an immediate
decode. | 62 * handle the pixel memory. Otherwise installPixelRef will do an immediate
decode. |
63 * @param SkData Encoded data. | 63 * @param SkData Encoded data. |
64 * @param SkBitmap to install the pixel ref on. | 64 * @param SkBitmap to install the pixel ref on. |
65 * @return bool Whether or not a pixel ref was successfully installed. | 65 * @return bool Whether or not a pixel ref was successfully installed. |
66 */ | 66 */ |
67 bool installPixelRef(SkData*, SkBitmap*); | 67 bool installPixelRef(SkData*, SkBitmap*); |
68 | 68 |
69 /** | 69 /** |
70 * A function for selecting an SkImageCache to use based on an SkImage::Inf
o. | 70 * An object for selecting an SkImageCache to use based on an SkImage::Info
. |
71 */ | 71 */ |
72 typedef SkImageCache* (*CacheSelector)(const SkImage::Info&); | 72 class CacheSelector : public SkRefCnt { |
| 73 |
| 74 public: |
| 75 /** |
| 76 * Return an SkImageCache to use based on the provided SkImage::Info. I
f the caller decides |
| 77 * to hang on to the result, it will call ref, so the implementation sh
ould not add a ref |
| 78 * as a result of this call. |
| 79 */ |
| 80 virtual SkImageCache* selectCache(const SkImage::Info&) = 0; |
| 81 }; |
73 | 82 |
74 /** | 83 /** |
75 * Set the function to be used to select which SkImageCache to use. Mutuall
y exclusive with | 84 * Set the function to be used to select which SkImageCache to use. Mutuall
y exclusive with |
76 * fImageCache. | 85 * fImageCache. |
77 */ | 86 */ |
78 void setCacheSelector(CacheSelector); | 87 void setCacheSelector(CacheSelector*); |
79 | 88 |
80 private: | 89 private: |
81 DecodeProc fDecodeProc; | 90 DecodeProc fDecodeProc; |
82 SkImageCache* fImageCache; | 91 SkImageCache* fImageCache; |
83 CacheSelector fCacheSelector; | 92 CacheSelector* fCacheSelector; |
84 }; | 93 }; |
85 | 94 |
86 #endif // SkBitmapFactory_DEFINED | 95 #endif // SkBitmapFactory_DEFINED |
OLD | NEW |