Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: cc/output/shader.cc

Issue 683113005: Update from chromium https://crrev.com/302282 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/output/overlay_strategy_single_on_top.cc ('k') | cc/quads/list_container.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « cc/output/overlay_strategy_single_on_top.cc ('k') | cc/quads/list_container.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698