summaryrefslogtreecommitdiff
path: root/src/mbgl/util/color.cpp
blob: d5751b405fe5ab7ab50232be7855adda4480416c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <mbgl/util/color.hpp>
#include <mbgl/util/string.hpp>

#include <csscolorparser/csscolorparser.hpp>

namespace mbgl {

optional<Color> Color::parse(const std::string& s) {
    CSSColorParser::Color css_color = CSSColorParser::parse(s);

    // Premultiply the color.
    const float factor = css_color.a / 255;
    return {{
        css_color.r * factor,
        css_color.g * factor,
        css_color.b * factor,
        css_color.a
    }};
}

std::string Color::stringify() const {
    return "rgba(" +
        util::toString(r * 255) + "," +
        util::toString(g * 255) + "," +
        util::toString(b * 255) + "," +
        util::toString(a) + ")";
}

} // namespace mbgl