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

Side by Side Diff: include/core/SkXfermode.h

Issue 37593002: Split up SkXfermode::asNewEffectOrCoeff() into asNewEffect(), asCoeff(). (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/core/SkXfermode.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 /* 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 SkXfermode_DEFINED 10 #ifndef SkXfermode_DEFINED
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 * src and dst parameters. 185 * src and dst parameters.
186 */ 186 */
187 static bool ModeAsCoeff(Mode mode, Coeff* src, Coeff* dst); 187 static bool ModeAsCoeff(Mode mode, Coeff* src, Coeff* dst);
188 188
189 // DEPRECATED: call AsMode(...) 189 // DEPRECATED: call AsMode(...)
190 static bool IsMode(const SkXfermode* xfer, Mode* mode) { 190 static bool IsMode(const SkXfermode* xfer, Mode* mode) {
191 return AsMode(xfer, mode); 191 return AsMode(xfer, mode);
192 } 192 }
193 193
194 /** A subclass may implement this factory function to work with the GPU back end. It is legal 194 /** A subclass may implement this factory function to work with the GPU back end. It is legal
195 to call this with all but the context param NULL to simply test the retu rn value. effect, 195 to call this with all params NULL to simply test the return value. If ef fect is non-NULL
196 src, and dst must all be NULL or all non-NULL. If effect is non-NULL the n the xfermode may 196 then the xfermode may optionally allocate an effect to return and the ca ller as *effect.
197 optionally allocate an effect to return and the caller as *effect. The c aller will install 197 The caller will install it and own a ref to it. Since the xfermode may o r may not assign
198 it and own a ref to it. Since the xfermode may or may not assign *effect , the caller should 198 *effect, the caller should set *effect to NULL beforehand. background sp ecifies the
199 set *effect to NULL beforehand. If the function returns true and *effect is NULL then the 199 texture to use as the background for compositing, and should be accessed in the effect's
200 src and dst coeffs will be applied to the draw. When *effect is non-NULL the coeffs are 200 fragment shader. If NULL, the effect should request access to destinatio n color
201 ignored. background specifies the texture to use as the background for c ompositing, and 201 (setWillReadDstColor()), and use that in the fragment shader (builder->d stColor()).
202 should be accessed in the effect's fragment shader. If NULL, the effect should request
203 access to destination color (setWillReadDstColor()), and use that in the fragment shader
204 (builder->dstColor()).
205 */ 202 */
206 virtual bool asNewEffectOrCoeff(GrEffectRef** effect, 203 virtual bool asNewEffect(GrEffectRef** effect, GrTexture* background = NULL) const;
207 Coeff* src,
208 Coeff* dst,
209 GrTexture* background = NULL) const;
210 204
211 /** 205 /** Returns true if the xfermode can be expressed as coeffs (src, dst), or a s an effect
212 * The same as calling xfermode->asNewEffect(...), except that this also ch ecks if the xfermode 206 (effect). This helper calls the asCoeff() and asNewEffect() virtuals. If the xfermode is
213 * is NULL, and if so, treats it as kSrcOver_Mode. 207 NULL, it is treated as kSrcOver_Mode. It is legal to call this with all params NULL to
208 simply test the return value. effect, src, and dst must all be NULL or all non-NULL.
214 */ 209 */
215 static bool AsNewEffectOrCoeff(SkXfermode*, 210 static bool AsNewEffectOrCoeff(SkXfermode*,
216 GrEffectRef** effect, 211 GrEffectRef** effect,
217 Coeff* src, 212 Coeff* src,
218 Coeff* dst, 213 Coeff* dst,
219 GrTexture* background = NULL); 214 GrTexture* background = NULL);
220 215
221 SkDEVCODE(virtual void toString(SkString* str) const = 0;) 216 SkDEVCODE(virtual void toString(SkString* str) const = 0;)
222 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() 217 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
223 protected: 218 protected:
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 return fProc; 274 return fProc;
280 } 275 }
281 276
282 private: 277 private:
283 SkXfermodeProc fProc; 278 SkXfermodeProc fProc;
284 279
285 typedef SkXfermode INHERITED; 280 typedef SkXfermode INHERITED;
286 }; 281 };
287 282
288 #endif 283 #endif
OLDNEW
« no previous file with comments | « no previous file | src/core/SkXfermode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698