diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-06-16 13:25:06 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-16 13:25:06 -0700 |
commit | 19158d9f01909bf566616524f23e0acb635562f7 (patch) | |
tree | a3adf8c8713dbe6d20fe9fae055836e677b4ca47 /src/mbgl | |
parent | 3f024ebaf02e82e9282e303a46127f366a84904d (diff) | |
download | qtlocation-mapboxgl-19158d9f01909bf566616524f23e0acb635562f7.tar.gz |
[core, node] Implement setPaintProperty for color properties (#5380)
Diffstat (limited to 'src/mbgl')
-rw-r--r-- | src/mbgl/style/property_parsing.cpp | 16 | ||||
-rw-r--r-- | src/mbgl/util/color.cpp | 20 |
2 files changed, 26 insertions, 10 deletions
diff --git a/src/mbgl/style/property_parsing.cpp b/src/mbgl/style/property_parsing.cpp index 2b08ba8788..2eb55dcb25 100644 --- a/src/mbgl/style/property_parsing.cpp +++ b/src/mbgl/style/property_parsing.cpp @@ -2,8 +2,6 @@ #include <mbgl/platform/log.hpp> -#include <csscolorparser/csscolorparser.hpp> - namespace mbgl { namespace style { @@ -44,15 +42,13 @@ optional<Color> parseConstant(const char* name, const JSValue& value) { return {}; } - CSSColorParser::Color css_color = CSSColorParser::parse({ value.GetString(), value.GetStringLength() }); - - // Premultiply the color. - const float factor = css_color.a / 255; + optional<Color> result = Color::parse({ value.GetString(), value.GetStringLength() }); + if (!result) { + Log::Warning(Event::ParseStyle, "value of '%s' must be a valid color", name); + return {}; + } - return Color{ (float)css_color.r * factor, - (float)css_color.g * factor, - (float)css_color.b * factor, - css_color.a }; + return result; } template <> diff --git a/src/mbgl/util/color.cpp b/src/mbgl/util/color.cpp new file mode 100644 index 0000000000..eea897d3ab --- /dev/null +++ b/src/mbgl/util/color.cpp @@ -0,0 +1,20 @@ +#include <mbgl/util/color.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 + }}; +} + +} // namespace mbgl |