Index: src/gpu/gl/GrGLProgramEffects.h |
diff --git a/src/gpu/gl/GrGLProgramEffects.h b/src/gpu/gl/GrGLProgramEffects.h |
index 7ae925b69b51073f57731b02d3b8a932f134c851..e4d84a013b8c866be2da06d28cdd2e157c5cb454 100644 |
--- a/src/gpu/gl/GrGLProgramEffects.h |
+++ b/src/gpu/gl/GrGLProgramEffects.h |
@@ -16,9 +16,9 @@ |
class GrEffect; |
class GrEffectStage; |
class GrGLVertexProgramEffectsBuilder; |
-class GrGLShaderBuilder; |
-class GrGLFullShaderBuilder; |
-class GrGLFragmentOnlyShaderBuilder; |
+class GrGLProgramBuilder; |
+class GrGLFullProgramBuilder; |
+class GrGLFragmentOnlyProgramBuilder; |
/** |
* This class encapsulates an array of GrGLEffects and their supporting data (coord transforms |
@@ -54,6 +54,8 @@ public: |
const GrGLProgramDataManager&, |
const GrEffectStage* effectStages[]) = 0; |
+ void addEffect(GrGLEffect* effect) { fGLEffects.push_back(effect); } |
+ |
/** |
* Passed to GrGLEffects so they can add transformed coordinates to their shader code. |
*/ |
@@ -100,6 +102,7 @@ public: |
typedef SkTArray<TextureSampler> TextureSamplerArray; |
protected: |
+ |
/** |
* Helpers for GenEffectMetaKey. |
*/ |
@@ -117,7 +120,7 @@ protected: |
* appends the necessary data to the TextureSamplerArray* object so effects can add texture |
* lookups to their code. This method is only meant to be called during the construction phase. |
*/ |
- void emitSamplers(GrGLShaderBuilder*, const GrEffect*, TextureSamplerArray*); |
+ void emitSamplers(GrGLProgramBuilder*, const GrEffect*, TextureSamplerArray*); |
/** |
* Helper for setData(). Binds all the textures for an effect. |
@@ -134,6 +137,7 @@ protected: |
SkTArray<SkSTArray<4, Sampler, true> > fSamplers; |
private: |
+ friend class GrGLFragmentO; |
typedef SkRefCnt INHERITED; |
}; |
@@ -143,7 +147,6 @@ private: |
class GrGLProgramEffectsBuilder { |
public: |
virtual ~GrGLProgramEffectsBuilder() { } |
- |
/** |
* Emits the effect's shader code, and stores the necessary uniforms internally. |
*/ |
@@ -166,19 +169,17 @@ public: |
const GrEffectStage* effectStages[]) SK_OVERRIDE; |
private: |
- friend class GrGLVertexProgramEffectsBuilder; |
+ friend class GrGLFullProgramBuilder; |
GrGLVertexProgramEffects(int reserveCount, bool explicitLocalCoords) |
: INHERITED(reserveCount) |
, fTransforms(reserveCount) |
, fHasExplicitLocalCoords(explicitLocalCoords) { |
} |
- |
/** |
- * Helper for GrGLProgramEffectsBuilder::emitEfffect(). This method is meant to only be called |
- * during the construction phase. |
+ * This method is meant to only be called during the construction phase. |
*/ |
- void emitEffect(GrGLFullShaderBuilder*, |
+ void emitEffect(GrGLFullProgramBuilder*, |
const GrEffectStage&, |
const GrEffectKey&, |
const char* outColor, |
@@ -188,7 +189,7 @@ private: |
/** |
* Helper for emitEffect(). Emits any attributes an effect may have. |
*/ |
- void emitAttributes(GrGLFullShaderBuilder*, const GrEffectStage&); |
+ void emitAttributes(GrGLFullProgramBuilder*, const GrEffectStage&); |
/** |
* Helper for emitEffect(). Emits code to implement an effect's coord transforms in the VS. |
@@ -197,7 +198,7 @@ private: |
* of the varyings in the VS and FS as well their types are appended to the |
* TransformedCoordsArray* object, which is in turn passed to the effect's emitCode() function. |
*/ |
- void emitTransforms(GrGLFullShaderBuilder*, |
+ void emitTransforms(GrGLFullProgramBuilder*, |
const GrDrawEffect&, |
TransformedCoordsArray*); |
@@ -215,6 +216,8 @@ private: |
SkTArray<SkSTArray<2, Transform, true> > fTransforms; |
bool fHasExplicitLocalCoords; |
+ friend class GrGLVertexProgramEffectsBuilder; |
+ |
typedef GrGLProgramEffects INHERITED; |
}; |
@@ -223,25 +226,21 @@ private: |
*/ |
class GrGLVertexProgramEffectsBuilder : public GrGLProgramEffectsBuilder { |
public: |
- GrGLVertexProgramEffectsBuilder(GrGLFullShaderBuilder*, int reserveCount); |
+ GrGLVertexProgramEffectsBuilder(GrGLFullProgramBuilder*, int reserveCount); |
virtual ~GrGLVertexProgramEffectsBuilder() { } |
- |
virtual void emitEffect(const GrEffectStage&, |
const GrEffectKey&, |
const char* outColor, |
const char* inColor, |
int stageIndex) SK_OVERRIDE; |
- |
/** |
* Finalizes the building process and returns the effect array. After this call, the builder |
* becomes invalid. |
*/ |
GrGLProgramEffects* finish() { return fProgramEffects.detach(); } |
- |
private: |
- GrGLFullShaderBuilder* fBuilder; |
+ GrGLFullProgramBuilder* fBuilder; |
SkAutoTDelete<GrGLVertexProgramEffects> fProgramEffects; |
- |
typedef GrGLProgramEffectsBuilder INHERITED; |
}; |
@@ -258,7 +257,7 @@ public: |
const GrEffectStage* effectStages[]) SK_OVERRIDE; |
private: |
- friend class GrGLPathTexGenProgramEffectsBuilder; |
+ friend class GrGLFragmentOnlyProgramBuilder; |
GrGLPathTexGenProgramEffects(int reserveCount) |
: INHERITED(reserveCount) |
@@ -266,10 +265,9 @@ private: |
} |
/** |
- * Helper for GrGLProgramEffectsBuilder::emitEfffect(). This method is meant to only be called |
- * during the construction phase. |
+ * This method is meant to only be called during the construction phase. |
*/ |
- void emitEffect(GrGLFragmentOnlyShaderBuilder*, |
+ void emitEffect(GrGLFragmentOnlyProgramBuilder*, |
const GrEffectStage&, |
const GrEffectKey&, |
const char* outColor, |
@@ -284,7 +282,7 @@ private: |
* types are appended to the TransformedCoordsArray* object, which is in turn passed to the |
* effect's emitCode() function. |
*/ |
- void setupPathTexGen(GrGLFragmentOnlyShaderBuilder*, |
+ void setupPathTexGen(GrGLFragmentOnlyProgramBuilder*, |
const GrDrawEffect&, |
TransformedCoordsArray*); |
@@ -302,6 +300,7 @@ private: |
SkTArray<Transforms> fTransforms; |
+ friend class GrGLPathTexGenProgramEffectsBuilder; |
typedef GrGLProgramEffects INHERITED; |
}; |
@@ -310,26 +309,23 @@ private: |
*/ |
class GrGLPathTexGenProgramEffectsBuilder : public GrGLProgramEffectsBuilder { |
public: |
- GrGLPathTexGenProgramEffectsBuilder(GrGLFragmentOnlyShaderBuilder*, int reserveCount); |
+ GrGLPathTexGenProgramEffectsBuilder(GrGLFragmentOnlyProgramBuilder*, int reserveCount); |
virtual ~GrGLPathTexGenProgramEffectsBuilder() { } |
- |
virtual void emitEffect(const GrEffectStage&, |
const GrEffectKey&, |
const char* outColor, |
const char* inColor, |
int stageIndex) SK_OVERRIDE; |
- |
/** |
* Finalizes the building process and returns the effect array. After this call, the builder |
* becomes invalid. |
*/ |
GrGLProgramEffects* finish() { return fProgramEffects.detach(); } |
- |
private: |
- GrGLFragmentOnlyShaderBuilder* fBuilder; |
+ GrGLFragmentOnlyProgramBuilder* fBuilder; |
SkAutoTDelete<GrGLPathTexGenProgramEffects> fProgramEffects; |
- |
typedef GrGLProgramEffectsBuilder INHERITED; |
}; |
+ |
#endif |