diff --git a/engine/src/flutter/lib/ui/painting.dart b/engine/src/flutter/lib/ui/painting.dart index d41658ab6e3..33d209486f6 100644 --- a/engine/src/flutter/lib/ui/painting.dart +++ b/engine/src/flutter/lib/ui/painting.dart @@ -129,17 +129,17 @@ class Color { /// * `r` is [red], from 0 to 255. /// * `g` is [green], from 0 to 255. /// * `b` is [blue], from 0 to 255. - /// * `opacity` is the alpha channel of this color as a double, with 0.0 being + /// * `opacity` is alpha channel of this color as a double, with 0.0 being /// transparent and 1.0 being fully opaque. /// /// Out of range values are brought into range using modulo 255. /// /// See also [fromARGB], which takes the opacity as an integer value. const Color.fromRGBO(int r, int g, int b, double opacity) : - value = (((((opacity * 0xff + 0.5) ~/ 1) & 0xff) << 24) | // Since colors are canonicalized we need to round the alpha value manually - ((r & 0xff) << 16) | - ((g & 0xff) << 8) | - ((b & 0xff) << 0)) & 0xFFFFFFFF; + value = ((((opacity * 0xff ~/ 1) & 0xff) << 24) | + ((r & 0xff) << 16) | + ((g & 0xff) << 8) | + ((b & 0xff) << 0)) & 0xFFFFFFFF; /// A 32 bit value representing this color. /// diff --git a/engine/src/flutter/testing/dart/color_test.dart b/engine/src/flutter/testing/dart/color_test.dart index 3f2dee6d4fa..f756f83a41a 100644 --- a/engine/src/flutter/testing/dart/color_test.dart +++ b/engine/src/flutter/testing/dart/color_test.dart @@ -55,12 +55,6 @@ void main() { expect(const NotAColor(123), equals(const NotAColor(123))); }); - test('Color.fromRGBO', () { - expect(const Color.fromRGBO(0, 0, 0, 1.0), const Color(0xFF000000)); - expect(const Color.fromRGBO(0, 0, 0, 0.5), const Color(0x80000000)); - expect(const Color.fromRGBO(0, 0, 0, 0.0), const Color(0x00000000)); - }); - test('Color.lerp', () { expect( Color.lerp(const Color(0x00000000), const Color(0xFFFFFFFF), 0.0),