| OLD | NEW |
| 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 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 return GrTBackendGeometryProcessorFactory<DefaultGeoProc>::getInstance()
; | 68 return GrTBackendGeometryProcessorFactory<DefaultGeoProc>::getInstance()
; |
| 69 } | 69 } |
| 70 | 70 |
| 71 const GrAttribute* inPosition() const { return fInPosition; } | 71 const GrAttribute* inPosition() const { return fInPosition; } |
| 72 const GrAttribute* inColor() const { return fInColor; } | 72 const GrAttribute* inColor() const { return fInColor; } |
| 73 const GrAttribute* inLocalCoords() const { return fInLocalCoords; } | 73 const GrAttribute* inLocalCoords() const { return fInLocalCoords; } |
| 74 const GrAttribute* inCoverage() const { return fInCoverage; } | 74 const GrAttribute* inCoverage() const { return fInCoverage; } |
| 75 | 75 |
| 76 class GLProcessor : public GrGLGeometryProcessor { | 76 class GLProcessor : public GrGLGeometryProcessor { |
| 77 public: | 77 public: |
| 78 GLProcessor(const GrBackendProcessorFactory& factory, | 78 GLProcessor(const GrBackendProcessorFactory& factory, const GrProcessor&
) |
| 79 const GrGeometryProcessor&, | |
| 80 const GrBatchTracker&) | |
| 81 : INHERITED (factory) {} | 79 : INHERITED (factory) {} |
| 82 | 80 |
| 83 virtual void emitCode(const EmitArgs& args) SK_OVERRIDE { | 81 virtual void emitCode(const EmitArgs& args) SK_OVERRIDE { |
| 84 const DefaultGeoProc& gp = args.fGP.cast<DefaultGeoProc>(); | 82 const DefaultGeoProc& gp = args.fGP.cast<DefaultGeoProc>(); |
| 85 GrGLVertexBuilder* vs = args.fPB->getVertexShaderBuilder(); | 83 GrGLVertexBuilder* vs = args.fPB->getVertexShaderBuilder(); |
| 86 | 84 |
| 87 vs->codeAppendf("%s = %s;", vs->positionCoords(), gp.inPosition()->f
Name); | 85 vs->codeAppendf("%s = %s;", vs->positionCoords(), gp.inPosition()->f
Name); |
| 88 | 86 |
| 89 // Setup pass through color | 87 // Setup pass through color |
| 90 if (gp.inColor()) { | 88 if (gp.inColor()) { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 104 | 102 |
| 105 // Setup coverage as pass through | 103 // Setup coverage as pass through |
| 106 GrGLGPFragmentBuilder* fs = args.fPB->getFragmentShaderBuilder(); | 104 GrGLGPFragmentBuilder* fs = args.fPB->getFragmentShaderBuilder(); |
| 107 fs->codeAppendf("float alpha = 1.0;"); | 105 fs->codeAppendf("float alpha = 1.0;"); |
| 108 if (gp.inCoverage()) { | 106 if (gp.inCoverage()) { |
| 109 args.fPB->addPassThroughAttribute(gp.inCoverage(), "alpha"); | 107 args.fPB->addPassThroughAttribute(gp.inCoverage(), "alpha"); |
| 110 } | 108 } |
| 111 fs->codeAppendf("%s = vec4(alpha);", args.fOutputCoverage); | 109 fs->codeAppendf("%s = vec4(alpha);", args.fOutputCoverage); |
| 112 } | 110 } |
| 113 | 111 |
| 114 static inline void GenKey(const GrGeometryProcessor& gp, | 112 static inline void GenKey(const GrProcessor& gp, const GrGLCaps&, GrProc
essorKeyBuilder* b) { |
| 115 const GrBatchTracker&, | |
| 116 const GrGLCaps&, | |
| 117 GrProcessorKeyBuilder* b) { | |
| 118 const DefaultGeoProc& def = gp.cast<DefaultGeoProc>(); | 113 const DefaultGeoProc& def = gp.cast<DefaultGeoProc>(); |
| 119 b->add32(def.fFlags); | 114 b->add32(def.fFlags); |
| 120 } | 115 } |
| 121 | 116 |
| 122 virtual void setData(const GrGLProgramDataManager&, | 117 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&)
SK_OVERRIDE {} |
| 123 const GrGeometryProcessor&, | |
| 124 const GrBatchTracker&) SK_OVERRIDE {} | |
| 125 | 118 |
| 126 private: | 119 private: |
| 127 typedef GrGLGeometryProcessor INHERITED; | 120 typedef GrGLGeometryProcessor INHERITED; |
| 128 }; | 121 }; |
| 129 | 122 |
| 130 private: | 123 private: |
| 131 DefaultGeoProc(uint32_t gpTypeFlags) | 124 DefaultGeoProc(uint32_t gpTypeFlags) |
| 132 : fInPosition(NULL) | 125 : fInPosition(NULL) |
| 133 , fInColor(NULL) | 126 , fInColor(NULL) |
| 134 , fInLocalCoords(NULL) | 127 , fInLocalCoords(NULL) |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 194 if (random->nextBool()) { | 187 if (random->nextBool()) { |
| 195 flags |= GrDefaultGeoProcFactory::kLocalCoord_GPType; | 188 flags |= GrDefaultGeoProcFactory::kLocalCoord_GPType; |
| 196 } | 189 } |
| 197 | 190 |
| 198 return DefaultGeoProc::Create(flags); | 191 return DefaultGeoProc::Create(flags); |
| 199 } | 192 } |
| 200 | 193 |
| 201 const GrGeometryProcessor* GrDefaultGeoProcFactory::Create(uint32_t gpTypeFlags)
{ | 194 const GrGeometryProcessor* GrDefaultGeoProcFactory::Create(uint32_t gpTypeFlags)
{ |
| 202 return DefaultGeoProc::Create(gpTypeFlags); | 195 return DefaultGeoProc::Create(gpTypeFlags); |
| 203 } | 196 } |
| OLD | NEW |