| Index: cc/output/shader.h
|
| diff --git a/cc/output/shader.h b/cc/output/shader.h
|
| index 4afd3a8b20a99a9cd4592aa9f6e296333bccf020..6fc872f552e883fe5f4a2edca8c98414b9409e71 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();
|
| @@ -163,45 +179,45 @@ private:
|
|
|
| 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 usingBindUniform, int* baseUniformIndex);
|
| private:
|
| int m_samplerLocation;
|
| @@ -212,7 +228,7 @@ public:
|
| FragmentShaderRGBATexAlphaAA();
|
|
|
| void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex);
|
| - std::string getShaderString() const;
|
| + std::string getShaderString(TexCoordPrecision precision) const;
|
|
|
| int alphaLocation() const { return m_alphaLocation; }
|
| int samplerLocation() const { return m_samplerLocation; }
|
| @@ -243,19 +259,19 @@ private:
|
|
|
| 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, bool usingBindUniform, int* baseUniformIndex);
|
| int alphaLocation() const { return m_alphaLocation; }
|
| @@ -275,7 +291,7 @@ private:
|
| class FragmentShaderRGBATexAlphaMaskAA {
|
| public:
|
| FragmentShaderRGBATexAlphaMaskAA();
|
| - std::string getShaderString() const;
|
| + std::string getShaderString(TexCoordPrecision precision) const;
|
|
|
| void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex);
|
| int alphaLocation() const { return m_alphaLocation; }
|
| @@ -297,7 +313,7 @@ private:
|
| class FragmentShaderYUVVideo {
|
| public:
|
| FragmentShaderYUVVideo();
|
| - std::string getShaderString() const;
|
| + std::string getShaderString(TexCoordPrecision precision) const;
|
|
|
| void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex);
|
|
|
| @@ -320,7 +336,7 @@ private:
|
| class FragmentShaderColor {
|
| public:
|
| FragmentShaderColor();
|
| - std::string getShaderString() const;
|
| + std::string getShaderString(TexCoordPrecision precision) const;
|
|
|
| void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex);
|
| int edgeLocation() const { return -1; }
|
| @@ -333,7 +349,7 @@ private:
|
| class FragmentShaderColorAA {
|
| public:
|
| FragmentShaderColorAA();
|
| - std::string getShaderString() const;
|
| + std::string getShaderString(TexCoordPrecision precision) const;
|
|
|
| void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex);
|
| int edgeLocation() const { return m_edgeLocation; }
|
| @@ -347,7 +363,7 @@ private:
|
| class FragmentShaderCheckerboard {
|
| public:
|
| FragmentShaderCheckerboard();
|
| - std::string getShaderString() const;
|
| + std::string getShaderString(TexCoordPrecision precision) const;
|
|
|
| void init(WebKit::WebGraphicsContext3D*, unsigned program, bool usingBindUniform, int* baseUniformIndex);
|
| int alphaLocation() const { return m_alphaLocation; }
|
|
|