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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 static Format GetStreamFormat(SkStream*); | 52 static Format GetStreamFormat(SkStream*); |
53 | 53 |
54 /** Return a readable string of the Format provided. | 54 /** Return a readable string of the Format provided. |
55 */ | 55 */ |
56 static const char* GetFormatName(Format); | 56 static const char* GetFormatName(Format); |
57 | 57 |
58 /** Return a readable string of the value returned by getFormat(). | 58 /** Return a readable string of the value returned by getFormat(). |
59 */ | 59 */ |
60 const char* getFormatName() const; | 60 const char* getFormatName() const; |
61 | 61 |
| 62 /** Whether the decoder should skip writing zeroes to output if possible. |
| 63 */ |
| 64 bool getSkipWritingZeroes() const { return fSkipWritingZeroes; } |
| 65 |
| 66 /** Set to true if the decoder should skip writing any zeroes when |
| 67 creating the output image. |
| 68 This is a hint that may not be respected by the decoder. |
| 69 It should only be used if it is known that the memory to write |
| 70 to has already been set to 0; otherwise the resulting image will |
| 71 have garbage. |
| 72 This is ideal for images that contain a lot of completely transparent |
| 73 pixels, but may be a performance hit for an image that has only a |
| 74 few transparent pixels. |
| 75 The default is false. |
| 76 */ |
| 77 void setSkipWritingZeroes(bool skip) { fSkipWritingZeroes = skip; } |
| 78 |
62 /** Returns true if the decoder should try to dither the resulting image. | 79 /** Returns true if the decoder should try to dither the resulting image. |
63 The default setting is true. | 80 The default setting is true. |
64 */ | 81 */ |
65 bool getDitherImage() const { return fDitherImage; } | 82 bool getDitherImage() const { return fDitherImage; } |
66 | 83 |
67 /** Set to true if the the decoder should try to dither the resulting image. | 84 /** Set to true if the the decoder should try to dither the resulting image. |
68 The default setting is true. | 85 The default setting is true. |
69 */ | 86 */ |
70 void setDitherImage(bool dither) { fDitherImage = dither; } | 87 void setDitherImage(bool dither) { fDitherImage = dither; } |
71 | 88 |
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 | 517 |
501 private: | 518 private: |
502 Peeker* fPeeker; | 519 Peeker* fPeeker; |
503 Chooser* fChooser; | 520 Chooser* fChooser; |
504 SkBitmap::Allocator* fAllocator; | 521 SkBitmap::Allocator* fAllocator; |
505 int fSampleSize; | 522 int fSampleSize; |
506 SkBitmap::Config fDefaultPref; // use if fUsePrefTable is false | 523 SkBitmap::Config fDefaultPref; // use if fUsePrefTable is false |
507 PrefConfigTable fPrefTable; // use if fUsePrefTable is true | 524 PrefConfigTable fPrefTable; // use if fUsePrefTable is true |
508 bool fDitherImage; | 525 bool fDitherImage; |
509 bool fUsePrefTable; | 526 bool fUsePrefTable; |
| 527 bool fSkipWritingZeroes; |
510 mutable bool fShouldCancelDecode; | 528 mutable bool fShouldCancelDecode; |
511 bool fPreferQualityOverSpeed; | 529 bool fPreferQualityOverSpeed; |
512 bool fRequireUnpremultipliedColors; | 530 bool fRequireUnpremultipliedColors; |
513 }; | 531 }; |
514 | 532 |
515 /** Calling newDecoder with a stream returns a new matching imagedecoder | 533 /** Calling newDecoder with a stream returns a new matching imagedecoder |
516 instance, or NULL if none can be found. The caller must manage its ownership | 534 instance, or NULL if none can be found. The caller must manage its ownership |
517 of the stream as usual, calling unref() when it is done, as the returned | 535 of the stream as usual, calling unref() when it is done, as the returned |
518 decoder may have called ref() (and if so, the decoder is responsible for | 536 decoder may have called ref() (and if so, the decoder is responsible for |
519 balancing its ownership when it is destroyed). | 537 balancing its ownership when it is destroyed). |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 DECLARE_DECODER_CREATOR(WBMPImageDecoder); | 576 DECLARE_DECODER_CREATOR(WBMPImageDecoder); |
559 DECLARE_DECODER_CREATOR(WEBPImageDecoder); | 577 DECLARE_DECODER_CREATOR(WEBPImageDecoder); |
560 | 578 |
561 | 579 |
562 // Typedefs to make registering decoder and formatter callbacks easier. | 580 // Typedefs to make registering decoder and formatter callbacks easier. |
563 // These have to be defined outside SkImageDecoder. :( | 581 // These have to be defined outside SkImageDecoder. :( |
564 typedef SkTRegistry<SkImageDecoder*(*)(SkStream*)> SkImageDecoder_DecodeR
eg; | 582 typedef SkTRegistry<SkImageDecoder*(*)(SkStream*)> SkImageDecoder_DecodeR
eg; |
565 typedef SkTRegistry<SkImageDecoder::Format(*)(SkStream*)> SkImageDecoder_FormatR
eg; | 583 typedef SkTRegistry<SkImageDecoder::Format(*)(SkStream*)> SkImageDecoder_FormatR
eg; |
566 | 584 |
567 #endif | 585 #endif |
OLD | NEW |