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

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

Issue 543623004: Removing vertex attrib indices (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: cleanup 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
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 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 } 164 }
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) {
175 SkASSERT(effect); 175 SkASSERT(effect);
176 SkASSERT(effect->requiresVertexShader());
176 SkASSERT(!this->hasGeometryProcessor()); 177 SkASSERT(!this->hasGeometryProcessor());
177 fGeometryProcessor.reset(new GrEffectStage(effect, attr0, attr1)); 178 fGeometryProcessor.reset(new GrEffectStage(effect));
178 this->invalidateBlendOptFlags(); 179 this->invalidateBlendOptFlags();
179 return effect; 180 return effect;
180 } 181 }
181 182
182 /////////////////////////////////////////////////////////////////////////// 183 ///////////////////////////////////////////////////////////////////////////
183 /// @name Effect Stages 184 /// @name Effect Stages
184 /// Each stage hosts a GrEffect. The effect produces an output color or cove rage in the fragment 185 /// 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 186 /// 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, 187 /// available to it in the fragment and vertex shader (e.g. the vertex posit ion, the dst color,
187 /// the fragment position, local coordinates). 188 /// the fragment position, local coordinates).
188 /// 189 ///
189 /// The stages are divided into two sets, color-computing and coverage-compu ting. The final 190 /// 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 191 /// 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 192 /// 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. 193 /// pixel coverage rather than as input to the src/dst color blend step.
193 /// 194 ///
194 /// The input color to the first color-stage is either the constant color or interpolated 195 /// 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 196 /// 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. 197 /// (usually full-coverage) or interpolated per-vertex coverage.
197 /// 198 ///
198 /// See the documentation of kCoverageDrawing_StateBit for information about disabling the 199 /// See the documentation of kCoverageDrawing_StateBit for information about disabling the
199 /// the color / coverage distinction. 200 /// the color / coverage distinction.
200 //// 201 ////
201 202
202 const GrEffect* addColorEffect(const GrEffect* effect, int attr0 = -1, int a ttr1 = -1) { 203 const GrEffect* addColorEffect(const GrEffect* effect) {
203 SkASSERT(effect); 204 SkASSERT(effect);
204 SkNEW_APPEND_TO_TARRAY(&fColorStages, GrEffectStage, (effect, attr0, att r1)); 205 SkASSERT(!effect->requiresVertexShader());
206 SkNEW_APPEND_TO_TARRAY(&fColorStages, GrEffectStage, (effect));
205 this->invalidateBlendOptFlags(); 207 this->invalidateBlendOptFlags();
206 return effect; 208 return effect;
207 } 209 }
208 210
209 const GrEffect* addCoverageEffect(const GrEffect* effect, int attr0 = -1, in t attr1 = -1) { 211 const GrEffect* addCoverageEffect(const GrEffect* effect) {
210 SkASSERT(effect); 212 SkASSERT(effect);
211 SkNEW_APPEND_TO_TARRAY(&fCoverageStages, GrEffectStage, (effect, attr0, attr1)); 213 SkASSERT(!effect->requiresVertexShader());
214 SkNEW_APPEND_TO_TARRAY(&fCoverageStages, GrEffectStage, (effect));
212 this->invalidateBlendOptFlags(); 215 this->invalidateBlendOptFlags();
213 return effect; 216 return effect;
214 } 217 }
215 218
216 /** 219 /**
217 * Creates a GrSimpleTextureEffect that uses local coords as texture coordin ates. 220 * Creates a GrSimpleTextureEffect that uses local coords as texture coordin ates.
218 */ 221 */
219 void addColorTextureEffect(GrTexture* texture, const SkMatrix& matrix) { 222 void addColorTextureEffect(GrTexture* texture, const SkMatrix& matrix) {
220 this->addColorEffect(GrSimpleTextureEffect::Create(texture, matrix))->un ref(); 223 this->addColorEffect(GrSimpleTextureEffect::Create(texture, matrix))->un ref();
221 } 224 }
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 // Some of the auto restore objects assume that no effects are removed durin g their lifetime. 569 // Some of the auto restore objects assume that no effects are removed durin g their lifetime.
567 // This is used to assert that this condition holds. 570 // This is used to assert that this condition holds.
568 SkDEBUGCODE(int fBlockEffectRemovalCnt;) 571 SkDEBUGCODE(int fBlockEffectRemovalCnt;)
569 572
570 void internalSetVertexAttribs(const GrVertexAttrib attribs[], int count, siz e_t stride); 573 void internalSetVertexAttribs(const GrVertexAttrib attribs[], int count, siz e_t stride);
571 574
572 typedef GrRODrawState INHERITED; 575 typedef GrRODrawState INHERITED;
573 }; 576 };
574 577
575 #endif 578 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698