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

Side by Side Diff: src/gpu/GrDrawState.h

Issue 544233002: "NULL !=" = NULL (Closed) Base URL: https://skia.googlesource.com/skia.git@are
Patch Set: rebase Created 6 years, 3 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 | « src/gpu/GrDistanceFieldTextContext.cpp ('k') | src/gpu/GrDrawState.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 2011 Google Inc. 2 * Copyright 2011 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 GrDrawState_DEFINED 8 #ifndef GrDrawState_DEFINED
9 #define GrDrawState_DEFINED 9 #define GrDrawState_DEFINED
10 10
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 165
166 /// @} 166 /// @}
167 167
168 /** 168 /**
169 * The geometry processor is the sole element of the skia pipeline which can use the vertex, 169 * The geometry processor is the sole element of the skia pipeline which can use the vertex,
170 * geometry, and tesselation shaders. The GP may also compute a coverage in its fragment shader 170 * geometry, and tesselation shaders. The GP may also compute a coverage in its fragment shader
171 * but is never put in the color processing pipeline. 171 * but is never put in the color processing pipeline.
172 */ 172 */
173 173
174 const GrEffect* setGeometryProcessor(const GrEffect* effect, int attr0 = -1, int attr1 = -1) { 174 const GrEffect* setGeometryProcessor(const GrEffect* effect, int attr0 = -1, int attr1 = -1) {
175 SkASSERT(NULL != effect); 175 SkASSERT(effect);
176 SkASSERT(!this->hasGeometryProcessor()); 176 SkASSERT(!this->hasGeometryProcessor());
177 fGeometryProcessor.reset(new GrEffectStage(effect, attr0, attr1)); 177 fGeometryProcessor.reset(new GrEffectStage(effect, attr0, attr1));
178 this->invalidateBlendOptFlags(); 178 this->invalidateBlendOptFlags();
179 return effect; 179 return effect;
180 } 180 }
181 181
182 /////////////////////////////////////////////////////////////////////////// 182 ///////////////////////////////////////////////////////////////////////////
183 /// @name Effect Stages 183 /// @name Effect Stages
184 /// Each stage hosts a GrEffect. The effect produces an output color or cove rage in the fragment 184 /// Each stage hosts a GrEffect. The effect produces an output color or cove rage in the fragment
185 /// shader. Its inputs are the output from the previous stage as well as som e variables 185 /// shader. Its inputs are the output from the previous stage as well as som e variables
186 /// available to it in the fragment and vertex shader (e.g. the vertex posit ion, the dst color, 186 /// available to it in the fragment and vertex shader (e.g. the vertex posit ion, the dst color,
187 /// the fragment position, local coordinates). 187 /// the fragment position, local coordinates).
188 /// 188 ///
189 /// The stages are divided into two sets, color-computing and coverage-compu ting. The final 189 /// The stages are divided into two sets, color-computing and coverage-compu ting. The final
190 /// color stage produces the final pixel color. The coverage-computing stage s function exactly 190 /// color stage produces the final pixel color. The coverage-computing stage s function exactly
191 /// as the color-computing but the output of the final coverage stage is tre ated as a fractional 191 /// as the color-computing but the output of the final coverage stage is tre ated as a fractional
192 /// pixel coverage rather than as input to the src/dst color blend step. 192 /// pixel coverage rather than as input to the src/dst color blend step.
193 /// 193 ///
194 /// The input color to the first color-stage is either the constant color or interpolated 194 /// The input color to the first color-stage is either the constant color or interpolated
195 /// per-vertex colors. The input to the first coverage stage is either a con stant coverage 195 /// per-vertex colors. The input to the first coverage stage is either a con stant coverage
196 /// (usually full-coverage) or interpolated per-vertex coverage. 196 /// (usually full-coverage) or interpolated per-vertex coverage.
197 /// 197 ///
198 /// See the documentation of kCoverageDrawing_StateBit for information about disabling the 198 /// See the documentation of kCoverageDrawing_StateBit for information about disabling the
199 /// the color / coverage distinction. 199 /// the color / coverage distinction.
200 //// 200 ////
201 201
202 const GrEffect* addColorEffect(const GrEffect* effect, int attr0 = -1, int a ttr1 = -1) { 202 const GrEffect* addColorEffect(const GrEffect* effect, int attr0 = -1, int a ttr1 = -1) {
203 SkASSERT(NULL != effect); 203 SkASSERT(effect);
204 SkNEW_APPEND_TO_TARRAY(&fColorStages, GrEffectStage, (effect, attr0, att r1)); 204 SkNEW_APPEND_TO_TARRAY(&fColorStages, GrEffectStage, (effect, attr0, att r1));
205 this->invalidateBlendOptFlags(); 205 this->invalidateBlendOptFlags();
206 return effect; 206 return effect;
207 } 207 }
208 208
209 const GrEffect* addCoverageEffect(const GrEffect* effect, int attr0 = -1, in t attr1 = -1) { 209 const GrEffect* addCoverageEffect(const GrEffect* effect, int attr0 = -1, in t attr1 = -1) {
210 SkASSERT(NULL != effect); 210 SkASSERT(effect);
211 SkNEW_APPEND_TO_TARRAY(&fCoverageStages, GrEffectStage, (effect, attr0, attr1)); 211 SkNEW_APPEND_TO_TARRAY(&fCoverageStages, GrEffectStage, (effect, attr0, attr1));
212 this->invalidateBlendOptFlags(); 212 this->invalidateBlendOptFlags();
213 return effect; 213 return effect;
214 } 214 }
215 215
216 /** 216 /**
217 * Creates a GrSimpleTextureEffect that uses local coords as texture coordin ates. 217 * Creates a GrSimpleTextureEffect that uses local coords as texture coordin ates.
218 */ 218 */
219 void addColorTextureEffect(GrTexture* texture, const SkMatrix& matrix) { 219 void addColorTextureEffect(GrTexture* texture, const SkMatrix& matrix) {
220 this->addColorEffect(GrSimpleTextureEffect::Create(texture, matrix))->un ref(); 220 this->addColorEffect(GrSimpleTextureEffect::Create(texture, matrix))->un ref();
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 , fOriginalGPID(SK_InvalidUniqueID) 265 , fOriginalGPID(SK_InvalidUniqueID)
266 , fColorEffectCnt(0) 266 , fColorEffectCnt(0)
267 , fCoverageEffectCnt(0) { 267 , fCoverageEffectCnt(0) {
268 this->set(ds); 268 this->set(ds);
269 } 269 }
270 270
271 ~AutoRestoreEffects() { this->set(NULL); } 271 ~AutoRestoreEffects() { this->set(NULL); }
272 272
273 void set(GrDrawState* ds); 273 void set(GrDrawState* ds);
274 274
275 bool isSet() const { return NULL != fDrawState; } 275 bool isSet() const { return SkToBool(fDrawState); }
276 276
277 private: 277 private:
278 GrDrawState* fDrawState; 278 GrDrawState* fDrawState;
279 uint32_t fOriginalGPID; 279 uint32_t fOriginalGPID;
280 int fColorEffectCnt; 280 int fColorEffectCnt;
281 int fCoverageEffectCnt; 281 int fCoverageEffectCnt;
282 }; 282 };
283 283
284 /// @} 284 /// @}
285 285
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 // Some of the auto restore objects assume that no effects are removed durin g their lifetime. 564 // Some of the auto restore objects assume that no effects are removed durin g their lifetime.
565 // This is used to assert that this condition holds. 565 // This is used to assert that this condition holds.
566 SkDEBUGCODE(int fBlockEffectRemovalCnt;) 566 SkDEBUGCODE(int fBlockEffectRemovalCnt;)
567 567
568 void internalSetVertexAttribs(const GrVertexAttrib attribs[], int count, siz e_t stride); 568 void internalSetVertexAttribs(const GrVertexAttrib attribs[], int count, siz e_t stride);
569 569
570 typedef GrRODrawState INHERITED; 570 typedef GrRODrawState INHERITED;
571 }; 571 };
572 572
573 #endif 573 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrDistanceFieldTextContext.cpp ('k') | src/gpu/GrDrawState.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698