Index: src/gpu/gl/GrGLProgramEffects.h |
diff --git a/src/gpu/gl/GrGLProgramEffects.h b/src/gpu/gl/GrGLProgramEffects.h |
index 769c7a133006fa5df49f21383cc9546caab29e96..978711bcdd8d79b3ab03dad4030b45ceaf169d3e 100644 |
--- a/src/gpu/gl/GrGLProgramEffects.h |
+++ b/src/gpu/gl/GrGLProgramEffects.h |
@@ -12,6 +12,7 @@ |
#include "GrTexture.h" |
#include "GrTextureAccess.h" |
#include "GrGLUniformManager.h" |
+#include "GrGpu.h" |
class GrEffectStage; |
class GrGLVertexProgramEffectsBuilder; |
@@ -28,6 +29,7 @@ class GrGLProgramEffects : public SkRefCnt { |
public: |
typedef GrBackendEffectFactory::EffectKey EffectKey; |
typedef GrGLUniformManager::UniformHandle UniformHandle; |
+ typedef GrGLUniformManager::FragmentInputHandle FragmentInputHandle; |
/** |
* These methods generate different portions of an effect's final key. |
@@ -48,6 +50,7 @@ public: |
* Calls setData() on each effect, and sets their transformation matrices and texture bindings. |
*/ |
virtual void setData(GrGpuGL*, |
+ GrGpu::DrawType, |
const GrGLUniformManager&, |
const GrEffectStage* effectStages[]) = 0; |
@@ -152,6 +155,7 @@ public: |
class GrGLVertexProgramEffects : public GrGLProgramEffects { |
public: |
virtual void setData(GrGpuGL*, |
+ GrGpu::DrawType, |
const GrGLUniformManager&, |
const GrEffectStage* effectStages[]) SK_OVERRIDE; |
@@ -195,15 +199,23 @@ private: |
/** |
* Helper for setData(). Sets all the transform matrices for an effect. |
*/ |
- void setTransformData(const GrGLUniformManager&, const GrDrawEffect&, int effectIdx); |
+ void setTransformData(GrGpuGL* gpu, const GrGLUniformManager&, const GrDrawEffect&, int effectIdx); |
+ void setFragmentInputTransformData(GrGpuGL* gpu, const GrGLUniformManager&, const GrDrawEffect&, |
+ int effectIdx); |
struct Transform { |
Transform() { fCurrentValue = SkMatrix::InvalidMatrix(); } |
UniformHandle fHandle; |
SkMatrix fCurrentValue; |
}; |
- |
+ struct FragmentInputTransform { |
+ FragmentInputTransform() { fCurrentValue = SkMatrix::InvalidMatrix(); } |
+ FragmentInputHandle fHandle; |
+ SkMatrix fCurrentValue; |
+ GrSLType fType; |
+ }; |
SkTArray<SkSTArray<2, Transform, true> > fTransforms; |
+ SkTArray<SkTArray<FragmentInputTransform, true> > fFragmentInputTransforms; |
bool fHasExplicitLocalCoords; |
typedef GrGLProgramEffects INHERITED; |
@@ -245,6 +257,7 @@ private: |
class GrGLPathTexGenProgramEffects : public GrGLProgramEffects { |
public: |
virtual void setData(GrGpuGL*, |
+ GrGpu::DrawType, |
const GrGLUniformManager&, |
const GrEffectStage* effectStages[]) SK_OVERRIDE; |