Index: cc/output/shader.h |
diff --git a/cc/output/shader.h b/cc/output/shader.h |
index eb89d65a2dd8a074fb0205a9b80860993abb49bc..986e6d941261d3aac33ccf0a061086a67f1efa66 100644 |
--- a/cc/output/shader.h |
+++ b/cc/output/shader.h |
@@ -21,9 +21,18 @@ namespace blink { class WebGraphicsContext3D; } |
namespace cc { |
enum TexCoordPrecision { |
- TexCoordPrecisionNA, |
- TexCoordPrecisionMedium, |
- TexCoordPrecisionHigh, |
+ TexCoordPrecisionNA = 0, |
+ TexCoordPrecisionMedium = 1, |
+ TexCoordPrecisionHigh = 2, |
+ NumTexCoordPrecisions = 3 |
+}; |
+ |
+enum SamplerType { |
+ SamplerTypeNA = 0, |
+ SamplerType2D = 1, |
+ SamplerType2DRect = 2, |
+ SamplerTypeExternalOES = 3, |
+ NumSamplerTypes = 4 |
}; |
// Note: The highp_threshold_cache must be provided by the caller to make |
@@ -340,77 +349,67 @@ class FragmentTexBackgroundBinding { |
class FragmentShaderRGBATexVaryingAlpha : public FragmentTexOpaqueBinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
class FragmentShaderRGBATexPremultiplyAlpha : public FragmentTexOpaqueBinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
class FragmentShaderTexBackgroundVaryingAlpha |
: public FragmentTexBackgroundBinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
class FragmentShaderTexBackgroundPremultiplyAlpha |
: public FragmentTexBackgroundBinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
class FragmentShaderRGBATexAlpha : public FragmentTexAlphaBinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
class FragmentShaderRGBATexColorMatrixAlpha |
: public FragmentTexColorMatrixAlphaBinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
-}; |
- |
-class FragmentShaderRGBATexRectVaryingAlpha : public FragmentTexOpaqueBinding { |
- public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
class FragmentShaderRGBATexOpaque : public FragmentTexOpaqueBinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
class FragmentShaderRGBATex : public FragmentTexOpaqueBinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
// Swizzles the red and blue component of sampled texel with alpha. |
class FragmentShaderRGBATexSwizzleAlpha : public FragmentTexAlphaBinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
// Swizzles the red and blue component of sampled texel without alpha. |
class FragmentShaderRGBATexSwizzleOpaque : public FragmentTexOpaqueBinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
-}; |
- |
-// Fragment shader for external textures. |
-class FragmentShaderOESImageExternal : public FragmentTexAlphaBinding { |
- public: |
- FragmentShaderOESImageExternal(); |
- |
- std::string GetShaderString(TexCoordPrecision precision) const; |
- void Init(blink::WebGraphicsContext3D* context, |
- unsigned program, |
- int* base_uniform_index); |
- private: |
- int sampler_location_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FragmentShaderOESImageExternal); |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
class FragmentShaderRGBATexAlphaAA { |
@@ -420,7 +419,8 @@ class FragmentShaderRGBATexAlphaAA { |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |
int* base_uniform_index); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
int alpha_location() const { return alpha_location_; } |
int sampler_location() const { return sampler_location_; } |
@@ -456,20 +456,23 @@ class FragmentTexClampAlphaAABinding { |
class FragmentShaderRGBATexClampAlphaAA |
: public FragmentTexClampAlphaAABinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
// Swizzles the red and blue component of sampled texel. |
class FragmentShaderRGBATexClampSwizzleAlphaAA |
: public FragmentTexClampAlphaAABinding { |
public: |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
}; |
class FragmentShaderRGBATexAlphaMask { |
public: |
FragmentShaderRGBATexAlphaMask(); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |
@@ -497,7 +500,8 @@ class FragmentShaderRGBATexAlphaMask { |
class FragmentShaderRGBATexAlphaMaskAA { |
public: |
FragmentShaderRGBATexAlphaMaskAA(); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |
@@ -525,7 +529,8 @@ class FragmentShaderRGBATexAlphaMaskAA { |
class FragmentShaderRGBATexAlphaMaskColorMatrixAA { |
public: |
FragmentShaderRGBATexAlphaMaskColorMatrixAA(); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |
@@ -555,7 +560,8 @@ class FragmentShaderRGBATexAlphaMaskColorMatrixAA { |
class FragmentShaderRGBATexAlphaColorMatrixAA { |
public: |
FragmentShaderRGBATexAlphaColorMatrixAA(); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |
@@ -575,7 +581,8 @@ class FragmentShaderRGBATexAlphaColorMatrixAA { |
class FragmentShaderRGBATexAlphaMaskColorMatrix { |
public: |
FragmentShaderRGBATexAlphaMaskColorMatrix(); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |
@@ -605,7 +612,8 @@ class FragmentShaderRGBATexAlphaMaskColorMatrix { |
class FragmentShaderYUVVideo { |
public: |
FragmentShaderYUVVideo(); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |
@@ -632,7 +640,8 @@ class FragmentShaderYUVVideo { |
class FragmentShaderYUVAVideo { |
public: |
FragmentShaderYUVAVideo(); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |
@@ -661,7 +670,8 @@ class FragmentShaderYUVAVideo { |
class FragmentShaderColor { |
public: |
FragmentShaderColor(); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |
@@ -677,7 +687,8 @@ class FragmentShaderColor { |
class FragmentShaderColorAA { |
public: |
FragmentShaderColorAA(); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |
@@ -693,7 +704,8 @@ class FragmentShaderColorAA { |
class FragmentShaderCheckerboard { |
public: |
FragmentShaderCheckerboard(); |
- std::string GetShaderString(TexCoordPrecision precision) const; |
+ std::string GetShaderString( |
+ TexCoordPrecision precision, SamplerType sampler) const; |
void Init(blink::WebGraphicsContext3D* context, |
unsigned program, |