Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(238)

Side by Side Diff: include/codec/SkCodec.h

Issue 980903002: Option for SkCodec to treat dst as all zeroes. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/codec/SkCodec.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 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 SkCodec_DEFINED 8 #ifndef SkCodec_DEFINED
9 #define SkCodec_DEFINED 9 #define SkCodec_DEFINED
10 10
(...skipping 30 matching lines...) Expand all
41 41
42 /** 42 /**
43 * Return a size that approximately supports the desired scale factor. 43 * Return a size that approximately supports the desired scale factor.
44 * The codec may not be able to scale efficiently to the exact scale 44 * The codec may not be able to scale efficiently to the exact scale
45 * factor requested, so return a size that approximates that scale. 45 * factor requested, so return a size that approximates that scale.
46 * 46 *
47 * FIXME: Move to SkImageGenerator? 47 * FIXME: Move to SkImageGenerator?
48 */ 48 */
49 SkISize getScaledDimensions(float desiredScale) const; 49 SkISize getScaledDimensions(float desiredScale) const;
50 50
51 /**
52 * Whether or not the memory passed to getPixels is zero initialized.
53 */
54 enum ZeroInitialized {
scroggo 2015/03/05 16:12:23 I decided to go with ZeroInitialized instead of Sk
55 /**
56 * The memory passed to getPixels is zero initialized. The SkCodec
57 * may take advantage of this by skipping writing zeroes.
58 */
59 kYes_ZeroInitialized,
60 /**
61 * The memory passed to getPixels has not been initialized to zero,
62 * so the SkCodec must write all zeroes to memory.
63 *
64 * This is the default.
65 */
66 kNo_ZeroInitialized,
67 };
68
69 /**
70 * Specify whether this SkCodec should treat the memory passed to
71 * getPixels as zero initialized.
72 *
73 * The default is No.
74 */
75 void setZeroInitialized(ZeroInitialized zero) { fZeroInitialized = zero; }
scroggo 2015/03/05 16:12:23 It probably makes sense to include this as part of
76
77 /**
78 * Return whether this SkCodec considers memory passed to getPixels as
79 * zero initialized.
80 */
81 ZeroInitialized getZeroInitialized() const { return fZeroInitialized; }
82
51 protected: 83 protected:
52 SkCodec(const SkImageInfo&, SkStream*); 84 SkCodec(const SkImageInfo&, SkStream*);
53 85
54 /** 86 /**
55 * The SkAlphaType is a conservative answer. i.e. it is possible that it 87 * The SkAlphaType is a conservative answer. i.e. it is possible that it
56 * initially returns a non-opaque answer, but completing the decode 88 * initially returns a non-opaque answer, but completing the decode
57 * reveals that the image is actually opaque. 89 * reveals that the image is actually opaque.
58 */ 90 */
59 bool onGetInfo(SkImageInfo* info) SK_OVERRIDE { 91 bool onGetInfo(SkImageInfo* info) SK_OVERRIDE {
60 *info = fInfo; 92 *info = fInfo;
(...skipping 17 matching lines...) Expand all
78 * - if the stream did not need to be rewound. 110 * - if the stream did not need to be rewound.
79 * false 111 * false
80 * - if the stream needed to be rewound, and rewind failed. 112 * - if the stream needed to be rewound, and rewind failed.
81 * Subclasses MUST call this function before reading the stream (e.g. in 113 * Subclasses MUST call this function before reading the stream (e.g. in
82 * onGetPixels). If it returns false, onGetPixels should return 114 * onGetPixels). If it returns false, onGetPixels should return
83 * kCouldNotRewind. 115 * kCouldNotRewind.
84 */ 116 */
85 bool SK_WARN_UNUSED_RESULT rewindIfNeeded(); 117 bool SK_WARN_UNUSED_RESULT rewindIfNeeded();
86 118
87 private: 119 private:
88 const SkImageInfo fInfo; 120 const SkImageInfo fInfo;
89 SkAutoTDelete<SkStream> fStream; 121 SkAutoTDelete<SkStream> fStream;
90 bool fNeedsRewind; 122 bool fNeedsRewind;
123 ZeroInitialized fZeroInitialized;
91 }; 124 };
92 #endif // SkCodec_DEFINED 125 #endif // SkCodec_DEFINED
OLDNEW
« no previous file with comments | « no previous file | src/codec/SkCodec.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698