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

Side by Side Diff: src/gpu/GrDefaultGeoProcFactory.cpp

Issue 772513002: create and thread batch tracker object (Closed) Base URL: https://skia.googlesource.com/skia.git@2_vertex_attr
Patch Set: a bit of cleanup Created 6 years 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 2014 Google Inc. 2 * Copyright 2014 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 #include "GrDefaultGeoProcFactory.h" 8 #include "GrDefaultGeoProcFactory.h"
9 9
10 #include "GrDrawState.h" 10 #include "GrDrawState.h"
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 return GrTBackendGeometryProcessorFactory<DefaultGeoProc>::getInstance() ; 60 return GrTBackendGeometryProcessorFactory<DefaultGeoProc>::getInstance() ;
61 } 61 }
62 62
63 const GrAttribute* inPosition() const { return fInPosition; } 63 const GrAttribute* inPosition() const { return fInPosition; }
64 const GrAttribute* inColor() const { return fInColor; } 64 const GrAttribute* inColor() const { return fInColor; }
65 const GrAttribute* inLocalCoords() const { return fInLocalCoords; } 65 const GrAttribute* inLocalCoords() const { return fInLocalCoords; }
66 const GrAttribute* inCoverage() const { return fInCoverage; } 66 const GrAttribute* inCoverage() const { return fInCoverage; }
67 67
68 class GLProcessor : public GrGLGeometryProcessor { 68 class GLProcessor : public GrGLGeometryProcessor {
69 public: 69 public:
70 GLProcessor(const GrBackendProcessorFactory& factory, const GrProcessor& ) 70 GLProcessor(const GrBackendProcessorFactory& factory,
71 const GrGeometryProcessor&,
72 const GrBatchTracker&)
71 : INHERITED (factory) {} 73 : INHERITED (factory) {}
72 74
73 virtual void emitCode(const EmitArgs& args) SK_OVERRIDE { 75 virtual void emitCode(const EmitArgs& args) SK_OVERRIDE {
74 const DefaultGeoProc& gp = args.fGP.cast<DefaultGeoProc>(); 76 const DefaultGeoProc& gp = args.fGP.cast<DefaultGeoProc>();
75 GrGLVertexBuilder* vs = args.fPB->getVertexShaderBuilder(); 77 GrGLVertexBuilder* vs = args.fPB->getVertexShaderBuilder();
76 78
77 vs->codeAppendf("%s = %s;", vs->positionCoords(), gp.inPosition()->f Name); 79 vs->codeAppendf("%s = %s;", vs->positionCoords(), gp.inPosition()->f Name);
78 80
79 // Setup pass through color 81 // Setup pass through color
80 if (gp.inColor()) { 82 if (gp.inColor()) {
(...skipping 13 matching lines...) Expand all
94 96
95 // Setup coverage as pass through 97 // Setup coverage as pass through
96 GrGLGPFragmentBuilder* fs = args.fPB->getFragmentShaderBuilder(); 98 GrGLGPFragmentBuilder* fs = args.fPB->getFragmentShaderBuilder();
97 fs->codeAppendf("float alpha = 1.0;"); 99 fs->codeAppendf("float alpha = 1.0;");
98 if (gp.inCoverage()) { 100 if (gp.inCoverage()) {
99 args.fPB->addPassThroughAttribute(gp.inCoverage(), "alpha"); 101 args.fPB->addPassThroughAttribute(gp.inCoverage(), "alpha");
100 } 102 }
101 fs->codeAppendf("%s = vec4(alpha);", args.fOutputCoverage); 103 fs->codeAppendf("%s = vec4(alpha);", args.fOutputCoverage);
102 } 104 }
103 105
104 static inline void GenKey(const GrProcessor& gp, const GrGLCaps&, GrProc essorKeyBuilder* b) { 106 static inline void GenKey(const GrGeometryProcessor& gp,
107 const GrBatchTracker&,
108 const GrGLCaps&,
109 GrProcessorKeyBuilder* b) {
105 const DefaultGeoProc& def = gp.cast<DefaultGeoProc>(); 110 const DefaultGeoProc& def = gp.cast<DefaultGeoProc>();
106 b->add32(def.fFlags); 111 b->add32(def.fFlags);
107 } 112 }
108 113
109 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_OVERRIDE {} 114 virtual void setData(const GrGLProgramDataManager&,
115 const GrGeometryProcessor&,
116 const GrBatchTracker&) SK_OVERRIDE {}
110 117
111 private: 118 private:
112 typedef GrGLGeometryProcessor INHERITED; 119 typedef GrGLGeometryProcessor INHERITED;
113 }; 120 };
114 121
115 private: 122 private:
116 DefaultGeoProc(uint32_t gpTypeFlags) 123 DefaultGeoProc(uint32_t gpTypeFlags)
117 : fInPosition(NULL) 124 : fInPosition(NULL)
118 , fInColor(NULL) 125 , fInColor(NULL)
119 , fInLocalCoords(NULL) 126 , fInLocalCoords(NULL)
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 flags |= random->nextBool() & GrDefaultGeoProcFactory::kColor_GPType; 180 flags |= random->nextBool() & GrDefaultGeoProcFactory::kColor_GPType;
174 flags |= random->nextBool() & GrDefaultGeoProcFactory::kCoverage_GPType; 181 flags |= random->nextBool() & GrDefaultGeoProcFactory::kCoverage_GPType;
175 flags |= random->nextBool() & GrDefaultGeoProcFactory::kLocalCoord_GPType; 182 flags |= random->nextBool() & GrDefaultGeoProcFactory::kLocalCoord_GPType;
176 183
177 return DefaultGeoProc::Create(flags); 184 return DefaultGeoProc::Create(flags);
178 } 185 }
179 186
180 const GrGeometryProcessor* GrDefaultGeoProcFactory::Create(uint32_t gpTypeFlags) { 187 const GrGeometryProcessor* GrDefaultGeoProcFactory::Create(uint32_t gpTypeFlags) {
181 return DefaultGeoProc::Create(gpTypeFlags); 188 return DefaultGeoProc::Create(gpTypeFlags);
182 } 189 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698