Tweak TextureProgressBar NOTIFICATION_DRAW to support 9-patch stretch in radial modes
1) Code is splitted into 3 sections: - draw `under` texture; - draw `progress` texture + draw radial modes reference cross; - draw `over` texture. Each draw texture section handles nine-patch stretching. Except for the progress texture in radial modes, which does not support nine-patch stretching. 2) The reference cross position now is not misaligned to real center position (`floor()` call removed). 3) The reference cross drawing code is additionally surrounded by `TOOLS_ENABLED` check.
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
</member>
|
||||
<member name="mouse_filter" type="int" setter="set_mouse_filter" getter="get_mouse_filter" overrides="Control" enum="Control.MouseFilter" default="1" />
|
||||
<member name="nine_patch_stretch" type="bool" setter="set_nine_patch_stretch" getter="get_nine_patch_stretch" default="false">
|
||||
If [code]true[/code], Godot treats the bar's textures like in [NinePatchRect]. Use the [code]stretch_margin_*[/code] properties like [member stretch_margin_bottom] to set up the nine patch's 3×3 grid. When using a radial [member fill_mode], this setting will enable stretching.
|
||||
If [code]true[/code], Godot treats the bar's textures like in [NinePatchRect]. Use the [code]stretch_margin_*[/code] properties like [member stretch_margin_bottom] to set up the nine patch's 3×3 grid. When using a radial [member fill_mode], this setting will only enable stretching for [member texture_progress], while [member texture_under] and [member texture_over] will be treated like in [NinePatchRect].
|
||||
</member>
|
||||
<member name="radial_center_offset" type="Vector2" setter="set_radial_center_offset" getter="get_radial_center_offset" default="Vector2(0, 0)">
|
||||
Offsets [member texture_progress] if [member fill_mode] is [constant FILL_CLOCKWISE], [constant FILL_COUNTER_CLOCKWISE], or [constant FILL_CLOCKWISE_AND_COUNTER_CLOCKWISE].
|
||||
|
||||
Reference in New Issue
Block a user