| Index: cc/output/shader.h
|
| diff --git a/cc/output/shader.h b/cc/output/shader.h
|
| index 49b2e6629b4337053aa7e0a798ec630e84d9c5d6..24d541756ef01abc0cc42b47bc38a7661f5d4aed 100644
|
| --- a/cc/output/shader.h
|
| +++ b/cc/output/shader.h
|
| @@ -8,12 +8,28 @@
|
| #include <string>
|
| #include "third_party/skia/include/core/SkColorPriv.h"
|
|
|
| +namespace gfx {
|
| +class Point;
|
| +}
|
| +
|
| namespace WebKit {
|
| class WebGraphicsContext3D;
|
| }
|
|
|
| namespace cc {
|
|
|
| +enum TexCoordPrecision {
|
| + TexCoordPrecisionNA,
|
| + TexCoordPrecisionMedium,
|
| + TexCoordPrecisionHigh,
|
| +};
|
| +
|
| +int TexCoordHighpThreshold(WebKit::WebGraphicsContext3D* context);
|
| +
|
| +TexCoordPrecision TexCoordPrecisionRequired(
|
| + WebKit::WebGraphicsContext3D* context,
|
| + const gfx::Point& max_coordinate);
|
| +
|
| class VertexShaderPosTex {
|
| public:
|
| VertexShaderPosTex();
|
| @@ -195,45 +211,45 @@ class FragmentTexOpaqueBinding {
|
|
|
| class FragmentShaderRGBATexVaryingAlpha : public FragmentTexOpaqueBinding {
|
| public:
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
| };
|
|
|
| class FragmentShaderRGBATexAlpha : public FragmentTexAlphaBinding {
|
| public:
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
| };
|
|
|
| class FragmentShaderRGBATexRectVaryingAlpha : public FragmentTexAlphaBinding {
|
| public:
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
| };
|
|
|
| class FragmentShaderRGBATexOpaque : public FragmentTexOpaqueBinding {
|
| public:
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
| };
|
|
|
| class FragmentShaderRGBATex : public FragmentTexOpaqueBinding {
|
| public:
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
| };
|
|
|
| // Swizzles the red and blue component of sampled texel with alpha.
|
| class FragmentShaderRGBATexSwizzleAlpha : public FragmentTexAlphaBinding {
|
| public:
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
| };
|
|
|
| // Swizzles the red and blue component of sampled texel without alpha.
|
| class FragmentShaderRGBATexSwizzleOpaque : public FragmentTexOpaqueBinding {
|
| public:
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
| };
|
|
|
| // Fragment shader for external textures.
|
| class FragmentShaderOESImageExternal : public FragmentTexAlphaBinding {
|
| public:
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
| bool Init(WebKit::WebGraphicsContext3D*,
|
| unsigned program,
|
| bool using_bind_uniform,
|
| @@ -250,7 +266,7 @@ class FragmentShaderRGBATexAlphaAA {
|
| unsigned program,
|
| bool using_bind_uniform,
|
| int* base_uniform_index);
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
|
|
| int alpha_location() const { return alpha_location_; }
|
| int sampler_location() const { return sampler_location_; }
|
| @@ -287,20 +303,20 @@ class FragmentTexClampAlphaAABinding {
|
| class FragmentShaderRGBATexClampAlphaAA :
|
| public FragmentTexClampAlphaAABinding {
|
| public:
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
| };
|
|
|
| // Swizzles the red and blue component of sampled texel.
|
| class FragmentShaderRGBATexClampSwizzleAlphaAA :
|
| public FragmentTexClampAlphaAABinding {
|
| public:
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
| };
|
|
|
| class FragmentShaderRGBATexAlphaMask {
|
| public:
|
| FragmentShaderRGBATexAlphaMask();
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
|
|
| void Init(WebKit::WebGraphicsContext3D*,
|
| unsigned program,
|
| @@ -327,7 +343,7 @@ class FragmentShaderRGBATexAlphaMask {
|
| class FragmentShaderRGBATexAlphaMaskAA {
|
| public:
|
| FragmentShaderRGBATexAlphaMaskAA();
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
|
|
| void Init(WebKit::WebGraphicsContext3D*,
|
| unsigned program,
|
| @@ -356,7 +372,7 @@ class FragmentShaderRGBATexAlphaMaskAA {
|
| class FragmentShaderYUVVideo {
|
| public:
|
| FragmentShaderYUVVideo();
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
|
|
| void Init(WebKit::WebGraphicsContext3D*,
|
| unsigned program,
|
| @@ -381,7 +397,7 @@ class FragmentShaderYUVVideo {
|
| class FragmentShaderColor {
|
| public:
|
| FragmentShaderColor();
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
|
|
| void Init(WebKit::WebGraphicsContext3D*,
|
| unsigned program,
|
| @@ -397,7 +413,7 @@ class FragmentShaderColor {
|
| class FragmentShaderColorAA {
|
| public:
|
| FragmentShaderColorAA();
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
|
|
| void Init(WebKit::WebGraphicsContext3D*,
|
| unsigned program,
|
| @@ -414,7 +430,7 @@ class FragmentShaderColorAA {
|
| class FragmentShaderCheckerboard {
|
| public:
|
| FragmentShaderCheckerboard();
|
| - std::string GetShaderString() const;
|
| + std::string GetShaderString(TexCoordPrecision precision) const;
|
|
|
| void Init(WebKit::WebGraphicsContext3D*,
|
| unsigned program,
|
|
|