[core] Remove constexpr from Color

GCC can't cope with it.
This commit is contained in:
John Firebaugh
2017-01-03 15:06:33 -08:00
parent b387105419
commit 4d6c5b2d3b
3 changed files with 14 additions and 14 deletions

View File

@@ -10,8 +10,8 @@ namespace mbgl {
// Stores a premultiplied color, with all four channels ranging from 0..1
class Color {
public:
constexpr Color() = default;
constexpr Color(float r_, float g_, float b_, float a_)
Color() = default;
Color(float r_, float g_, float b_, float a_)
: r(r_), g(g_), b(b_), a(a_) {
assert(r_ >= 0.0f);
assert(r_ <= 1.0f);
@@ -28,25 +28,25 @@ public:
float b = 0.0f;
float a = 0.0f;
static constexpr Color black() { return { 0.0f, 0.0f, 0.0f, 1.0f }; };
static constexpr Color white() { return { 1.0f, 1.0f, 1.0f, 1.0f }; };
static Color black() { return { 0.0f, 0.0f, 0.0f, 1.0f }; };
static Color white() { return { 1.0f, 1.0f, 1.0f, 1.0f }; };
static constexpr Color red() { return { 1.0f, 0.0f, 0.0f, 1.0f }; };
static constexpr Color green() { return { 0.0f, 1.0f, 0.0f, 1.0f }; };
static constexpr Color blue() { return { 0.0f, 0.0f, 1.0f, 1.0f }; };
static Color red() { return { 1.0f, 0.0f, 0.0f, 1.0f }; };
static Color green() { return { 0.0f, 1.0f, 0.0f, 1.0f }; };
static Color blue() { return { 0.0f, 0.0f, 1.0f, 1.0f }; };
static optional<Color> parse(const std::string&);
};
constexpr bool operator==(const Color& colorA, const Color& colorB) {
inline bool operator==(const Color& colorA, const Color& colorB) {
return colorA.r == colorB.r && colorA.g == colorB.g && colorA.b == colorB.b && colorA.a == colorB.a;
}
constexpr bool operator!=(const Color& colorA, const Color& colorB) {
inline bool operator!=(const Color& colorA, const Color& colorB) {
return !(colorA == colorB);
}
constexpr Color operator*(const Color& color, float alpha) {
inline Color operator*(const Color& color, float alpha) {
assert(alpha >= 0.0f);
assert(alpha <= 1.0f);
return {

View File

@@ -22,7 +22,7 @@ ClearDepth::Type ClearDepth::Get() {
return clearDepth;
}
const constexpr ClearColor::Type ClearColor::Default;
const ClearColor::Type ClearColor::Default { 0, 0, 0, 0 };
void ClearColor::Set(const Type& value) {
MBGL_CHECK_ERROR(glClearColor(value.r, value.g, value.b, value.a));
@@ -205,7 +205,7 @@ BlendFunc::Type BlendFunc::Get() {
static_cast<ColorMode::BlendFactor>(dfactor) };
}
const constexpr BlendColor::Type BlendColor::Default;
const BlendColor::Type BlendColor::Default { 0, 0, 0, 0 };
void BlendColor::Set(const Type& value) {
MBGL_CHECK_ERROR(glBlendColor(value.r, value.g, value.b, value.a));

View File

@@ -21,7 +21,7 @@ struct ClearDepth {
struct ClearColor {
using Type = Color;
static const constexpr Type Default = { 0, 0, 0, 0 };
static const Type Default;
static void Set(const Type&);
static Type Get();
};
@@ -142,7 +142,7 @@ constexpr bool operator!=(const BlendFunc::Type& a, const BlendFunc::Type& b) {
struct BlendColor {
using Type = Color;
static const constexpr Type Default = { 0, 0, 0, 0 };
static const Type Default;
static void Set(const Type&);
static Type Get();
};