OLD | NEW |
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 GrTextureMaker_DEFINED | 8 #ifndef GrTextureMaker_DEFINED |
9 #define GrTextureMaker_DEFINED | 9 #define GrTextureMaker_DEFINED |
10 | 10 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 bool coordsLimitedToConstraintRect, | 66 bool coordsLimitedToConstraintRect, |
67 const GrTextureParams::FilterMode* filterOrN
ullForBicubic, | 67 const GrTextureParams::FilterMode* filterOrN
ullForBicubic, |
68 SkColorSpace* dstColorSpace, | 68 SkColorSpace* dstColorSpace, |
69 SkSourceGammaTreatment) = 0; | 69 SkSourceGammaTreatment) = 0; |
70 | 70 |
71 virtual ~GrTextureProducer() {} | 71 virtual ~GrTextureProducer() {} |
72 | 72 |
73 int width() const { return fWidth; } | 73 int width() const { return fWidth; } |
74 int height() const { return fHeight; } | 74 int height() const { return fHeight; } |
75 bool isAlphaOnly() const { return fIsAlphaOnly; } | 75 bool isAlphaOnly() const { return fIsAlphaOnly; } |
| 76 virtual SkAlphaType alphaType() const = 0; |
76 virtual SkColorSpace* getColorSpace() = 0; | 77 virtual SkColorSpace* getColorSpace() = 0; |
77 | 78 |
78 protected: | 79 protected: |
79 GrTextureProducer(int width, int height, bool isAlphaOnly) | 80 GrTextureProducer(int width, int height, bool isAlphaOnly) |
80 : fWidth(width) | 81 : fWidth(width) |
81 , fHeight(height) | 82 , fHeight(height) |
82 , fIsAlphaOnly(isAlphaOnly) {} | 83 , fIsAlphaOnly(isAlphaOnly) {} |
83 | 84 |
84 /** Helper for creating a key for a copy from an original key. */ | 85 /** Helper for creating a key for a copy from an original key. */ |
85 static void MakeCopyKeyFromOrigKey(const GrUniqueKey& origKey, | 86 static void MakeCopyKeyFromOrigKey(const GrUniqueKey& origKey, |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 const SkMatrix& textureMatrix, | 138 const SkMatrix& textureMatrix, |
138 const SkRect& constraintRect, | 139 const SkRect& constraintRect, |
139 FilterConstraint, | 140 FilterConstraint, |
140 bool coordsLimitedToConstraintRect, | 141 bool coordsLimitedToConstraintRect, |
141 const GrTextureParams::FilterMode* filterOrNullF
orBicubic, | 142 const GrTextureParams::FilterMode* filterOrNullF
orBicubic, |
142 SkColorSpace* dstColorSpace, | 143 SkColorSpace* dstColorSpace, |
143 SkSourceGammaTreatment) override; | 144 SkSourceGammaTreatment) override; |
144 | 145 |
145 // We do not ref the texture nor the colorspace, so the caller must keep the
m in scope while | 146 // We do not ref the texture nor the colorspace, so the caller must keep the
m in scope while |
146 // this Adjuster is alive. | 147 // this Adjuster is alive. |
147 GrTextureAdjuster(GrTexture*, const SkIRect& area, uint32_t uniqueID, SkColo
rSpace*); | 148 GrTextureAdjuster(GrTexture*, SkAlphaType, const SkIRect& area, uint32_t uni
queID, |
| 149 SkColorSpace*); |
148 | 150 |
149 protected: | 151 protected: |
| 152 SkAlphaType alphaType() const override { return fAlphaType; } |
150 SkColorSpace* getColorSpace() override; | 153 SkColorSpace* getColorSpace() override; |
151 void makeCopyKey(const CopyParams& params, GrUniqueKey* copyKey) override; | 154 void makeCopyKey(const CopyParams& params, GrUniqueKey* copyKey) override; |
152 void didCacheCopy(const GrUniqueKey& copyKey) override; | 155 void didCacheCopy(const GrUniqueKey& copyKey) override; |
153 | 156 |
154 GrTexture* originalTexture() const { return fOriginal; } | 157 GrTexture* originalTexture() const { return fOriginal; } |
155 | 158 |
156 /** Returns the content area or null for the whole original texture */ | 159 /** Returns the content area or null for the whole original texture */ |
157 const SkIRect* contentAreaOrNull() { return fContentArea.getMaybeNull(); } | 160 const SkIRect* contentAreaOrNull() { return fContentArea.getMaybeNull(); } |
158 | 161 |
159 private: | 162 private: |
160 SkTLazy<SkIRect> fContentArea; | 163 SkTLazy<SkIRect> fContentArea; |
161 GrTexture* fOriginal; | 164 GrTexture* fOriginal; |
| 165 SkAlphaType fAlphaType; |
162 SkColorSpace* fColorSpace; | 166 SkColorSpace* fColorSpace; |
163 uint32_t fUniqueID; | 167 uint32_t fUniqueID; |
164 | 168 |
165 GrTexture* refCopy(const CopyParams ©Params); | 169 GrTexture* refCopy(const CopyParams ©Params); |
166 | 170 |
167 typedef GrTextureProducer INHERITED; | 171 typedef GrTextureProducer INHERITED; |
168 }; | 172 }; |
169 | 173 |
170 /** | 174 /** |
171 * Base class for sources that start out as something other than a texture (enco
ded image, | 175 * Base class for sources that start out as something other than a texture (enco
ded image, |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
213 | 217 |
214 GrContext* context() const { return fContext; } | 218 GrContext* context() const { return fContext; } |
215 | 219 |
216 private: | 220 private: |
217 GrContext* fContext; | 221 GrContext* fContext; |
218 | 222 |
219 typedef GrTextureProducer INHERITED; | 223 typedef GrTextureProducer INHERITED; |
220 }; | 224 }; |
221 | 225 |
222 #endif | 226 #endif |
OLD | NEW |