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

Unified Diff: cc/output/shader.cc

Issue 723343002: Update from https://crrev.com/304121 (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/output/shader.h ('k') | cc/output/software_renderer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/shader.cc
diff --git a/cc/output/shader.cc b/cc/output/shader.cc
index b962d4ace91b1d2e295f1ee0955890995c676564..e22e4464a515974d4744722ab65c9a5e6d1e4c03 100644
--- a/cc/output/shader.cc
+++ b/cc/output/shader.cc
@@ -669,9 +669,9 @@ std::string VertexShaderVideoTransform::GetShaderString() const {
}
#define BLEND_MODE_UNIFORMS "s_backdropTexture", "backdropRect"
-#define UNUSED_BLEND_MODE_UNIFORMS (is_default_blend_mode() ? 2 : 0)
+#define UNUSED_BLEND_MODE_UNIFORMS (!has_blend_mode() ? 2 : 0)
#define BLEND_MODE_SET_LOCATIONS(X, POS) \
- if (!is_default_blend_mode()) { \
+ if (has_blend_mode()) { \
DCHECK_LT(static_cast<size_t>(POS) + 1, arraysize(X)); \
backdrop_location_ = locations[POS]; \
backdrop_rect_location_ = locations[POS + 1]; \
@@ -680,7 +680,7 @@ std::string VertexShaderVideoTransform::GetShaderString() const {
FragmentTexBlendMode::FragmentTexBlendMode()
: backdrop_location_(-1),
backdrop_rect_location_(-1),
- blend_mode_(BlendModeNormal) {
+ blend_mode_(BlendModeNone) {
}
std::string FragmentTexBlendMode::SetBlendModeFunctions(
@@ -688,7 +688,7 @@ std::string FragmentTexBlendMode::SetBlendModeFunctions(
if (shader_string.find("ApplyBlendMode") == std::string::npos)
return shader_string;
- if (is_default_blend_mode()) {
+ if (!has_blend_mode()) {
return "#define ApplyBlendMode(X) (X)\n" + shader_string;
}
@@ -902,6 +902,10 @@ std::string FragmentTexBlendMode::GetBlendFunction() const {
std::string FragmentTexBlendMode::GetBlendFunctionBodyForRGB() const {
switch (blend_mode_) {
+ case BlendModeNormal:
+ return "result.rgb = src.rgb + dst.rgb * (1.0 - src.a);";
+ case BlendModeScreen:
+ return "result.rgb = src.rgb + (1.0 - src.rgb) * dst.rgb;";
case BlendModeLighten:
return "result.rgb = max((1.0 - src.a) * dst.rgb + src.rgb,"
" (1.0 - dst.a) * src.rgb + dst.rgb);";
@@ -963,11 +967,11 @@ std::string FragmentTexBlendMode::GetBlendFunctionBodyForRGB() const {
" srcDstAlpha.a,"
" srcDstAlpha.rgb);"
"result.rgb += (1.0 - src.a) * dst.rgb + (1.0 - dst.a) * src.rgb;";
- default:
+ case BlendModeNone:
+ case NumBlendModes:
NOTREACHED();
- // simple alpha compositing
- return "result.rgb = src.rgb * src.a + dst.rgb * dst.a * (1 - src.a)";
}
+ return "result = vec4(1.0, 0.0, 0.0, 1.0);";
}
FragmentTexAlphaBinding::FragmentTexAlphaBinding()
« no previous file with comments | « cc/output/shader.h ('k') | cc/output/software_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698