Add color filters to gpu path.
git-svn-id: http://skia.googlecode.com/svn/trunk@1297 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gpu/src/GrGpuGLShaders.cpp b/gpu/src/GrGpuGLShaders.cpp
index 3ce6e55..2487563 100644
--- a/gpu/src/GrGpuGLShaders.cpp
+++ b/gpu/src/GrGpuGLShaders.cpp
@@ -438,6 +438,19 @@
GrCrash("Unknown color type.");
}
}
+ if (fProgramData->fUniLocations.fColorFilterUni
+ != GrGLProgram::kUnusedUniform
+ && fProgramData->fColorFilterColor
+ != fCurrDrawState.fColorFilterColor) {
+ float c[] = {
+ GrColorUnpackR(fCurrDrawState.fColorFilterColor) / 255.f,
+ GrColorUnpackG(fCurrDrawState.fColorFilterColor) / 255.f,
+ GrColorUnpackB(fCurrDrawState.fColorFilterColor) / 255.f,
+ GrColorUnpackA(fCurrDrawState.fColorFilterColor) / 255.f
+ };
+ GR_GL(Uniform4fv(fProgramData->fUniLocations.fColorFilterUni, 1, c));
+ fProgramData->fColorFilterColor = fCurrDrawState.fColorFilterColor;
+ }
}
@@ -693,6 +706,8 @@
fCurrentProgram.fStageEffects[s] = NULL;
}
}
+ desc.fColorFilterColor = fCurrDrawState.fColorFilterColor;
+ desc.fColorFilterXfermode = fCurrDrawState.fColorFilterXfermode;
}