aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrGLProgram.cpp
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-11-09 14:14:38 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-11-09 14:14:38 +0000
commite63799d3fd4571202098a9d0dc02f582e9ec8f9d (patch)
treec293714cbf893b71917343c6159a544aaf00edad /src/gpu/GrGLProgram.cpp
parent002af91302e35378ae9a7074291ce7645b947316 (diff)
[GPU] when writing to unpremult dest and alpha is 0, make rgb=0
Review URL: http://codereview.appspot.com/5340062/ git-svn-id: http://skia.googlecode.com/svn/trunk@2640 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/gpu/GrGLProgram.cpp')
-rw-r--r--src/gpu/GrGLProgram.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gpu/GrGLProgram.cpp b/src/gpu/GrGLProgram.cpp
index 93303cabce..28e4fc178a 100644
--- a/src/gpu/GrGLProgram.cpp
+++ b/src/gpu/GrGLProgram.cpp
@@ -893,7 +893,8 @@ bool GrGLProgram::genProgram(const GrGLInterface* gl,
inCoverage.c_str(),
&segments.fFSCode);
if (ProgramDesc::kNo_OutputPM == fProgramDesc.fOutputPM) {
- segments.fFSCode.appendf("\t%s = vec4(%s.rgb / %s.a, %s.a);\n",
+ segments.fFSCode.appendf("\t%s = %s.a <= 0.0 ? vec4(0,0,0,0) : vec4(%s.rgb / %s.a, %s.a);\n",
+ fsColorOutput,
fsColorOutput,
fsColorOutput,
fsColorOutput,