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

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

Issue 973593002: change colorfilter to return an array of frag processors (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: update gm 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
OLDNEW
1
2 /* 1 /*
3 * Copyright 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
4 * 3 *
5 * 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
6 * found in the LICENSE file. 5 * found in the LICENSE file.
7 */ 6 */
8 7
9
10 #ifndef SkColorFilter_DEFINED 8 #ifndef SkColorFilter_DEFINED
11 #define SkColorFilter_DEFINED 9 #define SkColorFilter_DEFINED
12 10
13 #include "SkColor.h" 11 #include "SkColor.h"
14 #include "SkFlattenable.h" 12 #include "SkFlattenable.h"
13 #include "SkTDArray.h"
15 #include "SkXfermode.h" 14 #include "SkXfermode.h"
16 15
17 class SkBitmap; 16 class SkBitmap;
18 class GrProcessor; 17 class GrProcessor;
19 class GrContext; 18 class GrContext;
20 19
21 /** 20 /**
22 * ColorFilters are optional objects in the drawing pipeline. When present in 21 * ColorFilters are optional objects in the drawing pipeline. When present in
23 * a paint, they are called with the "src" colors, and return new colors, which 22 * a paint, they are called with the "src" colors, and return new colors, which
24 * are then passed onto the next stage (either ImageFilter or Xfermode). 23 * are then passed onto the next stage (either ImageFilter or Xfermode).
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 are ignored. 130 are ignored.
132 */ 131 */
133 static SkColorFilter* CreateLightingFilter(SkColor mul, SkColor add); 132 static SkColorFilter* CreateLightingFilter(SkColor mul, SkColor add);
134 133
135 /** Construct a colorfilter whose effect is to first apply the inner filter and then apply 134 /** Construct a colorfilter whose effect is to first apply the inner filter and then apply
136 * the outer filter to the result of the inner's. 135 * the outer filter to the result of the inner's.
137 * The reference counts for outer and inner are incremented. 136 * The reference counts for outer and inner are incremented.
138 */ 137 */
139 static SkColorFilter* CreateComposeFilter(SkColorFilter* outer, SkColorFilte r* inner); 138 static SkColorFilter* CreateComposeFilter(SkColorFilter* outer, SkColorFilte r* inner);
140 139
141 /** A subclass may implement this factory function to work with the GPU back end. If the return 140 /**
142 is non-NULL then the caller owns a ref on the returned object. 141 * A subclass may implement this factory function to work with the GPU back end.
142 * If it returns true, then 1 or more fragment processors will have been ap pended to the
143 * array, each of which has been ref'd, so that the caller is responsible f or calling unref()
144 * on them when they are finished. If more than one processor is appended, they will be
145 * applied in FIFO order.
146 *
147 * If the subclass returns false, then it should not modify the array at al l.
143 */ 148 */
144 virtual GrFragmentProcessor* asFragmentProcessor(GrContext*) const; 149 virtual bool asFragmentProcessors(GrContext*, SkTDArray<GrFragmentProcessor* >*) const {
bsalomon 2015/03/03 17:51:01 Does this mean we always have to malloc for the co
150 return false;
151 }
145 152
146 SK_TO_STRING_PUREVIRT() 153 SK_TO_STRING_PUREVIRT()
147 154
148 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() 155 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
149 SK_DEFINE_FLATTENABLE_TYPE(SkColorFilter) 156 SK_DEFINE_FLATTENABLE_TYPE(SkColorFilter)
150 157
151 protected: 158 protected:
152 SkColorFilter() {} 159 SkColorFilter() {}
153 160
154 private: 161 private:
155 typedef SkFlattenable INHERITED; 162 typedef SkFlattenable INHERITED;
156 }; 163 };
157 164
158 #endif 165 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698