Merge pull request #36379 from aaronfranke/color-constructors
Add a Color constructor for Color with alpha
This commit is contained in:
commit
ae33cf5f45
12
core/color.h
12
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 {
|
||||
|
|
|
@ -102,11 +102,6 @@ String Variant::get_type_name(Variant::Type p_type) {
|
|||
return "Plane";
|
||||
|
||||
} break;
|
||||
/*
|
||||
case QUAT: {
|
||||
|
||||
|
||||
} break;*/
|
||||
case AABB: {
|
||||
|
||||
return "AABB";
|
||||
|
|
|
@ -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]);
|
||||
|
@ -2211,6 +2216,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);
|
||||
|
||||
|
|
|
@ -39,6 +39,20 @@
|
|||
[/codeblock]
|
||||
</description>
|
||||
</method>
|
||||
<method name="Color">
|
||||
<return type="Color">
|
||||
</return>
|
||||
<argument index="0" name="c" type="Color">
|
||||
</argument>
|
||||
<argument index="1" name="a" type="float">
|
||||
</argument>
|
||||
<description>
|
||||
Constructs a color from an existing color, but with a custom alpha value.
|
||||
[codeblock]
|
||||
var red = Color(Color.red, 0.5) # 50% transparent red.
|
||||
[/codeblock]
|
||||
</description>
|
||||
</method>
|
||||
<method name="Color">
|
||||
<return type="Color">
|
||||
</return>
|
||||
|
|
|
@ -420,7 +420,7 @@ namespace Godot
|
|||
return txt;
|
||||
}
|
||||
|
||||
// Constructors
|
||||
// Constructors
|
||||
public Color(float r, float g, float b, float a = 1.0f)
|
||||
{
|
||||
this.r = r;
|
||||
|
@ -429,6 +429,14 @@ namespace Godot
|
|||
this.a = a;
|
||||
}
|
||||
|
||||
public Color(Color c, float a = 1.0f)
|
||||
{
|
||||
r = c.r;
|
||||
g = c.g;
|
||||
b = c.b;
|
||||
this.a = a;
|
||||
}
|
||||
|
||||
public Color(uint rgba)
|
||||
{
|
||||
a = (rgba & 0xFF) / 255.0f;
|
||||
|
|
Loading…
Reference in New Issue