| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
| 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 SkImageDecoder_DEFINED | 8 #ifndef SkImageDecoder_DEFINED |
| 9 #define SkImageDecoder_DEFINED | 9 #define SkImageDecoder_DEFINED |
| 10 | 10 |
| 11 #include "SkBitmap.h" | 11 #include "SkBitmap.h" |
| 12 #include "SkImage.h" | 12 #include "SkImage.h" |
| 13 #include "SkPngChunkReader.h" | 13 #include "SkPngChunkReader.h" |
| 14 #include "SkRect.h" | 14 #include "SkRect.h" |
| 15 #include "SkRefCnt.h" | 15 #include "SkRefCnt.h" |
| 16 #include "SkTRegistry.h" | 16 #include "SkTRegistry.h" |
| 17 #include "SkTypes.h" | 17 #include "SkTypes.h" |
| 18 | 18 |
| 19 class SkStream; | 19 class SkStream; |
| 20 class SkStreamRewindable; | 20 class SkStreamRewindable; |
| 21 | 21 |
| 22 /** \class SkImageDecoder | 22 /** \class SkImageDecoder |
| 23 | 23 |
| 24 DEPRECATED Please use SkImage::NewFromEncoded() or SkImageGenerator::NewFrom
Encoded(). |
| 25 |
| 24 Base class for decoding compressed images into a SkBitmap | 26 Base class for decoding compressed images into a SkBitmap |
| 25 */ | 27 */ |
| 26 class SkImageDecoder : SkNoncopyable { | 28 class SkImageDecoder : SkNoncopyable { |
| 27 public: | 29 public: |
| 28 virtual ~SkImageDecoder(); | 30 virtual ~SkImageDecoder(); |
| 29 | 31 |
| 30 // TODO (scroggo): Merge with SkEncodedFormat | 32 // TODO (scroggo): Merge with SkEncodedFormat |
| 31 enum Format { | 33 enum Format { |
| 32 kUnknown_Format, | 34 kUnknown_Format, |
| 33 kBMP_Format, | 35 kBMP_Format, |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 If an SkPngChunkReader is installed via setPeeker, it may be used to | 220 If an SkPngChunkReader is installed via setPeeker, it may be used to |
| 219 peek into meta data during the decode. | 221 peek into meta data during the decode. |
| 220 */ | 222 */ |
| 221 Result decode(SkStream*, SkBitmap* bitmap, SkColorType pref, Mode); | 223 Result decode(SkStream*, SkBitmap* bitmap, SkColorType pref, Mode); |
| 222 Result decode(SkStream* stream, SkBitmap* bitmap, Mode mode) { | 224 Result decode(SkStream* stream, SkBitmap* bitmap, Mode mode) { |
| 223 return this->decode(stream, bitmap, kUnknown_SkColorType, mode); | 225 return this->decode(stream, bitmap, kUnknown_SkColorType, mode); |
| 224 } | 226 } |
| 225 | 227 |
| 226 /** Given a stream, this will try to find an appropriate decoder object. | 228 /** Given a stream, this will try to find an appropriate decoder object. |
| 227 If none is found, the method returns NULL. | 229 If none is found, the method returns NULL. |
| 230 |
| 231 DEPRECATED Please use SkImage::NewFromEncoded() or SkImageGenerator::New
FromEncoded(). |
| 228 */ | 232 */ |
| 229 static SkImageDecoder* Factory(SkStreamRewindable*); | 233 static SkImageDecoder* Factory(SkStreamRewindable*); |
| 230 | 234 |
| 231 /** Decode the image stored in the specified file, and store the result | 235 /** Decode the image stored in the specified file, and store the result |
| 232 in bitmap. Return true for success or false on failure. | 236 in bitmap. Return true for success or false on failure. |
| 233 | 237 |
| 234 @param pref Prefer this colortype. | 238 @param pref Prefer this colortype. |
| 235 | 239 |
| 236 @param format On success, if format is non-null, it is set to the format | 240 @param format On success, if format is non-null, it is set to the format |
| 237 of the decoded file. On failure it is ignored. | 241 of the decoded file. On failure it is ignored. |
| 242 |
| 243 DEPRECATED Do not use. |
| 238 */ | 244 */ |
| 239 static bool DecodeFile(const char file[], SkBitmap* bitmap, SkColorType pref
, Mode, | 245 static bool DecodeFile(const char file[], SkBitmap* bitmap, SkColorType pref
, Mode, |
| 240 Format* format = NULL); | 246 Format* format = NULL); |
| 241 static bool DecodeFile(const char file[], SkBitmap* bitmap) { | 247 static bool DecodeFile(const char file[], SkBitmap* bitmap) { |
| 242 return DecodeFile(file, bitmap, kUnknown_SkColorType, kDecodePixels_Mode
, NULL); | 248 return DecodeFile(file, bitmap, kUnknown_SkColorType, kDecodePixels_Mode
, NULL); |
| 243 } | 249 } |
| 244 | 250 |
| 245 /** Decode the image stored in the specified memory buffer, and store the | 251 /** Decode the image stored in the specified memory buffer, and store the |
| 246 result in bitmap. Return true for success or false on failure. | 252 result in bitmap. Return true for success or false on failure. |
| 247 | 253 |
| 248 @param pref Prefer this colortype. | 254 @param pref Prefer this colortype. |
| 249 | 255 |
| 250 @param format On success, if format is non-null, it is set to the format | 256 @param format On success, if format is non-null, it is set to the format |
| 251 of the decoded buffer. On failure it is ignored. | 257 of the decoded buffer. On failure it is ignored. |
| 258 |
| 259 DEPRECATED Please use SkImage::NewFromEncoded() or SkImageGenerator::New
FromEncoded(). |
| 252 */ | 260 */ |
| 253 static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap,
SkColorType pref, | 261 static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap,
SkColorType pref, |
| 254 Mode, Format* format = NULL); | 262 Mode, Format* format = NULL); |
| 255 static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap){ | 263 static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap){ |
| 256 return DecodeMemory(buffer, size, bitmap, kUnknown_SkColorType, kDecodeP
ixels_Mode, NULL); | 264 return DecodeMemory(buffer, size, bitmap, kUnknown_SkColorType, kDecodeP
ixels_Mode, NULL); |
| 257 } | 265 } |
| 258 | 266 |
| 259 /** Decode the image stored in the specified SkStreamRewindable, and store t
he result | 267 /** Decode the image stored in the specified SkStreamRewindable, and store t
he result |
| 260 in bitmap. Return true for success or false on failure. | 268 in bitmap. Return true for success or false on failure. |
| 261 | 269 |
| 262 @param pref Prefer this colortype. | 270 @param pref Prefer this colortype. |
| 263 | 271 |
| 264 @param format On success, if format is non-null, it is set to the format | 272 @param format On success, if format is non-null, it is set to the format |
| 265 of the decoded stream. On failure it is ignored. | 273 of the decoded stream. On failure it is ignored. |
| 274 |
| 275 DEPRECATED Please use SkImage::NewFromEncoded() or SkImageGenerator::New
FromEncoded(). |
| 266 */ | 276 */ |
| 267 static bool DecodeStream(SkStreamRewindable* stream, SkBitmap* bitmap, SkCol
orType pref, Mode, | 277 static bool DecodeStream(SkStreamRewindable* stream, SkBitmap* bitmap, SkCol
orType pref, Mode, |
| 268 Format* format = NULL); | 278 Format* format = NULL); |
| 269 static bool DecodeStream(SkStreamRewindable* stream, SkBitmap* bitmap) { | 279 static bool DecodeStream(SkStreamRewindable* stream, SkBitmap* bitmap) { |
| 270 return DecodeStream(stream, bitmap, kUnknown_SkColorType, kDecodePixels_
Mode, NULL); | 280 return DecodeStream(stream, bitmap, kUnknown_SkColorType, kDecodePixels_
Mode, NULL); |
| 271 } | 281 } |
| 272 | 282 |
| 273 protected: | 283 protected: |
| 274 // must be overridden in subclasses. This guy is called by decode(...) | 284 // must be overridden in subclasses. This guy is called by decode(...) |
| 275 virtual Result onDecode(SkStream*, SkBitmap* bitmap, Mode) = 0; | 285 virtual Result onDecode(SkStream*, SkBitmap* bitmap, Mode) = 0; |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 DECLARE_DECODER_CREATOR(PKMImageDecoder); | 404 DECLARE_DECODER_CREATOR(PKMImageDecoder); |
| 395 DECLARE_DECODER_CREATOR(KTXImageDecoder); | 405 DECLARE_DECODER_CREATOR(KTXImageDecoder); |
| 396 DECLARE_DECODER_CREATOR(ASTCImageDecoder); | 406 DECLARE_DECODER_CREATOR(ASTCImageDecoder); |
| 397 | 407 |
| 398 // Typedefs to make registering decoder and formatter callbacks easier. | 408 // Typedefs to make registering decoder and formatter callbacks easier. |
| 399 // These have to be defined outside SkImageDecoder. :( | 409 // These have to be defined outside SkImageDecoder. :( |
| 400 typedef SkTRegistry<SkImageDecoder*(*)(SkStreamRewindable*)> SkImageDecod
er_DecodeReg; | 410 typedef SkTRegistry<SkImageDecoder*(*)(SkStreamRewindable*)> SkImageDecod
er_DecodeReg; |
| 401 typedef SkTRegistry<SkImageDecoder::Format(*)(SkStreamRewindable*)> SkImageDecod
er_FormatReg; | 411 typedef SkTRegistry<SkImageDecoder::Format(*)(SkStreamRewindable*)> SkImageDecod
er_FormatReg; |
| 402 | 412 |
| 403 #endif | 413 #endif |
| OLD | NEW |