Loading libs/hwui/OpenGLRenderer.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -1398,8 +1398,8 @@ void OpenGLRenderer::setupDrawBlending(bool blend, SkXfermode::Mode mode, bool s // When the blending mode is kClear_Mode, we need to use a modulate color // argb=1,0,0,0 accountForClear(mode); chooseBlending(blend || (mColorSet && mColorA < 1.0f) || (mShader && mShader->blend()), mode, mDescription, swapSrcDst); chooseBlending(blend || (mColorSet && mColorA < 1.0f) || (mShader && mShader->blend()) || (mColorFilter && mColorFilter->blend()), mode, mDescription, swapSrcDst); } void OpenGLRenderer::setupDrawProgram() { Loading libs/hwui/ProgramCache.cpp +0 −1 Original line number Diff line number Diff line Loading @@ -347,7 +347,6 @@ const char* gFS_Main_ApplyColorOp[4] = { // None "", // Matrix // TODO: Fix premultiplied alpha computations for color matrix " fragColor *= colorMatrix;\n" " fragColor += colorMatrixVector;\n" " fragColor.rgb *= fragColor.a;\n", Loading libs/hwui/SkiaColorFilter.cpp +11 −8 Original line number Diff line number Diff line Loading @@ -36,11 +36,8 @@ SkiaColorFilter::~SkiaColorFilter() { SkiaColorMatrixFilter::SkiaColorMatrixFilter(SkColorFilter* skFilter, float* matrix, float* vector): SkiaColorFilter(skFilter, kColorMatrix, true), mMatrix(matrix), mVector(vector) { // Skia uses the range [0..255] for the addition vector, but we need // the [0..1] range to apply the vector in GLSL for (int i = 0; i < 4; i++) { mVector[i] /= 255.0f; } // TODO: We should be smarter about this mBlend = true; } SkiaColorMatrixFilter::~SkiaColorMatrixFilter() { Loading Loading @@ -71,6 +68,9 @@ SkiaLightingFilter::SkiaLightingFilter(SkColorFilter *skFilter, int multiply, in mAddR = ((add >> 16) & 0xFF) / 255.0f; mAddG = ((add >> 8) & 0xFF) / 255.0f; mAddB = ((add ) & 0xFF) / 255.0f; // A lighting filter always ignores alpha mBlend = false; } void SkiaLightingFilter::describe(ProgramDescription& description, const Extensions& extensions) { Loading @@ -93,6 +93,9 @@ SkiaBlendFilter::SkiaBlendFilter(SkColorFilter *skFilter, int color, SkXfermode: mR = mA * ((color >> 16) & 0xFF) / 255.0f; mG = mA * ((color >> 8) & 0xFF) / 255.0f; mB = mA * ((color ) & 0xFF) / 255.0f; // TODO: We should do something smarter here mBlend = true; } void SkiaBlendFilter::describe(ProgramDescription& description, const Extensions& extensions) { Loading Loading
libs/hwui/OpenGLRenderer.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -1398,8 +1398,8 @@ void OpenGLRenderer::setupDrawBlending(bool blend, SkXfermode::Mode mode, bool s // When the blending mode is kClear_Mode, we need to use a modulate color // argb=1,0,0,0 accountForClear(mode); chooseBlending(blend || (mColorSet && mColorA < 1.0f) || (mShader && mShader->blend()), mode, mDescription, swapSrcDst); chooseBlending(blend || (mColorSet && mColorA < 1.0f) || (mShader && mShader->blend()) || (mColorFilter && mColorFilter->blend()), mode, mDescription, swapSrcDst); } void OpenGLRenderer::setupDrawProgram() { Loading
libs/hwui/ProgramCache.cpp +0 −1 Original line number Diff line number Diff line Loading @@ -347,7 +347,6 @@ const char* gFS_Main_ApplyColorOp[4] = { // None "", // Matrix // TODO: Fix premultiplied alpha computations for color matrix " fragColor *= colorMatrix;\n" " fragColor += colorMatrixVector;\n" " fragColor.rgb *= fragColor.a;\n", Loading
libs/hwui/SkiaColorFilter.cpp +11 −8 Original line number Diff line number Diff line Loading @@ -36,11 +36,8 @@ SkiaColorFilter::~SkiaColorFilter() { SkiaColorMatrixFilter::SkiaColorMatrixFilter(SkColorFilter* skFilter, float* matrix, float* vector): SkiaColorFilter(skFilter, kColorMatrix, true), mMatrix(matrix), mVector(vector) { // Skia uses the range [0..255] for the addition vector, but we need // the [0..1] range to apply the vector in GLSL for (int i = 0; i < 4; i++) { mVector[i] /= 255.0f; } // TODO: We should be smarter about this mBlend = true; } SkiaColorMatrixFilter::~SkiaColorMatrixFilter() { Loading Loading @@ -71,6 +68,9 @@ SkiaLightingFilter::SkiaLightingFilter(SkColorFilter *skFilter, int multiply, in mAddR = ((add >> 16) & 0xFF) / 255.0f; mAddG = ((add >> 8) & 0xFF) / 255.0f; mAddB = ((add ) & 0xFF) / 255.0f; // A lighting filter always ignores alpha mBlend = false; } void SkiaLightingFilter::describe(ProgramDescription& description, const Extensions& extensions) { Loading @@ -93,6 +93,9 @@ SkiaBlendFilter::SkiaBlendFilter(SkColorFilter *skFilter, int color, SkXfermode: mR = mA * ((color >> 16) & 0xFF) / 255.0f; mG = mA * ((color >> 8) & 0xFF) / 255.0f; mB = mA * ((color ) & 0xFF) / 255.0f; // TODO: We should do something smarter here mBlend = true; } void SkiaBlendFilter::describe(ProgramDescription& description, const Extensions& extensions) { Loading