Index: cc/output/shader.cc |
diff --git a/cc/output/shader.cc b/cc/output/shader.cc |
index b283692af14315cbacdd0d64b08dd968a6ec6857..0918a7c222f7ad0557b5ff721d30b0115c342ea1 100644 |
--- a/cc/output/shader.cc |
+++ b/cc/output/shader.cc |
@@ -29,10 +29,6 @@ std::string StripLambda(const char(&shader)[size]) { |
// handling them correctly. StipLambda removes this. |
#define SHADER0(Src) StripLambda(#Src) |
#define VERTEX_SHADER(Head, Body) SetVertexShaderDefines(Head + Body) |
-#define FRAGMENT_SHADER(Head, Body) \ |
- SetFragmentTexCoordPrecision( \ |
- precision, \ |
- SetFragmentSamplerType(sampler, SetBlendModeFunctions(Head + Body))) |
using gpu::gles2::GLES2Interface; |
@@ -769,15 +765,21 @@ std::string VertexShaderVideoTransform::GetShaderBody() { |
backdrop_rect_location_ = locations[POS + 2]; \ |
} |
-FragmentTexBlendMode::FragmentTexBlendMode() |
+FragmentShaderBase::FragmentShaderBase() |
: backdrop_location_(-1), |
original_backdrop_location_(-1), |
backdrop_rect_location_(-1), |
blend_mode_(BLEND_MODE_NONE), |
- mask_for_background_(false) { |
+ mask_for_background_(false) {} |
+ |
+std::string FragmentShaderBase::GetShaderString(TexCoordPrecision precision, |
+ SamplerType sampler) const { |
+ return SetFragmentTexCoordPrecision( |
+ precision, SetFragmentSamplerType( |
+ sampler, SetBlendModeFunctions(GetShaderSource()))); |
} |
-std::string FragmentTexBlendMode::SetBlendModeFunctions( |
+std::string FragmentShaderBase::SetBlendModeFunctions( |
const std::string& shader_string) const { |
if (shader_string.find("ApplyBlendMode") == std::string::npos) |
return shader_string; |
@@ -829,7 +831,7 @@ std::string FragmentTexBlendMode::SetBlendModeFunctions( |
kFunctionApplyBlendMode + shader_string; |
} |
-std::string FragmentTexBlendMode::GetHelperFunctions() const { |
+std::string FragmentShaderBase::GetHelperFunctions() const { |
static const std::string kFunctionHardLight = SHADER0([]() { |
vec3 hardLight(vec4 src, vec4 dst) { |
vec3 result; |
@@ -990,7 +992,7 @@ std::string FragmentTexBlendMode::GetHelperFunctions() const { |
} |
} |
-std::string FragmentTexBlendMode::GetBlendFunction() const { |
+std::string FragmentShaderBase::GetBlendFunction() const { |
return "vec4 Blend(vec4 src, vec4 dst) {" |
" vec4 result;" |
" result.a = src.a + (1.0 - src.a) * dst.a;" + |
@@ -999,7 +1001,7 @@ std::string FragmentTexBlendMode::GetBlendFunction() const { |
"}"; |
} |
-std::string FragmentTexBlendMode::GetBlendFunctionBodyForRGB() const { |
+std::string FragmentShaderBase::GetBlendFunctionBodyForRGB() const { |
switch (blend_mode_) { |
case BLEND_MODE_NORMAL: |
return "result.rgb = src.rgb + dst.rgb * (1.0 - src.a);"; |
@@ -1143,23 +1145,12 @@ void FragmentTexOpaqueBinding::Init(GLES2Interface* context, |
sampler_location_ = locations[0]; |
} |
-std::string FragmentShaderRGBATexAlpha::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexAlpha::GetShaderHead() { |
+std::string FragmentShaderRGBATexAlpha::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
varying TexCoordPrecision vec2 v_texCoord; |
uniform SamplerType s_texture; |
uniform float alpha; |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexAlpha::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = TextureLookup(s_texture, v_texCoord); |
gl_FragColor = ApplyBlendMode(texColor * alpha, 0.0); |
@@ -1175,13 +1166,7 @@ void FragmentShaderRGBATexAlpha::FillLocations( |
locations->backdrop_rect = backdrop_rect_location(); |
} |
-std::string FragmentShaderRGBATexColorMatrixAlpha::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexColorMatrixAlpha::GetShaderHead() { |
+std::string FragmentShaderRGBATexColorMatrixAlpha::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
varying TexCoordPrecision vec2 v_texCoord; |
@@ -1189,11 +1174,6 @@ std::string FragmentShaderRGBATexColorMatrixAlpha::GetShaderHead() { |
uniform float alpha; |
uniform mat4 colorMatrix; |
uniform vec4 colorOffset; |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexColorMatrixAlpha::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = TextureLookup(s_texture, v_texCoord); |
float nonZeroAlpha = max(texColor.a, 0.00001); |
@@ -1216,23 +1196,12 @@ void FragmentShaderRGBATexColorMatrixAlpha::FillLocations( |
locations->backdrop_rect = backdrop_rect_location(); |
} |
-std::string FragmentShaderRGBATexVaryingAlpha::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexVaryingAlpha::GetShaderHead() { |
+std::string FragmentShaderRGBATexVaryingAlpha::GetShaderSource() const { |
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; |
@@ -1240,23 +1209,12 @@ std::string FragmentShaderRGBATexVaryingAlpha::GetShaderBody() { |
}); |
} |
-std::string FragmentShaderRGBATexPremultiplyAlpha::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexPremultiplyAlpha::GetShaderHead() { |
+std::string FragmentShaderRGBATexPremultiplyAlpha::GetShaderSource() const { |
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; |
@@ -1291,24 +1249,13 @@ void FragmentTexBackgroundBinding::Init(GLES2Interface* context, |
DCHECK_NE(background_color_location_, -1); |
} |
-std::string FragmentShaderTexBackgroundVaryingAlpha::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderTexBackgroundVaryingAlpha::GetShaderHead() { |
+std::string FragmentShaderTexBackgroundVaryingAlpha::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
varying TexCoordPrecision vec2 v_texCoord; |
varying float v_alpha; |
uniform vec4 background_color; |
uniform SamplerType s_texture; |
- }); |
-} |
- |
-std::string FragmentShaderTexBackgroundVaryingAlpha::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = TextureLookup(s_texture, v_texCoord); |
texColor += background_color * (1.0 - texColor.a); |
@@ -1317,24 +1264,14 @@ std::string FragmentShaderTexBackgroundVaryingAlpha::GetShaderBody() { |
}); |
} |
-std::string FragmentShaderTexBackgroundPremultiplyAlpha::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderTexBackgroundPremultiplyAlpha::GetShaderHead() { |
+std::string FragmentShaderTexBackgroundPremultiplyAlpha::GetShaderSource() |
+ const { |
return SHADER0([]() { |
precision mediump float; |
varying TexCoordPrecision vec2 v_texCoord; |
varying float v_alpha; |
uniform vec4 background_color; |
uniform SamplerType s_texture; |
- }); |
-} |
- |
-std::string FragmentShaderTexBackgroundPremultiplyAlpha::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = TextureLookup(s_texture, v_texCoord); |
texColor.rgb *= texColor.a; |
@@ -1344,22 +1281,11 @@ std::string FragmentShaderTexBackgroundPremultiplyAlpha::GetShaderBody() { |
}); |
} |
-std::string FragmentShaderRGBATexOpaque::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexOpaque::GetShaderHead() { |
+std::string FragmentShaderRGBATexOpaque::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
varying TexCoordPrecision vec2 v_texCoord; |
uniform SamplerType s_texture; |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexOpaque::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = TextureLookup(s_texture, v_texCoord); |
gl_FragColor = vec4(texColor.rgb, 1.0); |
@@ -1367,42 +1293,21 @@ std::string FragmentShaderRGBATexOpaque::GetShaderBody() { |
}); |
} |
-std::string FragmentShaderRGBATex::GetShaderString(TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATex::GetShaderHead() { |
+std::string FragmentShaderRGBATex::GetShaderSource() const { |
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); } |
}); |
} |
-std::string FragmentShaderRGBATexSwizzleAlpha::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexSwizzleAlpha::GetShaderHead() { |
+std::string FragmentShaderRGBATexSwizzleAlpha::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
varying TexCoordPrecision vec2 v_texCoord; |
uniform SamplerType s_texture; |
uniform float alpha; |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexSwizzleAlpha::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = TextureLookup(s_texture, v_texCoord); |
gl_FragColor = |
@@ -1411,22 +1316,11 @@ std::string FragmentShaderRGBATexSwizzleAlpha::GetShaderBody() { |
}); |
} |
-std::string FragmentShaderRGBATexSwizzleOpaque::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexSwizzleOpaque::GetShaderHead() { |
+std::string FragmentShaderRGBATexSwizzleOpaque::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
varying TexCoordPrecision vec2 v_texCoord; |
uniform SamplerType s_texture; |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexSwizzleOpaque::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = TextureLookup(s_texture, v_texCoord); |
gl_FragColor = vec4(texColor.z, texColor.y, texColor.x, 1.0); |
@@ -1457,24 +1351,13 @@ void FragmentShaderRGBATexAlphaAA::Init(GLES2Interface* context, |
BLEND_MODE_SET_LOCATIONS(locations, 2); |
} |
-std::string FragmentShaderRGBATexAlphaAA::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaAA::GetShaderHead() { |
+std::string FragmentShaderRGBATexAlphaAA::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
uniform SamplerType s_texture; |
uniform float alpha; |
varying TexCoordPrecision vec2 v_texCoord; |
varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances. |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaAA::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = TextureLookup(s_texture, v_texCoord); |
vec4 d4 = min(edge_dist[0], edge_dist[1]); |
@@ -1518,13 +1401,7 @@ void FragmentTexClampAlphaAABinding::Init(GLES2Interface* context, |
fragment_tex_transform_location_ = locations[2]; |
} |
-std::string FragmentShaderRGBATexClampAlphaAA::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexClampAlphaAA::GetShaderHead() { |
+std::string FragmentShaderRGBATexClampAlphaAA::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
uniform SamplerType s_texture; |
@@ -1532,11 +1409,6 @@ std::string FragmentShaderRGBATexClampAlphaAA::GetShaderHead() { |
uniform TexCoordPrecision vec4 fragmentTexTransform; |
varying TexCoordPrecision vec2 v_texCoord; |
varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances. |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexClampAlphaAA::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
TexCoordPrecision vec2 texCoord = |
clamp(v_texCoord, 0.0, 1.0) * fragmentTexTransform.zw + |
@@ -1550,13 +1422,7 @@ std::string FragmentShaderRGBATexClampAlphaAA::GetShaderBody() { |
}); |
} |
-std::string FragmentShaderRGBATexClampSwizzleAlphaAA::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexClampSwizzleAlphaAA::GetShaderHead() { |
+std::string FragmentShaderRGBATexClampSwizzleAlphaAA::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
uniform SamplerType s_texture; |
@@ -1564,11 +1430,6 @@ std::string FragmentShaderRGBATexClampSwizzleAlphaAA::GetShaderHead() { |
uniform TexCoordPrecision vec4 fragmentTexTransform; |
varying TexCoordPrecision vec2 v_texCoord; |
varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances. |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexClampSwizzleAlphaAA::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
TexCoordPrecision vec2 texCoord = |
clamp(v_texCoord, 0.0, 1.0) * fragmentTexTransform.zw + |
@@ -1617,13 +1478,7 @@ void FragmentShaderRGBATexAlphaMask::Init(GLES2Interface* context, |
BLEND_MODE_SET_LOCATIONS(locations, 5); |
} |
-std::string FragmentShaderRGBATexAlphaMask::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaMask::GetShaderHead() { |
+std::string FragmentShaderRGBATexAlphaMask::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
varying TexCoordPrecision vec2 v_texCoord; |
@@ -1632,11 +1487,6 @@ std::string FragmentShaderRGBATexAlphaMask::GetShaderHead() { |
uniform TexCoordPrecision vec2 maskTexCoordScale; |
uniform TexCoordPrecision vec2 maskTexCoordOffset; |
uniform float alpha; |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaMask::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = texture2D(s_texture, v_texCoord); |
TexCoordPrecision vec2 maskTexCoord = |
@@ -1697,13 +1547,7 @@ void FragmentShaderRGBATexAlphaMaskAA::Init(GLES2Interface* context, |
BLEND_MODE_SET_LOCATIONS(locations, 5); |
} |
-std::string FragmentShaderRGBATexAlphaMaskAA::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaMaskAA::GetShaderHead() { |
+std::string FragmentShaderRGBATexAlphaMaskAA::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
uniform sampler2D s_texture; |
@@ -1713,11 +1557,6 @@ std::string FragmentShaderRGBATexAlphaMaskAA::GetShaderHead() { |
uniform float alpha; |
varying TexCoordPrecision vec2 v_texCoord; |
varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances. |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaMaskAA::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = texture2D(s_texture, v_texCoord); |
TexCoordPrecision vec2 maskTexCoord = |
@@ -1788,13 +1627,8 @@ void FragmentShaderRGBATexAlphaMaskColorMatrixAA::Init( |
BLEND_MODE_SET_LOCATIONS(locations, 7); |
} |
-std::string FragmentShaderRGBATexAlphaMaskColorMatrixAA::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaMaskColorMatrixAA::GetShaderHead() { |
+std::string FragmentShaderRGBATexAlphaMaskColorMatrixAA::GetShaderSource() |
+ const { |
return SHADER0([]() { |
precision mediump float; |
uniform sampler2D s_texture; |
@@ -1806,11 +1640,6 @@ std::string FragmentShaderRGBATexAlphaMaskColorMatrixAA::GetShaderHead() { |
uniform float alpha; |
varying TexCoordPrecision vec2 v_texCoord; |
varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances. |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaMaskColorMatrixAA::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = texture2D(s_texture, v_texCoord); |
float nonZeroAlpha = max(texColor.a, 0.00001); |
@@ -1875,13 +1704,7 @@ void FragmentShaderRGBATexAlphaColorMatrixAA::Init(GLES2Interface* context, |
BLEND_MODE_SET_LOCATIONS(locations, 4); |
} |
-std::string FragmentShaderRGBATexAlphaColorMatrixAA::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaColorMatrixAA::GetShaderHead() { |
+std::string FragmentShaderRGBATexAlphaColorMatrixAA::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
uniform SamplerType s_texture; |
@@ -1890,11 +1713,6 @@ std::string FragmentShaderRGBATexAlphaColorMatrixAA::GetShaderHead() { |
uniform vec4 colorOffset; |
varying TexCoordPrecision vec2 v_texCoord; |
varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances. |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaColorMatrixAA::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = TextureLookup(s_texture, v_texCoord); |
float nonZeroAlpha = max(texColor.a, 0.00001); |
@@ -1959,13 +1777,7 @@ void FragmentShaderRGBATexAlphaMaskColorMatrix::Init(GLES2Interface* context, |
BLEND_MODE_SET_LOCATIONS(locations, 7); |
} |
-std::string FragmentShaderRGBATexAlphaMaskColorMatrix::GetShaderString( |
- TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaMaskColorMatrix::GetShaderHead() { |
+std::string FragmentShaderRGBATexAlphaMaskColorMatrix::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
varying TexCoordPrecision vec2 v_texCoord; |
@@ -1976,11 +1788,6 @@ std::string FragmentShaderRGBATexAlphaMaskColorMatrix::GetShaderHead() { |
uniform mat4 colorMatrix; |
uniform vec4 colorOffset; |
uniform float alpha; |
- }); |
-} |
- |
-std::string FragmentShaderRGBATexAlphaMaskColorMatrix::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 texColor = texture2D(s_texture, v_texCoord); |
float nonZeroAlpha = max(texColor.a, 0.00001); |
@@ -2085,8 +1892,7 @@ void FragmentShaderYUVVideo::Init(GLES2Interface* context, |
uv_clamp_rect_location_ = locations[12]; |
} |
-std::string FragmentShaderYUVVideo::GetShaderString(TexCoordPrecision precision, |
- SamplerType sampler) const { |
+std::string FragmentShaderYUVVideo::GetShaderSource() const { |
std::string head = SHADER0([]() { |
precision mediump float; |
precision mediump int; |
@@ -2173,7 +1979,7 @@ std::string FragmentShaderYUVVideo::GetShaderString(TexCoordPrecision precision, |
} |
}); |
- return FRAGMENT_SHADER(head, functions); |
+ return head + functions; |
} |
FragmentShaderColor::FragmentShaderColor() : color_location_(-1) { |
@@ -2196,20 +2002,10 @@ void FragmentShaderColor::Init(GLES2Interface* context, |
color_location_ = locations[0]; |
} |
-std::string FragmentShaderColor::GetShaderString(TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderColor::GetShaderHead() { |
+std::string FragmentShaderColor::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
uniform vec4 color; |
- }); |
-} |
- |
-std::string FragmentShaderColor::GetShaderBody() { |
- return SHADER0([]() { |
void main() { gl_FragColor = color; } |
}); |
} |
@@ -2234,21 +2030,11 @@ void FragmentShaderColorAA::Init(GLES2Interface* context, |
color_location_ = locations[0]; |
} |
-std::string FragmentShaderColorAA::GetShaderString(TexCoordPrecision precision, |
- SamplerType sampler) const { |
- return FRAGMENT_SHADER(GetShaderHead(), GetShaderBody()); |
-} |
- |
-std::string FragmentShaderColorAA::GetShaderHead() { |
+std::string FragmentShaderColorAA::GetShaderSource() const { |
return SHADER0([]() { |
precision mediump float; |
uniform vec4 color; |
varying vec4 edge_dist[2]; // 8 edge distances. |
- }); |
-} |
- |
-std::string FragmentShaderColorAA::GetShaderBody() { |
- return SHADER0([]() { |
void main() { |
vec4 d4 = min(edge_dist[0], edge_dist[1]); |
vec2 d2 = min(d4.xz, d4.yw); |