| 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
|
|
|