|
@@ -2427,6 +2427,8 @@ float GradientTexture2D::_get_gradient_offset_at(int x, int y) const {
|
|
|
}
|
|
|
} else if (fill == Fill::FILL_RADIAL) {
|
|
|
ofs = (pos - fill_from).length() / (fill_to - fill_from).length();
|
|
|
+ } else if (fill == Fill::FILL_SQUARE) {
|
|
|
+ ofs = MAX(Math::abs(pos.x - fill_from.x), Math::abs(pos.y - fill_from.y)) / MAX(Math::abs(fill_to.x - fill_from.x), Math::abs(fill_to.y - fill_from.y));
|
|
|
}
|
|
|
if (repeat == Repeat::REPEAT_NONE) {
|
|
|
ofs = CLAMP(ofs, 0.0, 1.0);
|
|
@@ -2555,7 +2557,7 @@ void GradientTexture2D::_bind_methods() {
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_hdr"), "set_use_hdr", "is_using_hdr");
|
|
|
|
|
|
ADD_GROUP("Fill", "fill_");
|
|
|
- ADD_PROPERTY(PropertyInfo(Variant::INT, "fill", PROPERTY_HINT_ENUM, "Linear,Radial"), "set_fill", "get_fill");
|
|
|
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "fill", PROPERTY_HINT_ENUM, "Linear,Radial,Square"), "set_fill", "get_fill");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "fill_from"), "set_fill_from", "get_fill_from");
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "fill_to"), "set_fill_to", "get_fill_to");
|
|
|
|
|
@@ -2564,6 +2566,7 @@ void GradientTexture2D::_bind_methods() {
|
|
|
|
|
|
BIND_ENUM_CONSTANT(FILL_LINEAR);
|
|
|
BIND_ENUM_CONSTANT(FILL_RADIAL);
|
|
|
+ BIND_ENUM_CONSTANT(FILL_SQUARE);
|
|
|
|
|
|
BIND_ENUM_CONSTANT(REPEAT_NONE);
|
|
|
BIND_ENUM_CONSTANT(REPEAT);
|