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