diff options
Diffstat (limited to 'src/gpu/gl/GrGLProgram.cpp')
-rw-r--r-- | src/gpu/gl/GrGLProgram.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp index a39b0b91bf..f2776474af 100644 --- a/src/gpu/gl/GrGLProgram.cpp +++ b/src/gpu/gl/GrGLProgram.cpp @@ -1897,11 +1897,17 @@ void GrGLProgram::genStageCode(const GrGLContextInfo& gl, const char* swizzle = ""; if (desc.fInConfigFlags & StageDesc::kSwapRAndB_InConfigFlag) { GrAssert(!(desc.fInConfigFlags & StageDesc::kSmearAlpha_InConfigFlag)); + GrAssert(!(desc.fInConfigFlags & StageDesc::kSmearRed_InConfigFlag)); swizzle = ".bgra"; } else if (desc.fInConfigFlags & StageDesc::kSmearAlpha_InConfigFlag) { GrAssert(!(desc.fInConfigFlags & kMulByAlphaMask)); + GrAssert(!(desc.fInConfigFlags & StageDesc::kSmearRed_InConfigFlag)); swizzle = ".aaaa"; - } + } else if (desc.fInConfigFlags & StageDesc::kSmearRed_InConfigFlag) { + GrAssert(!(desc.fInConfigFlags & kMulByAlphaMask)); + GrAssert(!(desc.fInConfigFlags & StageDesc::kSmearAlpha_InConfigFlag)); + swizzle = ".rrrr"; + } GrStringBuilder modulate; if (NULL != fsInColor) { @@ -1951,6 +1957,8 @@ void GrGLProgram::genStageCode(const GrGLContextInfo& gl, GrAssert(GrIsPow2(kMulByAlphaMask & desc.fInConfigFlags)); GrAssert(!(desc.fInConfigFlags & StageDesc::kSmearAlpha_InConfigFlag)); + GrAssert(!(desc.fInConfigFlags & + StageDesc::kSmearRed_InConfigFlag)); segments->fFSCode.appendf("\t%s = %s(%s, %s)%s;\n", fsOutColor, texFunc.c_str(), samplerName, sampleCoords.c_str(), |