summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2022-02-17 07:32:03 +0100
committerGitHub <noreply@github.com>2022-02-17 07:32:03 +0100
commitd4766b2f6cab1f2e38ecfa7de3d0e68eb9139b8c (patch)
treeb5943e9cc2b6c31e80a9531a9897e1677a052ebf
parent565aecf4202199452cd414d69dbf04dac80d97ce (diff)
parent6b52aa67b8d66fa690764cd0a40772f198250ce4 (diff)
Merge pull request #58212 from Calinou/line2d-round-precision-add-property-hint
Add a property hint for the Line2D Round Precision property
-rw-r--r--doc/classes/Line2D.xml3
-rw-r--r--scene/2d/line_2d.cpp7
2 files changed, 4 insertions, 6 deletions
diff --git a/doc/classes/Line2D.xml b/doc/classes/Line2D.xml
index 41c9ea5df5..88574c0028 100644
--- a/doc/classes/Line2D.xml
+++ b/doc/classes/Line2D.xml
@@ -79,7 +79,8 @@
The points that form the lines. The line is drawn between every point set in this array. Points are interpreted as local vectors.
</member>
<member name="round_precision" type="int" setter="set_round_precision" getter="get_round_precision" default="8">
- The smoothness of the rounded joints and caps. This is only used if a cap or joint is set as round.
+ The smoothness of the rounded joints and caps. Higher values result in smoother corners, but are more demanding to render and update. This is only used if a cap or joint is set as round.
+ [b]Note:[/b] The default value is tuned for lines with the default [member width]. For thin lines, this value should be reduced to a number between [code]2[/code] and [code]4[/code] to improve performance.
</member>
<member name="sharp_limit" type="float" setter="set_sharp_limit" getter="get_sharp_limit" default="2.0">
The direction difference in radians between vector points. This value is only used if [member joint_mode] is set to [constant LINE_JOINT_SHARP].
diff --git a/scene/2d/line_2d.cpp b/scene/2d/line_2d.cpp
index 312ba0272e..2716bb2e25 100644
--- a/scene/2d/line_2d.cpp
+++ b/scene/2d/line_2d.cpp
@@ -247,10 +247,7 @@ float Line2D::get_sharp_limit() const {
}
void Line2D::set_round_precision(int p_precision) {
- if (p_precision < 1) {
- p_precision = 1;
- }
- _round_precision = p_precision;
+ _round_precision = MAX(1, p_precision);
update();
}
@@ -409,7 +406,7 @@ void Line2D::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::INT, "end_cap_mode", PROPERTY_HINT_ENUM, "None,Box,Round"), "set_end_cap_mode", "get_end_cap_mode");
ADD_GROUP("Border", "");
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "sharp_limit"), "set_sharp_limit", "get_sharp_limit");
- ADD_PROPERTY(PropertyInfo(Variant::INT, "round_precision"), "set_round_precision", "get_round_precision");
+ ADD_PROPERTY(PropertyInfo(Variant::INT, "round_precision", PROPERTY_HINT_RANGE, "1,32,1"), "set_round_precision", "get_round_precision");
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "antialiased"), "set_antialiased", "get_antialiased");
BIND_ENUM_CONSTANT(LINE_JOINT_SHARP);