| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 | 8 |
| 9 #ifndef GrGLProgram_DEFINED | 9 #ifndef GrGLProgram_DEFINED |
| 10 #define GrGLProgram_DEFINED | 10 #define GrGLProgram_DEFINED |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 const GrEffectStage* stages[]); | 41 const GrEffectStage* stages[]); |
| 42 | 42 |
| 43 virtual ~GrGLProgram(); | 43 virtual ~GrGLProgram(); |
| 44 | 44 |
| 45 /** | 45 /** |
| 46 * Call to abandon GL objects owned by this program. | 46 * Call to abandon GL objects owned by this program. |
| 47 */ | 47 */ |
| 48 void abandon(); | 48 void abandon(); |
| 49 | 49 |
| 50 /** | 50 /** |
| 51 * The shader may modify the blend coefficients. Params are in/out | 51 * The shader may modify the blend coefficients. Params are in/out. |
| 52 */ | 52 */ |
| 53 void overrideBlend(GrBlendCoeff* srcCoeff, GrBlendCoeff* dstCoeff) const; | 53 void overrideBlend(GrBlendCoeff* srcCoeff, GrBlendCoeff* dstCoeff) const; |
| 54 | 54 |
| 55 const GrGLProgramDesc& getDesc() { return fDesc; } | 55 const GrGLProgramDesc& getDesc() { return fDesc; } |
| 56 | 56 |
| 57 /** | 57 /** |
| 58 * Gets the GL program ID for this program. | 58 * Gets the GL program ID for this program. |
| 59 */ | 59 */ |
| 60 GrGLuint programID() const { return fProgramID; } | 60 GrGLuint programID() const { return fProgramID; } |
| 61 | 61 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 fRenderTargetSize.fWidth = -1; | 97 fRenderTargetSize.fWidth = -1; |
| 98 fRenderTargetSize.fHeight = -1; | 98 fRenderTargetSize.fHeight = -1; |
| 99 fRenderTargetOrigin = (GrSurfaceOrigin) -1; | 99 fRenderTargetOrigin = (GrSurfaceOrigin) -1; |
| 100 } | 100 } |
| 101 }; | 101 }; |
| 102 | 102 |
| 103 /** | 103 /** |
| 104 * This function uploads uniforms and calls each GrGLEffect's setData. It is
called before a | 104 * This function uploads uniforms and calls each GrGLEffect's setData. It is
called before a |
| 105 * draw occurs using the program after the program has already been bound. I
t also uses the | 105 * draw occurs using the program after the program has already been bound. I
t also uses the |
| 106 * GrGpuGL object to bind the textures required by the GrGLEffects. | 106 * GrGpuGL object to bind the textures required by the GrGLEffects. |
| 107 * | |
| 108 * The color and coverage params override the GrDrawState's getColor() and g
etCoverage() values. | |
| 109 */ | 107 */ |
| 110 void setData(GrGpuGL*, | 108 void setData(GrGpuGL*, |
| 111 GrColor color, | 109 GrDrawState::BlendOptFlags, |
| 112 GrColor coverage, | 110 const GrEffectStage* stages[], // output of GrGLProgramDe
sc:Build() |
| 113 const GrDeviceCoordTexture* dstCopy, // can be NULL | 111 const GrDeviceCoordTexture* dstCopy, // can be NULL |
| 114 SharedGLState*); | 112 SharedGLState*); |
| 115 | 113 |
| 116 private: | 114 private: |
| 117 GrGLProgram(const GrGLContext& gl, | 115 GrGLProgram(const GrGLContext& gl, |
| 118 const GrGLProgramDesc& desc, | 116 const GrGLProgramDesc& desc, |
| 119 const GrEffectStage* stages[]); | 117 const GrEffectStage* stages[]); |
| 120 | 118 |
| 121 bool succeeded() const { return 0 != fProgramID; } | 119 bool succeeded() const { return 0 != fProgramID; } |
| 122 | 120 |
| 123 /** | 121 /** |
| 124 * This is the heavy initialization routine for building a GLProgram. | 122 * This is the heavy initialization routine for building a GLProgram. stages
is all the enabled |
| 123 * color stages followed by all the enabled coverage stages as output by |
| 124 * GrGLProgramDesc::Build() |
| 125 */ | 125 */ |
| 126 bool genProgram(const GrEffectStage* stages[]); | 126 bool genProgram(const GrEffectStage* stages[]); |
| 127 | 127 |
| 128 GrSLConstantVec genInputColor(GrGLShaderBuilder* builder, SkString* inColor)
; | 128 GrSLConstantVec genInputColor(GrGLShaderBuilder* builder, SkString* inColor)
; |
| 129 | 129 |
| 130 GrSLConstantVec genInputCoverage(GrGLShaderBuilder* builder, SkString* inCov
erage); | 130 GrSLConstantVec genInputCoverage(GrGLShaderBuilder* builder, SkString* inCov
erage); |
| 131 | 131 |
| 132 void genGeometryShader(GrGLShaderBuilder* segments) const; | 132 void genGeometryShader(GrGLShaderBuilder* segments) const; |
| 133 | 133 |
| 134 typedef GrGLUniformManager::UniformHandle UniformHandle; | 134 typedef GrGLUniformManager::UniformHandle UniformHandle; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 GrGLProgramDesc fDesc; | 205 GrGLProgramDesc fDesc; |
| 206 const GrGLContext& fContext; | 206 const GrGLContext& fContext; |
| 207 | 207 |
| 208 GrGLUniformManager fUniformManager; | 208 GrGLUniformManager fUniformManager; |
| 209 UniformHandles fUniformHandles; | 209 UniformHandles fUniformHandles; |
| 210 | 210 |
| 211 typedef GrRefCnt INHERITED; | 211 typedef GrRefCnt INHERITED; |
| 212 }; | 212 }; |
| 213 | 213 |
| 214 #endif | 214 #endif |
| OLD | NEW |