diff --git a/platform/node/test/ignores.json b/platform/node/test/ignores.json index bde950ca9..06c4d4885 100644 --- a/platform/node/test/ignores.json +++ b/platform/node/test/ignores.json @@ -1,8 +1,5 @@ { "expression-tests/coalesce/inference": "https://github.com/mapbox/mapbox-gl-native/issues/10588", - "expression-tests/interpolate/linear-color": "https://github.com/mapbox/mapbox-gl-native/issues/10604", - "expression-tests/to-rgba/alpha": "https://github.com/mapbox/mapbox-gl-native/issues/10604", - "expression-tests/to-rgba/basic": "https://github.com/mapbox/mapbox-gl-native/issues/10604", "query-tests/circle-stroke-width/inside": "https://github.com/mapbox/mapbox-gl-native/issues/10307", "query-tests/geometry/multilinestring": "needs investigation", "query-tests/geometry/multipolygon": "needs investigation", diff --git a/src/mbgl/style/expression/compound_expression.cpp b/src/mbgl/style/expression/compound_expression.cpp index ff21157fa..42cb65502 100644 --- a/src/mbgl/style/expression/compound_expression.cpp +++ b/src/mbgl/style/expression/compound_expression.cpp @@ -210,7 +210,12 @@ std::unordered_map initiali ); }); define("to-rgba", [](const Color& color) -> Result> { - return std::array {{ color.r, color.g, color.b, color.a }}; + return std::array {{ + 255 * color.r / color.a, + 255 * color.g / color.a, + 255 * color.b / color.a, + color.a + }}; }); define("rgba", rgba); diff --git a/src/mbgl/style/expression/util.cpp b/src/mbgl/style/expression/util.cpp index f198fb3e1..ee680dab0 100644 --- a/src/mbgl/style/expression/util.cpp +++ b/src/mbgl/style/expression/util.cpp @@ -1,4 +1,3 @@ - #include #include @@ -30,10 +29,9 @@ Result rgba(double r, double g, double b, double a) { "]: 'a' must be between 0 and 1." }; } - return Color(r / 255, g / 255, b / 255, a); + return Color(r / 255 * a, g / 255 * a, b / 255 * a, a); } } // namespace expression } // namespace style } // namespace mbgl - diff --git a/src/mbgl/util/color.cpp b/src/mbgl/util/color.cpp index fcb7f4ec1..c8145d36e 100644 --- a/src/mbgl/util/color.cpp +++ b/src/mbgl/util/color.cpp @@ -24,9 +24,9 @@ optional Color::parse(const std::string& s) { std::string Color::stringify() const { return "rgba(" + - util::toString(r * 255) + "," + - util::toString(g * 255) + "," + - util::toString(b * 255) + "," + + util::toString(r * 255 / a) + "," + + util::toString(g * 255 / a) + "," + + util::toString(b * 255 / a) + "," + util::toString(a) + ")"; }