OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 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 "GrMSAAPathRenderer.h" | 8 #include "GrMSAAPathRenderer.h" |
9 | 9 |
10 #include "GrAuditTrail.h" | 10 #include "GrAuditTrail.h" |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 GrGLSLVertToFrag uv(kVec2f_GrSLType); | 141 GrGLSLVertToFrag uv(kVec2f_GrSLType); |
142 varyingHandler->addVarying("uv", &uv, kHigh_GrSLPrecision); | 142 varyingHandler->addVarying("uv", &uv, kHigh_GrSLPrecision); |
143 vsBuilder->codeAppendf("%s = %s;", uv.vsOut(), qp.inUV()->fName); | 143 vsBuilder->codeAppendf("%s = %s;", uv.vsOut(), qp.inUV()->fName); |
144 | 144 |
145 // Setup position | 145 // Setup position |
146 this->setupPosition(vsBuilder, uniformHandler, gpArgs, qp.inPosition
()->fName, | 146 this->setupPosition(vsBuilder, uniformHandler, gpArgs, qp.inPosition
()->fName, |
147 qp.viewMatrix(), &fViewMatrixUniform); | 147 qp.viewMatrix(), &fViewMatrixUniform); |
148 | 148 |
149 // emit transforms | 149 // emit transforms |
150 this->emitTransforms(vsBuilder, varyingHandler, uniformHandler, gpAr
gs->fPositionVar, | 150 this->emitTransforms(vsBuilder, varyingHandler, uniformHandler, gpAr
gs->fPositionVar, |
151 qp.inPosition()->fName, SkMatrix::I(), args.fTr
ansformsIn, | 151 qp.inPosition()->fName, SkMatrix::I(), |
152 args.fTransformsOut); | 152 args.fFPCoordTransformHandler); |
153 | 153 |
154 GrGLSLPPFragmentBuilder* fsBuilder = args.fFragBuilder; | 154 GrGLSLPPFragmentBuilder* fsBuilder = args.fFragBuilder; |
155 fsBuilder->codeAppendf("if (%s.x * %s.x >= %s.y) discard;", uv.fsIn(
), uv.fsIn(), | 155 fsBuilder->codeAppendf("if (%s.x * %s.x >= %s.y) discard;", uv.fsIn(
), uv.fsIn(), |
156 uv.fsIn(
)); | 156 uv.fsIn(
)); |
157 fsBuilder->codeAppendf("%s = vec4(1.0);", args.fOutputCoverage); | 157 fsBuilder->codeAppendf("%s = vec4(1.0);", args.fOutputCoverage); |
158 } | 158 } |
159 | 159 |
160 static inline void GenKey(const GrGeometryProcessor& gp, | 160 static inline void GenKey(const GrGeometryProcessor& gp, |
161 const GrGLSLCaps&, | 161 const GrGLSLCaps&, |
162 GrProcessorKeyBuilder* b) { | 162 GrProcessorKeyBuilder* b) { |
163 const MSAAQuadProcessor& qp = gp.cast<MSAAQuadProcessor>(); | 163 const MSAAQuadProcessor& qp = gp.cast<MSAAQuadProcessor>(); |
164 uint32_t key = 0; | 164 uint32_t key = 0; |
165 key |= qp.viewMatrix().hasPerspective() ? 0x1 : 0x0; | 165 key |= qp.viewMatrix().hasPerspective() ? 0x1 : 0x0; |
166 key |= qp.viewMatrix().isIdentity() ? 0x2: 0x0; | 166 key |= qp.viewMatrix().isIdentity() ? 0x2: 0x0; |
167 b->add32(key); | 167 b->add32(key); |
168 } | 168 } |
169 | 169 |
170 virtual void setData(const GrGLSLProgramDataManager& pdman, | 170 void setData(const GrGLSLProgramDataManager& pdman, const GrPrimitivePro
cessor& gp, |
171 const GrPrimitiveProcessor& gp) override { | 171 FPCoordTransformIter&& transformIter) override { |
172 const MSAAQuadProcessor& qp = gp.cast<MSAAQuadProcessor>(); | 172 const MSAAQuadProcessor& qp = gp.cast<MSAAQuadProcessor>(); |
173 if (!qp.viewMatrix().isIdentity()) { | 173 if (!qp.viewMatrix().isIdentity()) { |
174 float viewMatrix[3 * 3]; | 174 float viewMatrix[3 * 3]; |
175 GrGLSLGetMatrix<3>(viewMatrix, qp.viewMatrix()); | 175 GrGLSLGetMatrix<3>(viewMatrix, qp.viewMatrix()); |
176 pdman.setMatrix3f(fViewMatrixUniform, viewMatrix); | 176 pdman.setMatrix3f(fViewMatrixUniform, viewMatrix); |
177 } | 177 } |
| 178 this->setTransformDataHelper(SkMatrix::I(), pdman, &transformIter); |
178 } | 179 } |
179 | 180 |
180 private: | 181 private: |
181 typedef GrGLSLGeometryProcessor INHERITED; | 182 typedef GrGLSLGeometryProcessor INHERITED; |
182 | 183 |
183 UniformHandle fViewMatrixUniform; | 184 UniformHandle fViewMatrixUniform; |
184 }; | 185 }; |
185 | 186 |
186 virtual void getGLSLProcessorKey(const GrGLSLCaps& caps, | 187 virtual void getGLSLProcessorKey(const GrGLSLCaps& caps, |
187 GrProcessorKeyBuilder* b) const override { | 188 GrProcessorKeyBuilder* b) const override { |
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
706 | 707 |
707 GrPaint paint; | 708 GrPaint paint; |
708 paint.setXPFactory(GrDisableColorXPFactory::Make()); | 709 paint.setXPFactory(GrDisableColorXPFactory::Make()); |
709 paint.setAntiAlias(args.fIsAA); | 710 paint.setAntiAlias(args.fIsAA); |
710 | 711 |
711 this->internalDrawPath(args.fDrawContext, paint, GrUserStencilSettings::kUnu
sed, *args.fClip, | 712 this->internalDrawPath(args.fDrawContext, paint, GrUserStencilSettings::kUnu
sed, *args.fClip, |
712 *args.fViewMatrix, *args.fShape, true); | 713 *args.fViewMatrix, *args.fShape, true); |
713 } | 714 } |
714 | 715 |
715 ////////////////////////////////////////////////////////////////////////////////
/////////////////// | 716 ////////////////////////////////////////////////////////////////////////////////
/////////////////// |
OLD | NEW |