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

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

Issue 31853003: Remove GrContext from SkXfermode::[Aa]sNewEffectOrCoeff() and all subclasses, (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 | « include/core/SkMaskFilter.h ('k') | 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
11 #define SkXfermode_DEFINED 11 #define SkXfermode_DEFINED
12 12
13 #include "SkFlattenable.h" 13 #include "SkFlattenable.h"
14 #include "SkColor.h" 14 #include "SkColor.h"
15 15
16 class GrContext;
17 class GrEffectRef; 16 class GrEffectRef;
18 class GrTexture; 17 class GrTexture;
19 class SkString; 18 class SkString;
20 19
21 /** \class SkXfermode 20 /** \class SkXfermode
22 * 21 *
23 * SkXfermode is the base class for objects that are called to implement custom 22 * SkXfermode is the base class for objects that are called to implement custom
24 * "transfer-modes" in the drawing pipeline. The static function Create(Modes) 23 * "transfer-modes" in the drawing pipeline. The static function Create(Modes)
25 * can be called to return an instance of any of the predefined subclasses as 24 * can be called to return an instance of any of the predefined subclasses as
26 * specified in the Modes enum. When an SkXfermode is assigned to an SkPaint, 25 * specified in the Modes enum. When an SkXfermode is assigned to an SkPaint,
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 src, and dst must all be NULL or all non-NULL. If effect is non-NULL the n the xfermode may 196 src, and dst must all be NULL or all non-NULL. If effect is non-NULL the n the xfermode may
198 optionally allocate an effect to return and the caller as *effect. The c aller will install 197 optionally allocate an effect to return and the caller as *effect. The c aller will install
199 it and own a ref to it. Since the xfermode may or may not assign *effect , the caller should 198 it and own a ref to it. Since the xfermode may or may not assign *effect , the caller should
200 set *effect to NULL beforehand. If the function returns true and *effect is NULL then the 199 set *effect to NULL beforehand. If the function returns true and *effect is NULL then the
201 src and dst coeffs will be applied to the draw. When *effect is non-NULL the coeffs are 200 src and dst coeffs will be applied to the draw. When *effect is non-NULL the coeffs are
202 ignored. background specifies the texture to use as the background for c ompositing, and 201 ignored. background specifies the texture to use as the background for c ompositing, and
203 should be accessed in the effect's fragment shader. If NULL, the effect should request 202 should be accessed in the effect's fragment shader. If NULL, the effect should request
204 access to destination color (setWillReadDstColor()), and use that in the fragment shader 203 access to destination color (setWillReadDstColor()), and use that in the fragment shader
205 (builder->dstColor()). 204 (builder->dstColor()).
206 */ 205 */
207 virtual bool asNewEffectOrCoeff(GrContext*, 206 virtual bool asNewEffectOrCoeff(GrEffectRef** effect,
208 GrEffectRef** effect,
209 Coeff* src, 207 Coeff* src,
210 Coeff* dst, 208 Coeff* dst,
211 GrTexture* background = NULL) const; 209 GrTexture* background = NULL) const;
212 210
213 /** 211 /**
214 * The same as calling xfermode->asNewEffect(...), except that this also ch ecks if the xfermode 212 * The same as calling xfermode->asNewEffect(...), except that this also ch ecks if the xfermode
215 * is NULL, and if so, treats it as kSrcOver_Mode. 213 * is NULL, and if so, treats it as kSrcOver_Mode.
216 */ 214 */
217 static bool AsNewEffectOrCoeff(SkXfermode*, 215 static bool AsNewEffectOrCoeff(SkXfermode*,
218 GrContext*,
219 GrEffectRef** effect, 216 GrEffectRef** effect,
220 Coeff* src, 217 Coeff* src,
221 Coeff* dst, 218 Coeff* dst,
222 GrTexture* background = NULL); 219 GrTexture* background = NULL);
223 220
224 SkDEVCODE(virtual void toString(SkString* str) const = 0;) 221 SkDEVCODE(virtual void toString(SkString* str) const = 0;)
225 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() 222 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
226 protected: 223 protected:
227 SkXfermode(SkFlattenableReadBuffer& rb) : SkFlattenable(rb) {} 224 SkXfermode(SkFlattenableReadBuffer& rb) : SkFlattenable(rb) {}
228 225
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 return fProc; 279 return fProc;
283 } 280 }
284 281
285 private: 282 private:
286 SkXfermodeProc fProc; 283 SkXfermodeProc fProc;
287 284
288 typedef SkXfermode INHERITED; 285 typedef SkXfermode INHERITED;
289 }; 286 };
290 287
291 #endif 288 #endif
OLDNEW
« no previous file with comments | « include/core/SkMaskFilter.h ('k') | src/core/SkXfermode.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698