Index: cc/output/shader.cc |
diff --git a/cc/output/shader.cc b/cc/output/shader.cc |
index c80ec27c9e5f5b826172c588b05a13afb142c371..b5d163862d14e010aa19d5bcd083278366ed34b4 100644 |
--- a/cc/output/shader.cc |
+++ b/cc/output/shader.cc |
@@ -351,7 +351,6 @@ |
uniform TexCoordPrecision vec4 texTransform[NUM_STATIC_QUADS]; |
uniform float opacity[NUM_STATIC_QUADS * 4]; |
varying TexCoordPrecision vec2 v_texCoord; |
- varying float v_index; |
varying float v_alpha; |
}); |
} |
@@ -360,7 +359,6 @@ |
return SHADER0([]() { |
void main() { |
int quad_index = int(a_index * 0.25); // NOLINT |
- v_index = float(quad_index); |
gl_Position = matrix[quad_index] * a_position; |
TexCoordPrecision vec4 texTrans = texTransform[quad_index]; |
v_texCoord = a_texCoord * texTrans.zw + texTrans.xy; |
@@ -1218,124 +1216,58 @@ |
locations->backdrop_rect = backdrop_rect_location(); |
} |
-int FragmentTexQuadBase::background_color_location() const { |
- return -1; |
-} |
- |
-int FragmentTexQuadBase::tex_clamp_rect_location() const { |
- return -1; |
-} |
- |
-void FragmentTexClampBinding::Init(GLES2Interface* context, |
- unsigned program, |
- int* base_uniform_index) { |
- static const char* uniforms[] = { |
- "s_texture", "tex_clamp_rect", |
- }; |
- int locations[arraysize(uniforms)]; |
- |
- GetProgramUniformLocations(context, program, arraysize(uniforms), uniforms, |
- locations, base_uniform_index); |
- |
- sampler_location_ = locations[0]; |
- DCHECK_NE(sampler_location_, -1); |
- |
- tex_clamp_rect_location_ = locations[1]; |
- DCHECK_NE(tex_clamp_rect_location_, -1); |
-} |
- |
-int FragmentTexClampBinding::tex_clamp_rect_location() const { |
- return tex_clamp_rect_location_; |
-} |
- |
-std::string FragmentShaderRGBATexClampVaryingAlpha::GetShaderString( |
+std::string FragmentShaderRGBATexVaryingAlpha::GetShaderString( |
TexCoordPrecision precision, |
SamplerType sampler) const { |
return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
} |
-std::string FragmentShaderRGBATexClampVaryingAlpha::GetShaderHead() { |
- return base::StringPrintf("#define NUM_STATIC_QUADS %d\n", |
- StaticGeometryBinding::NUM_QUADS) + |
- SHADER0([]() { |
- precision mediump float; |
- varying TexCoordPrecision vec2 v_texCoord; |
- varying float v_index; |
- varying float v_alpha; |
- uniform SamplerType s_texture; |
- uniform vec4 tex_clamp_rect[NUM_STATIC_QUADS]; |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexClampVaryingAlpha::GetShaderBody() { |
- return SHADER0([]() { |
- void main() { |
- vec2 tex_clamped = max(tex_clamp_rect[int(v_index)].xy, |
- min(tex_clamp_rect[int(v_index)].zw, v_texCoord)); |
- vec4 texColor = TextureLookup(s_texture, tex_clamped); |
+std::string FragmentShaderRGBATexVaryingAlpha::GetShaderHead() { |
+ return SHADER0([]() { |
+ precision mediump float; |
+ varying TexCoordPrecision vec2 v_texCoord; |
+ varying float v_alpha; |
+ uniform SamplerType s_texture; |
+ }); |
+} |
+ |
+std::string FragmentShaderRGBATexVaryingAlpha::GetShaderBody() { |
+ return SHADER0([]() { |
+ void main() { |
+ vec4 texColor = TextureLookup(s_texture, v_texCoord); |
gl_FragColor = texColor * v_alpha; |
} |
}); |
} |
-std::string FragmentShaderRGBATexClampPremultiplyAlpha::GetShaderString( |
+std::string FragmentShaderRGBATexPremultiplyAlpha::GetShaderString( |
TexCoordPrecision precision, |
SamplerType sampler) const { |
return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
} |
-std::string FragmentShaderRGBATexClampPremultiplyAlpha::GetShaderHead() { |
- return base::StringPrintf("#define NUM_STATIC_QUADS %d\n", |
- StaticGeometryBinding::NUM_QUADS) + |
- SHADER0([]() { |
- precision mediump float; |
- varying TexCoordPrecision vec2 v_texCoord; |
- varying float v_index; |
- varying float v_alpha; |
- uniform SamplerType s_texture; |
- uniform vec4 tex_clamp_rect[NUM_STATIC_QUADS]; |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexClampPremultiplyAlpha::GetShaderBody() { |
- return SHADER0([]() { |
- void main() { |
- vec2 tex_clamped = max(tex_clamp_rect[int(v_index)].xy, |
- min(tex_clamp_rect[int(v_index)].zw, v_texCoord)); |
- vec4 texColor = TextureLookup(s_texture, tex_clamped); |
+std::string FragmentShaderRGBATexPremultiplyAlpha::GetShaderHead() { |
+ return SHADER0([]() { |
+ precision mediump float; |
+ varying TexCoordPrecision vec2 v_texCoord; |
+ varying float v_alpha; |
+ uniform SamplerType s_texture; |
+ }); |
+} |
+ |
+std::string FragmentShaderRGBATexPremultiplyAlpha::GetShaderBody() { |
+ return SHADER0([]() { |
+ void main() { |
+ vec4 texColor = TextureLookup(s_texture, v_texCoord); |
texColor.rgb *= texColor.a; |
gl_FragColor = texColor * v_alpha; |
} |
}); |
} |
-std::string FragmentShaderRGBATexClamp::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexClamp::GetShaderHead() { |
- return SHADER0([]() { |
- precision mediump float; |
- varying TexCoordPrecision vec2 v_texCoord; |
- uniform SamplerType s_texture; |
- uniform vec4 tex_clamp_rect; |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexClamp::GetShaderBody() { |
- return SHADER0([]() { |
- void main() { |
- vec2 tex_clamped = |
- max(tex_clamp_rect.xy, min(tex_clamp_rect.zw, v_texCoord)); |
- gl_FragColor = TextureLookup(s_texture, tex_clamped); |
- } |
- }); |
-} |
- |
FragmentTexBackgroundBinding::FragmentTexBackgroundBinding() |
- : background_color_location_(-1) {} |
+ : background_color_location_(-1), sampler_location_(-1) { |
+} |
void FragmentTexBackgroundBinding::Init(GLES2Interface* context, |
unsigned program, |
@@ -1357,10 +1289,6 @@ |
background_color_location_ = locations[1]; |
DCHECK_NE(background_color_location_, -1); |
-} |
- |
-int FragmentTexBackgroundBinding::background_color_location() const { |
- return background_color_location_; |
} |
std::string FragmentShaderTexBackgroundVaryingAlpha::GetShaderString( |
@@ -1436,6 +1364,25 @@ |
vec4 texColor = TextureLookup(s_texture, v_texCoord); |
gl_FragColor = vec4(texColor.rgb, 1.0); |
} |
+ }); |
+} |
+ |
+std::string FragmentShaderRGBATex::GetShaderString(TexCoordPrecision precision, |
+ SamplerType sampler) const { |
+ return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
+} |
+ |
+std::string FragmentShaderRGBATex::GetShaderHead() { |
+ return SHADER0([]() { |
+ precision mediump float; |
+ varying TexCoordPrecision vec2 v_texCoord; |
+ uniform SamplerType s_texture; |
+ }); |
+} |
+ |
+std::string FragmentShaderRGBATex::GetShaderBody() { |
+ return SHADER0([]() { |
+ void main() { gl_FragColor = TextureLookup(s_texture, v_texCoord); } |
}); |
} |