OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #ifndef SkImageDecoder_DEFINED | 10 #ifndef SkImageDecoder_DEFINED |
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
431 */ | 431 */ |
432 | 432 |
433 public: | 433 public: |
434 bool shouldCancelDecode() const { return fShouldCancelDecode; } | 434 bool shouldCancelDecode() const { return fShouldCancelDecode; } |
435 | 435 |
436 protected: | 436 protected: |
437 SkImageDecoder(); | 437 SkImageDecoder(); |
438 | 438 |
439 // helper function for decoders to handle the (common) case where there is o
nly | 439 // helper function for decoders to handle the (common) case where there is o
nly |
440 // once choice available in the image file. | 440 // once choice available in the image file. |
441 bool chooseFromOneChoice(SkBitmap::Config config, int width, int height) con
st; | 441 bool chooseFromOneChoice(SkColorType, int width, int height) const; |
442 | 442 |
443 /* Helper for subclasses. Call this to allocate the pixel memory given the
bitmap's | 443 /* Helper for subclasses. Call this to allocate the pixel memory given the
bitmap's |
444 width/height/rowbytes/config. Returns true on success. This method handl
es checking | 444 width/height/rowbytes/config. Returns true on success. This method handl
es checking |
445 for an optional Allocator. | 445 for an optional Allocator. |
446 */ | 446 */ |
447 bool allocPixelRef(SkBitmap*, SkColorTable*) const; | 447 bool allocPixelRef(SkBitmap*, SkColorTable*) const; |
448 | 448 |
449 /** | 449 /** |
450 * The raw data of the src image. | 450 * The raw data of the src image. |
451 */ | 451 */ |
452 enum SrcDepth { | 452 enum SrcDepth { |
453 // Color-indexed. | 453 // Color-indexed. |
454 kIndex_SrcDepth, | 454 kIndex_SrcDepth, |
455 // Grayscale in 8 bits. | 455 // Grayscale in 8 bits. |
456 k8BitGray_SrcDepth, | 456 k8BitGray_SrcDepth, |
457 // 8 bits per component. Used for 24 bit if there is no alpha. | 457 // 8 bits per component. Used for 24 bit if there is no alpha. |
458 k32Bit_SrcDepth, | 458 k32Bit_SrcDepth, |
459 }; | 459 }; |
460 /** The subclass, inside onDecode(), calls this to determine the config of | 460 /** The subclass, inside onDecode(), calls this to determine the colorType o
f |
461 the returned bitmap. SrcDepth and hasAlpha reflect the raw data of the | 461 the returned bitmap. SrcDepth and hasAlpha reflect the raw data of the |
462 src image. This routine returns the caller's preference given | 462 src image. This routine returns the caller's preference given |
463 srcDepth and hasAlpha, or kNo_Config if there is no preference. | 463 srcDepth and hasAlpha, or kUnknown_SkColorType if there is no preference
. |
464 | 464 |
465 Note: this also takes into account GetDeviceConfig(), so the subclass | 465 Note: this also takes into account GetDeviceConfig(), so the subclass |
466 need not call that. | 466 need not call that. |
467 */ | 467 */ |
468 SkBitmap::Config getPrefConfig(SrcDepth, bool hasAlpha) const; | 468 SkColorType getPrefColorType(SrcDepth, bool hasAlpha) const; |
469 | 469 |
470 private: | 470 private: |
471 Peeker* fPeeker; | 471 Peeker* fPeeker; |
472 Chooser* fChooser; | 472 Chooser* fChooser; |
473 SkBitmap::Allocator* fAllocator; | 473 SkBitmap::Allocator* fAllocator; |
474 int fSampleSize; | 474 int fSampleSize; |
475 SkBitmap::Config fDefaultPref; // use if fUsePrefTable is false | 475 SkBitmap::Config fDefaultPref; // use if fUsePrefTable is false |
476 PrefConfigTable fPrefTable; // use if fUsePrefTable is true | 476 PrefConfigTable fPrefTable; // use if fUsePrefTable is true |
477 bool fDitherImage; | 477 bool fDitherImage; |
478 bool fUsePrefTable; | 478 bool fUsePrefTable; |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 DECLARE_DECODER_CREATOR(WEBPImageDecoder); | 529 DECLARE_DECODER_CREATOR(WEBPImageDecoder); |
530 DECLARE_DECODER_CREATOR(PKMImageDecoder); | 530 DECLARE_DECODER_CREATOR(PKMImageDecoder); |
531 DECLARE_DECODER_CREATOR(KTXImageDecoder); | 531 DECLARE_DECODER_CREATOR(KTXImageDecoder); |
532 | 532 |
533 // Typedefs to make registering decoder and formatter callbacks easier. | 533 // Typedefs to make registering decoder and formatter callbacks easier. |
534 // These have to be defined outside SkImageDecoder. :( | 534 // These have to be defined outside SkImageDecoder. :( |
535 typedef SkTRegistry<SkImageDecoder*(*)(SkStreamRewindable*)> SkImageDecod
er_DecodeReg; | 535 typedef SkTRegistry<SkImageDecoder*(*)(SkStreamRewindable*)> SkImageDecod
er_DecodeReg; |
536 typedef SkTRegistry<SkImageDecoder::Format(*)(SkStreamRewindable*)> SkImageDecod
er_FormatReg; | 536 typedef SkTRegistry<SkImageDecoder::Format(*)(SkStreamRewindable*)> SkImageDecod
er_FormatReg; |
537 | 537 |
538 #endif | 538 #endif |
OLD | NEW |