OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 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 "gl/GrGLVaryingHandler.h" | 8 #include "gl/GrGLVaryingHandler.h" |
9 | 9 |
10 #include "gl/GrGLGpu.h" | 10 #include "gl/GrGLGpu.h" |
11 #include "gl/builders/GrGLProgramBuilder.h" | 11 #include "gl/builders/GrGLProgramBuilder.h" |
12 | 12 |
13 | 13 |
14 GrGLSLVaryingHandler::VaryingHandle GrGLVaryingHandler::addPathProcessingVarying
( | 14 GrGLSLVaryingHandler::VaryingHandle GrGLVaryingHandler::addPathProcessingVarying
( |
15 const cha
r* name, | 15 const cha
r* name, |
16 GrGLSLVer
tToFrag* v, | 16 GrGLSLVer
tToFrag* v, |
17 GrSLPreci
sion fsPrecision) { | 17 GrSLPreci
sion fsPrecision) { |
18 #ifdef SK_DEBUG | 18 #ifdef SK_DEBUG |
19 GrGLProgramBuilder* glPB = (GrGLProgramBuilder*) fProgramBuilder; | 19 GrGLProgramBuilder* glPB = (GrGLProgramBuilder*) fProgramBuilder; |
20 // This call is not used for non-NVPR backends. | 20 // This call is not used for non-NVPR backends. |
21 SkASSERT(glPB->gpu()->glCaps().shaderCaps()->pathRenderingSupport() && | 21 SkASSERT(glPB->gpu()->glCaps().shaderCaps()->pathRenderingSupport() && |
22 glPB->fArgs.fPrimitiveProcessor->isPathRendering() && | 22 glPB->fArgs.fPrimitiveProcessor->isPathRendering() && |
23 !glPB->fArgs.fPrimitiveProcessor->willUseGeoShader() && | 23 !glPB->fArgs.fPrimitiveProcessor->willUseGeoShader() && |
24 glPB->fArgs.fPrimitiveProcessor->numAttribs() == 0); | 24 glPB->fArgs.fPrimitiveProcessor->numAttribs() == 0); |
25 #endif | 25 #endif |
26 this->addVarying(name, v, fsPrecision); | 26 this->addVarying(name, v, fsPrecision); |
27 VaryingInfo& varyingInfo = fPathProcVaryingInfos.push_back(); | 27 auto varyingInfo = fPathProcVaryingInfos.push_back(); |
28 varyingInfo.fVariable = fFragInputs.back(); | |
29 varyingInfo.fLocation = fPathProcVaryingInfos.count() - 1; | 28 varyingInfo.fLocation = fPathProcVaryingInfos.count() - 1; |
30 return VaryingHandle(varyingInfo.fLocation); | 29 return VaryingHandle(varyingInfo.fLocation); |
31 } | 30 } |
| 31 |
| 32 void GrGLVaryingHandler::onFinalize() { |
| 33 SkASSERT(fPathProcVaryingInfos.empty() || fPathProcVaryingInfos.count() == f
FragInputs.count()); |
| 34 for (int i = 0; i < fPathProcVaryingInfos.count(); ++i) { |
| 35 fPathProcVaryingInfos[i].fVariable = fFragInputs[i]; |
| 36 } |
| 37 } |
OLD | NEW |