| Index: src/gpu/gl/GrGLProgramEffects.h
|
| diff --git a/src/gpu/gl/GrGLProgramEffects.h b/src/gpu/gl/GrGLProgramEffects.h
|
| index e4d84a013b8c866be2da06d28cdd2e157c5cb454..0eaff53b76894f4c5da12b6c5f2eb2b4f699c99e 100644
|
| --- a/src/gpu/gl/GrGLProgramEffects.h
|
| +++ b/src/gpu/gl/GrGLProgramEffects.h
|
| @@ -10,6 +10,7 @@
|
|
|
| #include "GrBackendEffectFactory.h"
|
| #include "GrGLProgramDataManager.h"
|
| +#include "GrGpu.h"
|
| #include "GrTexture.h"
|
| #include "GrTextureAccess.h"
|
|
|
| @@ -28,6 +29,7 @@ class GrGLFragmentOnlyProgramBuilder;
|
| class GrGLProgramEffects : public SkRefCnt {
|
| public:
|
| typedef GrGLProgramDataManager::UniformHandle UniformHandle;
|
| + typedef GrGLProgramDataManager::VaryingHandle VaryingHandle;
|
|
|
| /**
|
| * This class emits some of the code inserted into the shaders for an effect. The code it
|
| @@ -51,6 +53,7 @@ public:
|
| * Calls setData() on each effect, and sets their transformation matrices and texture bindings.
|
| */
|
| virtual void setData(GrGpuGL*,
|
| + GrGpu::DrawType,
|
| const GrGLProgramDataManager&,
|
| const GrEffectStage* effectStages[]) = 0;
|
|
|
| @@ -165,6 +168,7 @@ public:
|
| class GrGLVertexProgramEffects : public GrGLProgramEffects {
|
| public:
|
| virtual void setData(GrGpuGL*,
|
| + GrGpu::DrawType,
|
| const GrGLProgramDataManager&,
|
| const GrEffectStage* effectStages[]) SK_OVERRIDE;
|
|
|
| @@ -205,7 +209,9 @@ private:
|
| /**
|
| * Helper for setData(). Sets all the transform matrices for an effect.
|
| */
|
| - void setTransformData(const GrGLProgramDataManager&, const GrDrawEffect&, int effectIdx);
|
| + void setTransformData(GrGpuGL* gpu, const GrGLProgramDataManager&, const GrDrawEffect&, int effectIdx);
|
| + void setPathTransformData(GrGpuGL* gpu, const GrGLProgramDataManager&, const GrDrawEffect&,
|
| + int effectIdx);
|
|
|
| struct Transform {
|
| Transform() { fCurrentValue = SkMatrix::InvalidMatrix(); }
|
| @@ -213,7 +219,15 @@ private:
|
| SkMatrix fCurrentValue;
|
| };
|
|
|
| + struct PathTransform {
|
| + PathTransform() { fCurrentValue = SkMatrix::InvalidMatrix(); }
|
| + VaryingHandle fHandle;
|
| + SkMatrix fCurrentValue;
|
| + GrSLType fType;
|
| + };
|
| +
|
| SkTArray<SkSTArray<2, Transform, true> > fTransforms;
|
| + SkTArray<SkTArray<PathTransform, true> > fPathTransforms;
|
| bool fHasExplicitLocalCoords;
|
|
|
| friend class GrGLVertexProgramEffectsBuilder;
|
| @@ -253,6 +267,7 @@ private:
|
| class GrGLPathTexGenProgramEffects : public GrGLProgramEffects {
|
| public:
|
| virtual void setData(GrGpuGL*,
|
| + GrGpu::DrawType,
|
| const GrGLProgramDataManager&,
|
| const GrEffectStage* effectStages[]) SK_OVERRIDE;
|
|
|
|
|