#include #include #include namespace mbgl { optional Color::parse(const std::string& s) { auto css_color = CSSColorParser::parse(s); // Premultiply the color. if (css_color) { const float factor = css_color->a / 255; return {{ css_color->r * factor, css_color->g * factor, css_color->b * factor, css_color->a }}; } else { return {}; } } std::string Color::stringify() const { std::array array = toArray(); return "rgba(" + util::toString(array[0]) + "," + util::toString(array[1]) + "," + util::toString(array[2]) + "," + util::toString(array[3]) + ")"; } std::array Color::toArray() const { if (a == 0) { return {{ 0, 0, 0, 0 }}; } else { return {{ r * 255 / a, g * 255 / a, b * 255 / a, a, }}; } } } // namespace mbgl