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 GrGLProgramBuilder_DEFINED | 8 #ifndef GrGLProgramBuilder_DEFINED |
9 #define GrGLProgramBuilder_DEFINED | 9 #define GrGLProgramBuilder_DEFINED |
10 | 10 |
11 #include "GrGLFragmentShaderBuilder.h" | 11 #include "GrGLFragmentShaderBuilder.h" |
12 #include "GrGLGeometryShaderBuilder.h" | 12 #include "GrGLGeometryShaderBuilder.h" |
13 #include "GrGLVertexShaderBuilder.h" | 13 #include "GrGLVertexShaderBuilder.h" |
14 #include "glsl/GrGLSLProgramDataManager.h" | 14 #include "glsl/GrGLSLProgramDataManager.h" |
| 15 #include "glsl/GrGLSLTextureSampler.h" |
15 #include "../GrGLPrimitiveProcessor.h" | 16 #include "../GrGLPrimitiveProcessor.h" |
16 #include "../GrGLXferProcessor.h" | 17 #include "../GrGLXferProcessor.h" |
17 #include "../../GrPipeline.h" | 18 #include "../../GrPipeline.h" |
18 | 19 |
19 class GrFragmentProcessor; | 20 class GrFragmentProcessor; |
20 class GrGLSLCaps; | 21 class GrGLSLCaps; |
21 | 22 |
22 // Enough precision to represent 1 / 2048 accurately in printf | 23 // Enough precision to represent 1 / 2048 accurately in printf |
23 #define GR_SIGNIFICANT_POW2_DECIMAL_DIG 11 | 24 #define GR_SIGNIFICANT_POW2_DECIMAL_DIG 11 |
24 | 25 |
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 const char* outCoverage); | 324 const char* outCoverage); |
324 void emitAndInstallXferProc(const GrXferProcessor&, | 325 void emitAndInstallXferProc(const GrXferProcessor&, |
325 const GrGLSLExpr4& colorIn, | 326 const GrGLSLExpr4& colorIn, |
326 const GrGLSLExpr4& coverageIn); | 327 const GrGLSLExpr4& coverageIn); |
327 | 328 |
328 void verify(const GrPrimitiveProcessor&); | 329 void verify(const GrPrimitiveProcessor&); |
329 void verify(const GrXferProcessor&); | 330 void verify(const GrXferProcessor&); |
330 void verify(const GrFragmentProcessor&); | 331 void verify(const GrFragmentProcessor&); |
331 template <class Proc> | 332 template <class Proc> |
332 void emitSamplers(const GrProcessor&, | 333 void emitSamplers(const GrProcessor&, |
333 GrGLProcessor::TextureSamplerArray* outSamplers, | 334 GrGLSLTextureSampler::TextureSamplerArray* outSamplers, |
334 GrGLInstalledProc<Proc>*); | 335 GrGLInstalledProc<Proc>*); |
335 | 336 |
336 GrGLProgram* finalize(); | 337 GrGLProgram* finalize(); |
337 virtual void bindProgramResourceLocations(GrGLuint programID); | 338 virtual void bindProgramResourceLocations(GrGLuint programID); |
338 bool checkLinkStatus(GrGLuint programID); | 339 bool checkLinkStatus(GrGLuint programID); |
339 virtual void resolveProgramResourceLocations(GrGLuint programID); | 340 virtual void resolveProgramResourceLocations(GrGLuint programID); |
340 void cleanupProgram(GrGLuint programID, const SkTDArray<GrGLuint>& shaderIDs
); | 341 void cleanupProgram(GrGLuint programID, const SkTDArray<GrGLuint>& shaderIDs
); |
341 void cleanupShaders(const SkTDArray<GrGLuint>& shaderIDs); | 342 void cleanupShaders(const SkTDArray<GrGLuint>& shaderIDs); |
342 | 343 |
343 // Subclasses create different programs | 344 // Subclasses create different programs |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
404 GrGLPrimitiveProcessor::TransformsOut fOutCoords; | 405 GrGLPrimitiveProcessor::TransformsOut fOutCoords; |
405 SkTArray<UniformHandle> fSamplerUniforms; | 406 SkTArray<UniformHandle> fSamplerUniforms; |
406 SeparableVaryingInfoArray fSeparableVaryingInfos; | 407 SeparableVaryingInfoArray fSeparableVaryingInfos; |
407 | 408 |
408 friend class GrGLShaderBuilder; | 409 friend class GrGLShaderBuilder; |
409 friend class GrGLVertexBuilder; | 410 friend class GrGLVertexBuilder; |
410 friend class GrGLFragmentShaderBuilder; | 411 friend class GrGLFragmentShaderBuilder; |
411 friend class GrGLGeometryBuilder; | 412 friend class GrGLGeometryBuilder; |
412 }; | 413 }; |
413 #endif | 414 #endif |
OLD | NEW |