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

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

Issue 1109863004: Use GLSLCaps for creating processor keys and GLSL-specific programs (Closed) Base URL: https://chromium.googlesource.com/skia@master
Patch Set: Created 5 years, 7 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/GrAAConvexPathRenderer.cpp ('k') | src/gpu/GrOvalRenderer.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 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 "GrInvariantOutput.h" 10 #include "GrInvariantOutput.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 fs->codeAppendf("float alpha = 1.0;"); 122 fs->codeAppendf("float alpha = 1.0;");
123 args.fPB->addPassThroughAttribute(gp.inCoverage(), "alpha"); 123 args.fPB->addPassThroughAttribute(gp.inCoverage(), "alpha");
124 fs->codeAppendf("%s = vec4(alpha);", args.fOutputCoverage); 124 fs->codeAppendf("%s = vec4(alpha);", args.fOutputCoverage);
125 } else if (kAllOnes_GrGPInput == local.fInputCoverageType) { 125 } else if (kAllOnes_GrGPInput == local.fInputCoverageType) {
126 fs->codeAppendf("%s = vec4(1);", args.fOutputCoverage); 126 fs->codeAppendf("%s = vec4(1);", args.fOutputCoverage);
127 } 127 }
128 } 128 }
129 129
130 static inline void GenKey(const GrGeometryProcessor& gp, 130 static inline void GenKey(const GrGeometryProcessor& gp,
131 const GrBatchTracker& bt, 131 const GrBatchTracker& bt,
132 const GrGLCaps&, 132 const GrGLSLCaps&,
133 GrProcessorKeyBuilder* b) { 133 GrProcessorKeyBuilder* b) {
134 const DefaultGeoProc& def = gp.cast<DefaultGeoProc>(); 134 const DefaultGeoProc& def = gp.cast<DefaultGeoProc>();
135 const BatchTracker& local = bt.cast<BatchTracker>(); 135 const BatchTracker& local = bt.cast<BatchTracker>();
136 uint32_t key = def.fFlags; 136 uint32_t key = def.fFlags;
137 key |= local.fInputColorType << 8 | local.fInputCoverageType << 16; 137 key |= local.fInputColorType << 8 | local.fInputCoverageType << 16;
138 key |= local.fUsesLocalCoords && gp.localMatrix().hasPerspective() ? 0x1 << 24 : 0x0; 138 key |= local.fUsesLocalCoords && gp.localMatrix().hasPerspective() ? 0x1 << 24 : 0x0;
139 key |= ComputePosKey(gp.viewMatrix()) << 25; 139 key |= ComputePosKey(gp.viewMatrix()) << 25;
140 b->add32(key); 140 b->add32(key);
141 } 141 }
142 142
(...skipping 18 matching lines...) Expand all
161 private: 161 private:
162 GrColor fColor; 162 GrColor fColor;
163 uint8_t fCoverage; 163 uint8_t fCoverage;
164 UniformHandle fColorUniform; 164 UniformHandle fColorUniform;
165 UniformHandle fCoverageUniform; 165 UniformHandle fCoverageUniform;
166 166
167 typedef GrGLGeometryProcessor INHERITED; 167 typedef GrGLGeometryProcessor INHERITED;
168 }; 168 };
169 169
170 virtual void getGLProcessorKey(const GrBatchTracker& bt, 170 virtual void getGLProcessorKey(const GrBatchTracker& bt,
171 const GrGLCaps& caps, 171 const GrGLSLCaps& caps,
172 GrProcessorKeyBuilder* b) const override { 172 GrProcessorKeyBuilder* b) const override {
173 GLProcessor::GenKey(*this, bt, caps, b); 173 GLProcessor::GenKey(*this, bt, caps, b);
174 } 174 }
175 175
176 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, 176 virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt,
177 const GrGLCaps&) const over ride { 177 const GrGLSLCaps&) const ov erride {
178 return SkNEW_ARGS(GLProcessor, (*this, bt)); 178 return SkNEW_ARGS(GLProcessor, (*this, bt));
179 } 179 }
180 180
181 private: 181 private:
182 DefaultGeoProc(uint32_t gpTypeFlags, 182 DefaultGeoProc(uint32_t gpTypeFlags,
183 GrColor color, 183 GrColor color,
184 const SkMatrix& viewMatrix, 184 const SkMatrix& viewMatrix,
185 const SkMatrix& localMatrix, 185 const SkMatrix& localMatrix,
186 bool opaqueVertexColors, 186 bool opaqueVertexColors,
187 uint8_t coverage) 187 uint8_t coverage)
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 const SkMatrix& local Matrix, 277 const SkMatrix& local Matrix,
278 bool opaqueVertexColo rs, 278 bool opaqueVertexColo rs,
279 uint8_t coverage) { 279 uint8_t coverage) {
280 return DefaultGeoProc::Create(gpTypeFlags, 280 return DefaultGeoProc::Create(gpTypeFlags,
281 color, 281 color,
282 viewMatrix, 282 viewMatrix,
283 localMatrix, 283 localMatrix,
284 opaqueVertexColors, 284 opaqueVertexColors,
285 coverage); 285 coverage);
286 } 286 }
OLDNEW
« no previous file with comments | « src/gpu/GrAAConvexPathRenderer.cpp ('k') | src/gpu/GrOvalRenderer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698