| Index: src/opts/SkColorCubeFilter_opts.h
|
| diff --git a/src/opts/SkColorCubeFilter_opts.h b/src/opts/SkColorCubeFilter_opts.h
|
| index 41d2525b5a387a8df89bf017f0e22a59eb3bbae6..fb403a72bdd22fa2f8cd8cc794ecc5ccde636c8f 100644
|
| --- a/src/opts/SkColorCubeFilter_opts.h
|
| +++ b/src/opts/SkColorCubeFilter_opts.h
|
| @@ -51,7 +51,10 @@ void color_cube_filter_span(const SkPMColor src[],
|
| const int i10 = (colorToIndex[1][g] + colorToIndex[0][b] * dim) * dim;
|
| const int i11 = (colorToIndex[1][g] + colorToIndex[1][b] * dim) * dim;
|
|
|
| - SkPMFloat color(0,0,0,0);
|
| + // We don't care which SkPMFloat bias we use here, so we'll pick 255,
|
| + // which makes FromOpaqueColor() and round() a little faster.
|
| + typedef SkPMFloat<255> PMFloat;
|
| + PMFloat color(0,0,0,0);
|
|
|
| for (int x = 0; x < 2; ++x) {
|
| const int ix = colorToIndex[x][r];
|
| @@ -61,16 +64,16 @@ void color_cube_filter_span(const SkPMColor src[],
|
| const SkColor lutColor10 = colorCube[ix + i10];
|
| const SkColor lutColor11 = colorCube[ix + i11];
|
|
|
| - Sk4f sum = SkPMFloat::FromOpaqueColor(lutColor00) * g0b0;
|
| - sum = sum + SkPMFloat::FromOpaqueColor(lutColor01) * g0b1;
|
| - sum = sum + SkPMFloat::FromOpaqueColor(lutColor10) * g1b0;
|
| - sum = sum + SkPMFloat::FromOpaqueColor(lutColor11) * g1b1;
|
| + Sk4f sum = PMFloat::FromOpaqueColor(lutColor00) * g0b0;
|
| + sum = sum + PMFloat::FromOpaqueColor(lutColor01) * g0b1;
|
| + sum = sum + PMFloat::FromOpaqueColor(lutColor10) * g1b0;
|
| + sum = sum + PMFloat::FromOpaqueColor(lutColor11) * g1b1;
|
|
|
| color = color + sum * Sk4f((float)colorToFactors[x][r]);
|
| }
|
|
|
| if (a != 255) {
|
| - color = color * Sk4f(a * 1.0f/255);
|
| + color = color * Sk4f(a * (1.0f/255));
|
| }
|
|
|
| dst[i] = color.round();
|
|
|