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 #ifndef GrGLSLShaderBuilder_DEFINED | 8 #ifndef GrGLSLShaderBuilder_DEFINED |
9 #define GrGLSLShaderBuilder_DEFINED | 9 #define GrGLSLShaderBuilder_DEFINED |
10 | 10 |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 fBuilder->codeAppend("}"); | 115 fBuilder->codeAppend("}"); |
116 } | 116 } |
117 private: | 117 private: |
118 GrGLSLShaderBuilder* fBuilder; | 118 GrGLSLShaderBuilder* fBuilder; |
119 }; | 119 }; |
120 | 120 |
121 protected: | 121 protected: |
122 typedef GrTAllocator<GrGLSLShaderVar> VarArray; | 122 typedef GrTAllocator<GrGLSLShaderVar> VarArray; |
123 void appendDecls(const VarArray& vars, SkString* out) const; | 123 void appendDecls(const VarArray& vars, SkString* out) const; |
124 | 124 |
| 125 /** |
| 126 * Features that should only be enabled internally by the builders. |
| 127 */ |
| 128 enum GLSLPrivateFeature { |
| 129 kFragCoordConventions_GLSLPrivateFeature, |
| 130 kBlendEquationAdvanced_GLSLPrivateFeature, |
| 131 kBlendFuncExtended_GLSLPrivateFeature, |
| 132 kExternalTexture_GLSLPrivateFeature, |
| 133 kFramebufferFetch_GLSLPrivateFeature, |
| 134 kNoPerspectiveInterpolation_GLSLPrivateFeature, |
| 135 kLastGLSLPrivateFeature = kNoPerspectiveInterpolation_GLSLPrivateFeature |
| 136 }; |
| 137 |
125 /* | 138 /* |
126 * A general function which enables an extension in a shader if the feature
bit is not present | 139 * A general function which enables an extension in a shader if the feature
bit is not present |
127 */ | 140 */ |
128 void addFeature(uint32_t featureBit, const char* extensionName); | 141 void addFeature(uint32_t featureBit, const char* extensionName); |
129 | 142 |
130 enum InterfaceQualifier { | 143 enum InterfaceQualifier { |
131 kOut_InterfaceQualifier, | 144 kOut_InterfaceQualifier, |
132 kLastInterfaceQualifier = kOut_InterfaceQualifier | 145 kLastInterfaceQualifier = kOut_InterfaceQualifier |
133 }; | 146 }; |
134 | 147 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 | 199 |
187 VarArray fInputs; | 200 VarArray fInputs; |
188 VarArray fOutputs; | 201 VarArray fOutputs; |
189 uint32_t fFeaturesAddedMask; | 202 uint32_t fFeaturesAddedMask; |
190 SkSTArray<1, SkString> fLayoutParams[kLastInterfaceQualifier + 1]; | 203 SkSTArray<1, SkString> fLayoutParams[kLastInterfaceQualifier + 1]; |
191 int fCodeIndex; | 204 int fCodeIndex; |
192 bool fFinalized; | 205 bool fFinalized; |
193 | 206 |
194 friend class GrGLSLProgramBuilder; | 207 friend class GrGLSLProgramBuilder; |
195 friend class GrGLProgramBuilder; | 208 friend class GrGLProgramBuilder; |
| 209 friend class GrGLSLVaryingHandler; // to access noperspective interpolation
feature. |
196 friend class GrGLPathProgramBuilder; // to access fInputs. | 210 friend class GrGLPathProgramBuilder; // to access fInputs. |
197 friend class GrVkProgramBuilder; | 211 friend class GrVkProgramBuilder; |
198 }; | 212 }; |
199 #endif | 213 #endif |
OLD | NEW |