| Index: cc/output/shader.h
|
| diff --git a/cc/output/shader.h b/cc/output/shader.h
|
| index 21b4a70de5aaac404dc18061f6483967841dddf7..ea61c9192ccfe1c06a3ce268c511d3491f5dd685 100644
|
| --- a/cc/output/shader.h
|
| +++ b/cc/output/shader.h
|
| @@ -424,42 +424,53 @@ class FragmentTexColorMatrixAlphaBinding : public FragmentTexBlendMode {
|
| int color_offset_location_;
|
| };
|
|
|
| -class FragmentTexOpaqueBinding : public FragmentTexBlendMode {
|
| +class FragmentTexQuadBase : public FragmentTexBlendMode {
|
| public:
|
| - FragmentTexOpaqueBinding();
|
| + FragmentTexQuadBase() = default;
|
| + virtual ~FragmentTexQuadBase() = default;
|
| +
|
| + int sampler_location() const { return sampler_location_; }
|
| + virtual int background_color_location() const;
|
| + virtual int tex_clamp_rect_location() const;
|
| +
|
| + protected:
|
| + int sampler_location_ = -1;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(FragmentTexQuadBase);
|
| +};
|
| +
|
| +class FragmentTexClampBinding : public FragmentTexQuadBase {
|
| + public:
|
| + FragmentTexClampBinding() = default;
|
|
|
| void Init(gpu::gles2::GLES2Interface* context,
|
| unsigned program,
|
| int* base_uniform_index);
|
| - int alpha_location() const { return -1; }
|
| - int fragment_tex_transform_location() const { return -1; }
|
| - int background_color_location() const { return -1; }
|
| - int sampler_location() const { return sampler_location_; }
|
| + int tex_clamp_rect_location() const final;
|
|
|
| private:
|
| - int sampler_location_;
|
| + int tex_clamp_rect_location_ = -1;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(FragmentTexOpaqueBinding);
|
| + DISALLOW_COPY_AND_ASSIGN(FragmentTexClampBinding);
|
| };
|
|
|
| -class FragmentTexBackgroundBinding : public FragmentTexBlendMode {
|
| +class FragmentTexBackgroundBinding : public FragmentTexQuadBase {
|
| public:
|
| FragmentTexBackgroundBinding();
|
|
|
| void Init(gpu::gles2::GLES2Interface* context,
|
| unsigned program,
|
| int* base_uniform_index);
|
| - int background_color_location() const { return background_color_location_; }
|
| - int sampler_location() const { return sampler_location_; }
|
| + int background_color_location() const final;
|
|
|
| private:
|
| int background_color_location_;
|
| - int sampler_location_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(FragmentTexBackgroundBinding);
|
| };
|
|
|
| -class FragmentShaderRGBATexVaryingAlpha : public FragmentTexOpaqueBinding {
|
| +class FragmentShaderRGBATexClampVaryingAlpha : public FragmentTexClampBinding {
|
| public:
|
| std::string GetShaderString(
|
| TexCoordPrecision precision, SamplerType sampler) const;
|
| @@ -467,7 +478,16 @@ class FragmentShaderRGBATexVaryingAlpha : public FragmentTexOpaqueBinding {
|
| static std::string GetShaderBody();
|
| };
|
|
|
| -class FragmentShaderRGBATexPremultiplyAlpha : public FragmentTexOpaqueBinding {
|
| +class FragmentShaderRGBATexClampPremultiplyAlpha
|
| + : public FragmentTexClampBinding {
|
| + public:
|
| + std::string GetShaderString(TexCoordPrecision precision,
|
| + SamplerType sampler) const;
|
| + static std::string GetShaderHead();
|
| + static std::string GetShaderBody();
|
| +};
|
| +
|
| +class FragmentShaderRGBATexClamp : public FragmentTexClampBinding {
|
| public:
|
| std::string GetShaderString(
|
| TexCoordPrecision precision, SamplerType sampler) const;
|
| @@ -512,15 +532,24 @@ class FragmentShaderRGBATexColorMatrixAlpha
|
| void FillLocations(ShaderLocations* locations) const;
|
| };
|
|
|
| -class FragmentShaderRGBATexOpaque : public FragmentTexOpaqueBinding {
|
| +class FragmentTexOpaqueBinding : public FragmentTexBlendMode {
|
| public:
|
| - std::string GetShaderString(
|
| - TexCoordPrecision precision, SamplerType sampler) const;
|
| - static std::string GetShaderHead();
|
| - static std::string GetShaderBody();
|
| + FragmentTexOpaqueBinding();
|
| +
|
| + void Init(gpu::gles2::GLES2Interface* context,
|
| + unsigned program,
|
| + int* base_uniform_index);
|
| + int alpha_location() const { return -1; }
|
| + int fragment_tex_transform_location() const { return -1; }
|
| + int sampler_location() const { return sampler_location_; }
|
| +
|
| + private:
|
| + int sampler_location_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(FragmentTexOpaqueBinding);
|
| };
|
|
|
| -class FragmentShaderRGBATex : public FragmentTexOpaqueBinding {
|
| +class FragmentShaderRGBATexOpaque : public FragmentTexOpaqueBinding {
|
| public:
|
| std::string GetShaderString(
|
| TexCoordPrecision precision, SamplerType sampler) const;
|
|
|