diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/color.h | 12 | ||||
-rw-r--r-- | core/variant.cpp | 5 | ||||
-rw-r--r-- | core/variant_call.cpp | 7 |
3 files changed, 18 insertions, 6 deletions
diff --git a/core/color.h b/core/color.h index d95e80f5da..8b689fdde1 100644 --- a/core/color.h +++ b/core/color.h @@ -205,7 +205,7 @@ struct Color { operator String() const; /** - * No construct parameters, r=0, g=0, b=0. a=255 + * No construct parameters, r=0, g=0, b=0. a=1 */ _FORCE_INLINE_ Color() { r = 0; @@ -223,6 +223,16 @@ struct Color { b = p_b; a = p_a; } + + /** + * Construct a Color from another Color, but with the specified alpha value. + */ + _FORCE_INLINE_ Color(const Color &p_c, float p_a) { + r = p_c.r; + g = p_c.g; + b = p_c.b; + a = p_a; + } }; bool Color::operator<(const Color &p_color) const { diff --git a/core/variant.cpp b/core/variant.cpp index b3611536b8..a91876dd98 100644 --- a/core/variant.cpp +++ b/core/variant.cpp @@ -102,11 +102,6 @@ String Variant::get_type_name(Variant::Type p_type) { return "Plane"; } break; - /* - case QUAT: { - - - } break;*/ case AABB: { return "AABB"; diff --git a/core/variant_call.cpp b/core/variant_call.cpp index 39bfd04a0b..395e46d912 100644 --- a/core/variant_call.cpp +++ b/core/variant_call.cpp @@ -1075,6 +1075,11 @@ struct _VariantCall { r_ret = Color::hex(*p_args[0]); } + static void Color_init5(Variant &r_ret, const Variant **p_args) { + + r_ret = Color(((Color)(*p_args[0])), *p_args[1]); + } + static void AABB_init1(Variant &r_ret, const Variant **p_args) { r_ret = ::AABB(*p_args[0], *p_args[1]); @@ -2209,6 +2214,8 @@ void register_variant_methods() { _VariantCall::add_constructor(_VariantCall::Color_init1, Variant::COLOR, "r", Variant::FLOAT, "g", Variant::FLOAT, "b", Variant::FLOAT, "a", Variant::FLOAT); _VariantCall::add_constructor(_VariantCall::Color_init2, Variant::COLOR, "r", Variant::FLOAT, "g", Variant::FLOAT, "b", Variant::FLOAT); + // init3 and init4 are the constructors for HTML hex strings and integers respectively which don't need binding here, so we skip to init5. + _VariantCall::add_constructor(_VariantCall::Color_init5, Variant::COLOR, "c", Variant::COLOR, "a", Variant::FLOAT); _VariantCall::add_constructor(_VariantCall::AABB_init1, Variant::AABB, "position", Variant::VECTOR3, "size", Variant::VECTOR3); |