@@ -34,13 +34,10 @@ SkiaColorFilter::~SkiaColorFilter() {
3434// Color matrix filter
3535// /////////////////////////////////////////////////////////////////////////////
3636
37- SkiaColorMatrixFilter::SkiaColorMatrixFilter (SkColorFilter * skFilter, float * matrix, float * vector):
37+ SkiaColorMatrixFilter::SkiaColorMatrixFilter (SkColorFilter* skFilter, float * matrix, float * vector):
3838 SkiaColorFilter (skFilter, kColorMatrix , true ), mMatrix (matrix), mVector (vector) {
39- // Skia uses the range [0..255] for the addition vector, but we need
40- // the [0..1] range to apply the vector in GLSL
41- for (int i = 0 ; i < 4 ; i++) {
42- mVector [i] /= 255 .0f ;
43- }
39+ // TODO: We should be smarter about this
40+ mBlend = true ;
4441}
4542
4643SkiaColorMatrixFilter::~SkiaColorMatrixFilter () {
@@ -62,7 +59,7 @@ void SkiaColorMatrixFilter::setupProgram(Program* program) {
6259// Lighting color filter
6360// /////////////////////////////////////////////////////////////////////////////
6461
65- SkiaLightingFilter::SkiaLightingFilter (SkColorFilter * skFilter, int multiply, int add):
62+ SkiaLightingFilter::SkiaLightingFilter (SkColorFilter* skFilter, int multiply, int add):
6663 SkiaColorFilter (skFilter, kLighting , true ) {
6764 mMulR = ((multiply >> 16 ) & 0xFF ) / 255 .0f ;
6865 mMulG = ((multiply >> 8 ) & 0xFF ) / 255 .0f ;
@@ -71,6 +68,9 @@ SkiaLightingFilter::SkiaLightingFilter(SkColorFilter *skFilter, int multiply, in
7168 mAddR = ((add >> 16 ) & 0xFF ) / 255 .0f ;
7269 mAddG = ((add >> 8 ) & 0xFF ) / 255 .0f ;
7370 mAddB = ((add ) & 0xFF ) / 255 .0f ;
71+
72+ // A lighting filter always ignores alpha
73+ mBlend = false ;
7474}
7575
7676void SkiaLightingFilter::describe (ProgramDescription& description, const Extensions& extensions) {
@@ -86,13 +86,16 @@ void SkiaLightingFilter::setupProgram(Program* program) {
8686// Blend color filter
8787// /////////////////////////////////////////////////////////////////////////////
8888
89- SkiaBlendFilter::SkiaBlendFilter (SkColorFilter * skFilter, int color, SkXfermode::Mode mode):
89+ SkiaBlendFilter::SkiaBlendFilter (SkColorFilter* skFilter, int color, SkXfermode::Mode mode):
9090 SkiaColorFilter (skFilter, kBlend , true ), mMode (mode) {
9191 const int alpha = (color >> 24 ) & 0xFF ;
9292 mA = alpha / 255 .0f ;
9393 mR = mA * ((color >> 16 ) & 0xFF ) / 255 .0f ;
9494 mG = mA * ((color >> 8 ) & 0xFF ) / 255 .0f ;
9595 mB = mA * ((color ) & 0xFF ) / 255 .0f ;
96+
97+ // TODO: We should do something smarter here
98+ mBlend = true ;
9699}
97100
98101void SkiaBlendFilter::describe (ProgramDescription& description, const Extensions& extensions) {
0 commit comments