| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/output/shader.h" | 5 #include "cc/output/shader.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 1416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1427 } | 1427 } |
| 1428 | 1428 |
| 1429 std::string FragmentShaderRGBATexAlphaMask::GetShaderString( | 1429 std::string FragmentShaderRGBATexAlphaMask::GetShaderString( |
| 1430 TexCoordPrecision precision, | 1430 TexCoordPrecision precision, |
| 1431 SamplerType sampler) const { | 1431 SamplerType sampler) const { |
| 1432 // clang-format off | 1432 // clang-format off |
| 1433 return FRAGMENT_SHADER( | 1433 return FRAGMENT_SHADER( |
| 1434 // clang-format on | 1434 // clang-format on |
| 1435 precision mediump float; | 1435 precision mediump float; |
| 1436 varying TexCoordPrecision vec2 v_texCoord; | 1436 varying TexCoordPrecision vec2 v_texCoord; |
| 1437 uniform SamplerType s_texture; | 1437 uniform sampler2D s_texture; |
| 1438 uniform SamplerType s_mask; | 1438 uniform SamplerType s_mask; |
| 1439 uniform TexCoordPrecision vec2 maskTexCoordScale; | 1439 uniform TexCoordPrecision vec2 maskTexCoordScale; |
| 1440 uniform TexCoordPrecision vec2 maskTexCoordOffset; | 1440 uniform TexCoordPrecision vec2 maskTexCoordOffset; |
| 1441 uniform float alpha; | 1441 uniform float alpha; |
| 1442 void main() { | 1442 void main() { |
| 1443 vec4 texColor = TextureLookup(s_texture, v_texCoord); | 1443 vec4 texColor = texture2D(s_texture, v_texCoord); |
| 1444 TexCoordPrecision vec2 maskTexCoord = | 1444 TexCoordPrecision vec2 maskTexCoord = |
| 1445 vec2(maskTexCoordOffset.x + v_texCoord.x * maskTexCoordScale.x, | 1445 vec2(maskTexCoordOffset.x + v_texCoord.x * maskTexCoordScale.x, |
| 1446 maskTexCoordOffset.y + v_texCoord.y * maskTexCoordScale.y); | 1446 maskTexCoordOffset.y + v_texCoord.y * maskTexCoordScale.y); |
| 1447 vec4 maskColor = TextureLookup(s_mask, maskTexCoord); | 1447 vec4 maskColor = TextureLookup(s_mask, maskTexCoord); |
| 1448 gl_FragColor = ApplyBlendMode(texColor * alpha * maskColor.w); | 1448 gl_FragColor = ApplyBlendMode(texColor * alpha * maskColor.w); |
| 1449 } | 1449 } |
| 1450 // clang-format off | 1450 // clang-format off |
| 1451 ); // NOLINT(whitespace/parens) | 1451 ); // NOLINT(whitespace/parens) |
| 1452 // clang-format on | 1452 // clang-format on |
| 1453 } | 1453 } |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1487 BLEND_MODE_SET_LOCATIONS(locations, 5); | 1487 BLEND_MODE_SET_LOCATIONS(locations, 5); |
| 1488 } | 1488 } |
| 1489 | 1489 |
| 1490 std::string FragmentShaderRGBATexAlphaMaskAA::GetShaderString( | 1490 std::string FragmentShaderRGBATexAlphaMaskAA::GetShaderString( |
| 1491 TexCoordPrecision precision, | 1491 TexCoordPrecision precision, |
| 1492 SamplerType sampler) const { | 1492 SamplerType sampler) const { |
| 1493 // clang-format off | 1493 // clang-format off |
| 1494 return FRAGMENT_SHADER( | 1494 return FRAGMENT_SHADER( |
| 1495 // clang-format on | 1495 // clang-format on |
| 1496 precision mediump float; | 1496 precision mediump float; |
| 1497 uniform SamplerType s_texture; | 1497 uniform sampler2D s_texture; |
| 1498 uniform SamplerType s_mask; | 1498 uniform SamplerType s_mask; |
| 1499 uniform TexCoordPrecision vec2 maskTexCoordScale; | 1499 uniform TexCoordPrecision vec2 maskTexCoordScale; |
| 1500 uniform TexCoordPrecision vec2 maskTexCoordOffset; | 1500 uniform TexCoordPrecision vec2 maskTexCoordOffset; |
| 1501 uniform float alpha; | 1501 uniform float alpha; |
| 1502 varying TexCoordPrecision vec2 v_texCoord; | 1502 varying TexCoordPrecision vec2 v_texCoord; |
| 1503 varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances. | 1503 varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances. |
| 1504 | 1504 |
| 1505 void main() { | 1505 void main() { |
| 1506 vec4 texColor = TextureLookup(s_texture, v_texCoord); | 1506 vec4 texColor = texture2D(s_texture, v_texCoord); |
| 1507 TexCoordPrecision vec2 maskTexCoord = | 1507 TexCoordPrecision vec2 maskTexCoord = |
| 1508 vec2(maskTexCoordOffset.x + v_texCoord.x * maskTexCoordScale.x, | 1508 vec2(maskTexCoordOffset.x + v_texCoord.x * maskTexCoordScale.x, |
| 1509 maskTexCoordOffset.y + v_texCoord.y * maskTexCoordScale.y); | 1509 maskTexCoordOffset.y + v_texCoord.y * maskTexCoordScale.y); |
| 1510 vec4 maskColor = TextureLookup(s_mask, maskTexCoord); | 1510 vec4 maskColor = TextureLookup(s_mask, maskTexCoord); |
| 1511 vec4 d4 = min(edge_dist[0], edge_dist[1]); | 1511 vec4 d4 = min(edge_dist[0], edge_dist[1]); |
| 1512 vec2 d2 = min(d4.xz, d4.yw); | 1512 vec2 d2 = min(d4.xz, d4.yw); |
| 1513 float aa = clamp(gl_FragCoord.w * min(d2.x, d2.y), 0.0, 1.0); | 1513 float aa = clamp(gl_FragCoord.w * min(d2.x, d2.y), 0.0, 1.0); |
| 1514 gl_FragColor = ApplyBlendMode(texColor * alpha * maskColor.w * aa); | 1514 gl_FragColor = ApplyBlendMode(texColor * alpha * maskColor.w * aa); |
| 1515 } | 1515 } |
| 1516 // clang-format off | 1516 // clang-format off |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1560 BLEND_MODE_SET_LOCATIONS(locations, 7); | 1560 BLEND_MODE_SET_LOCATIONS(locations, 7); |
| 1561 } | 1561 } |
| 1562 | 1562 |
| 1563 std::string FragmentShaderRGBATexAlphaMaskColorMatrixAA::GetShaderString( | 1563 std::string FragmentShaderRGBATexAlphaMaskColorMatrixAA::GetShaderString( |
| 1564 TexCoordPrecision precision, | 1564 TexCoordPrecision precision, |
| 1565 SamplerType sampler) const { | 1565 SamplerType sampler) const { |
| 1566 // clang-format off | 1566 // clang-format off |
| 1567 return FRAGMENT_SHADER( | 1567 return FRAGMENT_SHADER( |
| 1568 // clang-format on | 1568 // clang-format on |
| 1569 precision mediump float; | 1569 precision mediump float; |
| 1570 uniform SamplerType s_texture; | 1570 uniform sampler2D s_texture; |
| 1571 uniform SamplerType s_mask; | 1571 uniform SamplerType s_mask; |
| 1572 uniform vec2 maskTexCoordScale; | 1572 uniform vec2 maskTexCoordScale; |
| 1573 uniform vec2 maskTexCoordOffset; | 1573 uniform vec2 maskTexCoordOffset; |
| 1574 uniform mat4 colorMatrix; | 1574 uniform mat4 colorMatrix; |
| 1575 uniform vec4 colorOffset; | 1575 uniform vec4 colorOffset; |
| 1576 uniform float alpha; | 1576 uniform float alpha; |
| 1577 varying TexCoordPrecision vec2 v_texCoord; | 1577 varying TexCoordPrecision vec2 v_texCoord; |
| 1578 varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances. | 1578 varying TexCoordPrecision vec4 edge_dist[2]; // 8 edge distances. |
| 1579 | 1579 |
| 1580 void main() { | 1580 void main() { |
| 1581 vec4 texColor = TextureLookup(s_texture, v_texCoord); | 1581 vec4 texColor = texture2D(s_texture, v_texCoord); |
| 1582 float nonZeroAlpha = max(texColor.a, 0.00001); | 1582 float nonZeroAlpha = max(texColor.a, 0.00001); |
| 1583 texColor = vec4(texColor.rgb / nonZeroAlpha, nonZeroAlpha); | 1583 texColor = vec4(texColor.rgb / nonZeroAlpha, nonZeroAlpha); |
| 1584 texColor = colorMatrix * texColor + colorOffset; | 1584 texColor = colorMatrix * texColor + colorOffset; |
| 1585 texColor.rgb *= texColor.a; | 1585 texColor.rgb *= texColor.a; |
| 1586 texColor = clamp(texColor, 0.0, 1.0); | 1586 texColor = clamp(texColor, 0.0, 1.0); |
| 1587 TexCoordPrecision vec2 maskTexCoord = | 1587 TexCoordPrecision vec2 maskTexCoord = |
| 1588 vec2(maskTexCoordOffset.x + v_texCoord.x * maskTexCoordScale.x, | 1588 vec2(maskTexCoordOffset.x + v_texCoord.x * maskTexCoordScale.x, |
| 1589 maskTexCoordOffset.y + v_texCoord.y * maskTexCoordScale.y); | 1589 maskTexCoordOffset.y + v_texCoord.y * maskTexCoordScale.y); |
| 1590 vec4 maskColor = TextureLookup(s_mask, maskTexCoord); | 1590 vec4 maskColor = TextureLookup(s_mask, maskTexCoord); |
| 1591 vec4 d4 = min(edge_dist[0], edge_dist[1]); | 1591 vec4 d4 = min(edge_dist[0], edge_dist[1]); |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1698 } | 1698 } |
| 1699 | 1699 |
| 1700 std::string FragmentShaderRGBATexAlphaMaskColorMatrix::GetShaderString( | 1700 std::string FragmentShaderRGBATexAlphaMaskColorMatrix::GetShaderString( |
| 1701 TexCoordPrecision precision, | 1701 TexCoordPrecision precision, |
| 1702 SamplerType sampler) const { | 1702 SamplerType sampler) const { |
| 1703 // clang-format off | 1703 // clang-format off |
| 1704 return FRAGMENT_SHADER( | 1704 return FRAGMENT_SHADER( |
| 1705 // clang-format on | 1705 // clang-format on |
| 1706 precision mediump float; | 1706 precision mediump float; |
| 1707 varying TexCoordPrecision vec2 v_texCoord; | 1707 varying TexCoordPrecision vec2 v_texCoord; |
| 1708 uniform SamplerType s_texture; | 1708 uniform sampler2D s_texture; |
| 1709 uniform SamplerType s_mask; | 1709 uniform SamplerType s_mask; |
| 1710 uniform vec2 maskTexCoordScale; | 1710 uniform vec2 maskTexCoordScale; |
| 1711 uniform vec2 maskTexCoordOffset; | 1711 uniform vec2 maskTexCoordOffset; |
| 1712 uniform mat4 colorMatrix; | 1712 uniform mat4 colorMatrix; |
| 1713 uniform vec4 colorOffset; | 1713 uniform vec4 colorOffset; |
| 1714 uniform float alpha; | 1714 uniform float alpha; |
| 1715 void main() { | 1715 void main() { |
| 1716 vec4 texColor = TextureLookup(s_texture, v_texCoord); | 1716 vec4 texColor = texture2D(s_texture, v_texCoord); |
| 1717 float nonZeroAlpha = max(texColor.a, 0.00001); | 1717 float nonZeroAlpha = max(texColor.a, 0.00001); |
| 1718 texColor = vec4(texColor.rgb / nonZeroAlpha, nonZeroAlpha); | 1718 texColor = vec4(texColor.rgb / nonZeroAlpha, nonZeroAlpha); |
| 1719 texColor = colorMatrix * texColor + colorOffset; | 1719 texColor = colorMatrix * texColor + colorOffset; |
| 1720 texColor.rgb *= texColor.a; | 1720 texColor.rgb *= texColor.a; |
| 1721 texColor = clamp(texColor, 0.0, 1.0); | 1721 texColor = clamp(texColor, 0.0, 1.0); |
| 1722 TexCoordPrecision vec2 maskTexCoord = | 1722 TexCoordPrecision vec2 maskTexCoord = |
| 1723 vec2(maskTexCoordOffset.x + v_texCoord.x * maskTexCoordScale.x, | 1723 vec2(maskTexCoordOffset.x + v_texCoord.x * maskTexCoordScale.x, |
| 1724 maskTexCoordOffset.y + v_texCoord.y * maskTexCoordScale.y); | 1724 maskTexCoordOffset.y + v_texCoord.y * maskTexCoordScale.y); |
| 1725 vec4 maskColor = TextureLookup(s_mask, maskTexCoord); | 1725 vec4 maskColor = TextureLookup(s_mask, maskTexCoord); |
| 1726 gl_FragColor = ApplyBlendMode(texColor * alpha * maskColor.w); | 1726 gl_FragColor = ApplyBlendMode(texColor * alpha * maskColor.w); |
| (...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1979 vec2 coord = mod(floor(texCoord * frequency * 2.0), 2.0); | 1979 vec2 coord = mod(floor(texCoord * frequency * 2.0), 2.0); |
| 1980 float picker = abs(coord.x - coord.y); // NOLINT | 1980 float picker = abs(coord.x - coord.y); // NOLINT |
| 1981 gl_FragColor = mix(color1, color2, picker) * alpha; | 1981 gl_FragColor = mix(color1, color2, picker) * alpha; |
| 1982 } | 1982 } |
| 1983 // clang-format off | 1983 // clang-format off |
| 1984 ); // NOLINT(whitespace/parens) | 1984 ); // NOLINT(whitespace/parens) |
| 1985 // clang-format on | 1985 // clang-format on |
| 1986 } | 1986 } |
| 1987 | 1987 |
| 1988 } // namespace cc | 1988 } // namespace cc |
| OLD | NEW |