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

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

Issue 862933005: remove drawtype (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 11 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 | « no previous file | src/gpu/GrGeometryProcessor.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 2013 Google Inc. 2 * Copyright 2013 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 GrGeometryProcessor_DEFINED 8 #ifndef GrGeometryProcessor_DEFINED
9 #define GrGeometryProcessor_DEFINED 9 #define GrGeometryProcessor_DEFINED
10 10
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 const GrGLCaps& caps, 162 const GrGLCaps& caps,
163 GrProcessorKeyBuilder* b) const = 0; 163 GrProcessorKeyBuilder* b) const = 0;
164 164
165 165
166 /** Returns a new instance of the appropriate *GL* implementation class 166 /** Returns a new instance of the appropriate *GL* implementation class
167 for the given GrProcessor; caller is responsible for deleting 167 for the given GrProcessor; caller is responsible for deleting
168 the object. */ 168 the object. */
169 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, 169 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt,
170 const GrGLCaps& caps) const = 0; 170 const GrGLCaps& caps) const = 0;
171 171
172 bool isPathRendering() const { return fIsPathRendering; }
173
172 protected: 174 protected:
173 GrPrimitiveProcessor(const SkMatrix& viewMatrix, const SkMatrix& localMatrix ) 175 GrPrimitiveProcessor(const SkMatrix& viewMatrix, const SkMatrix& localMatrix ,
176 bool isPathRendering)
174 : fNumAttribs(0) 177 : fNumAttribs(0)
175 , fVertexStride(0) 178 , fVertexStride(0)
176 , fViewMatrix(viewMatrix) 179 , fViewMatrix(viewMatrix)
177 , fLocalMatrix(localMatrix) {} 180 , fLocalMatrix(localMatrix)
181 , fIsPathRendering(isPathRendering) {}
178 182
179 /* 183 /*
180 * CanCombineOutput will return true if two draws are 'batchable' from a col or perspective. 184 * CanCombineOutput will return true if two draws are 'batchable' from a col or perspective.
181 * TODO remove this when GPs can upgrade to attribute color 185 * TODO remove this when GPs can upgrade to attribute color
182 */ 186 */
183 static bool CanCombineOutput(GrGPInput left, GrColor lColor, GrGPInput right , GrColor rColor) { 187 static bool CanCombineOutput(GrGPInput left, GrColor lColor, GrGPInput right , GrColor rColor) {
184 if (left != right) { 188 if (left != right) {
185 return false; 189 return false;
186 } 190 }
187 191
(...skipping 20 matching lines...) Expand all
208 212
209 Attribute fAttribs[kMaxVertexAttribs]; 213 Attribute fAttribs[kMaxVertexAttribs];
210 int fNumAttribs; 214 int fNumAttribs;
211 size_t fVertexStride; 215 size_t fVertexStride;
212 216
213 private: 217 private:
214 virtual bool hasExplicitLocalCoords() const = 0; 218 virtual bool hasExplicitLocalCoords() const = 0;
215 219
216 const SkMatrix fViewMatrix; 220 const SkMatrix fViewMatrix;
217 SkMatrix fLocalMatrix; 221 SkMatrix fLocalMatrix;
222 bool fIsPathRendering;
218 223
219 typedef GrProcessor INHERITED; 224 typedef GrProcessor INHERITED;
220 }; 225 };
221 226
222 /** 227 /**
223 * A GrGeometryProcessor is a flexible method for rendering a primitive. The Gr GeometryProcessor 228 * A GrGeometryProcessor is a flexible method for rendering a primitive. The Gr GeometryProcessor
224 * has complete control over vertex attributes and uniforms(aside from the rende r target) but it 229 * has complete control over vertex attributes and uniforms(aside from the rende r target) but it
225 * must obey the same contract as any GrPrimitiveProcessor, specifically it must emit a color and 230 * must obey the same contract as any GrPrimitiveProcessor, specifically it must emit a color and
226 * coverage into the fragment shader. Where this color and coverage come from i s completely the 231 * coverage into the fragment shader. Where this color and coverage come from i s completely the
227 * responsibility of the GrGeometryProcessor. 232 * responsibility of the GrGeometryProcessor.
228 */ 233 */
229 class GrGeometryProcessor : public GrPrimitiveProcessor { 234 class GrGeometryProcessor : public GrPrimitiveProcessor {
230 public: 235 public:
231 // TODO the Hint can be handled in a much more clean way when we have deferr ed geometry or 236 // TODO the Hint can be handled in a much more clean way when we have deferr ed geometry or
232 // atleast bundles 237 // atleast bundles
233 GrGeometryProcessor(GrColor color, 238 GrGeometryProcessor(GrColor color,
234 const SkMatrix& viewMatrix = SkMatrix::I(), 239 const SkMatrix& viewMatrix = SkMatrix::I(),
235 const SkMatrix& localMatrix = SkMatrix::I(), 240 const SkMatrix& localMatrix = SkMatrix::I(),
236 bool opaqueVertexColors = false) 241 bool opaqueVertexColors = false)
237 : INHERITED(viewMatrix, localMatrix) 242 : INHERITED(viewMatrix, localMatrix, false)
238 , fColor(color) 243 , fColor(color)
239 , fOpaqueVertexColors(opaqueVertexColors) 244 , fOpaqueVertexColors(opaqueVertexColors)
240 , fWillUseGeoShader(false) 245 , fWillUseGeoShader(false)
241 , fHasVertexColor(false) 246 , fHasVertexColor(false)
242 , fHasLocalCoords(false) {} 247 , fHasLocalCoords(false) {}
243 248
244 bool willUseGeoShader() const { return fWillUseGeoShader; } 249 bool willUseGeoShader() const { return fWillUseGeoShader; }
245 250
246 /* 251 /*
247 * In an ideal world, two GrGeometryProcessors with the same class id and te xture accesses 252 * In an ideal world, two GrGeometryProcessors with the same class id and te xture accesses
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 405
401 private: 406 private:
402 bool hasExplicitLocalCoords() const SK_OVERRIDE { return false; } 407 bool hasExplicitLocalCoords() const SK_OVERRIDE { return false; }
403 408
404 GrColor fColor; 409 GrColor fColor;
405 410
406 typedef GrPrimitiveProcessor INHERITED; 411 typedef GrPrimitiveProcessor INHERITED;
407 }; 412 };
408 413
409 #endif 414 #endif
OLDNEW
« no previous file with comments | « no previous file | src/gpu/GrGeometryProcessor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698