From 16fd42173cb1f1c69bbc2026efeaabf4b340b87f Mon Sep 17 00:00:00 2001 From: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Date: Sat, 25 Oct 2025 23:02:21 -0700 Subject: [PATCH 1/2] Do profiling on loop types --- .../projectile_updater/projectile_updater_2d.gd | 16 +++++++++++++--- .../projectile_template_advanced_2d.gd | 2 ++ .../projectile_template_custom_2d.gd | 2 ++ .../projectile_template_simple_2d.gd | 2 ++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/addons/godot_projectile_engine/core/projectile_template/base/projectile_updater/projectile_updater_2d.gd b/addons/godot_projectile_engine/core/projectile_template/base/projectile_updater/projectile_updater_2d.gd index 0466d01e..dc72f2b5 100644 --- a/addons/godot_projectile_engine/core/projectile_template/base/projectile_updater/projectile_updater_2d.gd +++ b/addons/godot_projectile_engine/core/projectile_template/base/projectile_updater/projectile_updater_2d.gd @@ -223,9 +223,19 @@ func draw_projectile_texture() -> void: projectile_texture = projectile_template_2d.texture projectile_texture_modulate = projectile_template_2d.texture_modulate projectile_texture_draw_offset = Vector2.ZERO - projectile_template_2d.texture.get_size() * 0.5 - for index : int in projectile_active_index: - draw_set_transform_matrix(projectile_instance_array[index].transform) - draw_texture(projectile_texture, projectile_texture_draw_offset, projectile_texture_modulate) + + var start = Time.get_ticks_usec() + if not projectile_template_2d.reverse_z_index: + for index in projectile_active_index: + draw_set_transform_matrix(projectile_instance_array[index].transform) + draw_texture(projectile_texture, projectile_texture_draw_offset, projectile_texture_modulate) + else: + for i in range(projectile_active_index.size() - 1, -1, -1): + draw_set_transform_matrix(projectile_instance_array[projectile_active_index[i]].transform) + draw_texture(projectile_texture, projectile_texture_draw_offset, projectile_texture_modulate) + var end = Time.get_ticks_usec() + var worker_time = (end-start)/1000000.0 + print("%s" % [worker_time]) #endregion diff --git a/addons/godot_projectile_engine/core/projectile_template/projectile_template_advanced_2d/projectile_template_advanced_2d.gd b/addons/godot_projectile_engine/core/projectile_template/projectile_template_advanced_2d/projectile_template_advanced_2d.gd index d0bc59dc..183fb984 100644 --- a/addons/godot_projectile_engine/core/projectile_template/projectile_template_advanced_2d/projectile_template_advanced_2d.gd +++ b/addons/godot_projectile_engine/core/projectile_template/projectile_template_advanced_2d/projectile_template_advanced_2d.gd @@ -25,6 +25,8 @@ class_name ProjectileTemplateAdvanced2D @export var texture_visible: bool = true ## Render layer for the texture (higher values render on top) @export var texture_z_index: int = 0 +## Render newer bullets underneath older bullets? +@export var reverse_z_index: bool = false ## Color modulation applied to the texture (RGBA) @export var texture_modulate: Color = Color(1, 1, 1, 1) diff --git a/addons/godot_projectile_engine/core/projectile_template/projectile_template_custom_2d/projectile_template_custom_2d.gd b/addons/godot_projectile_engine/core/projectile_template/projectile_template_custom_2d/projectile_template_custom_2d.gd index cba7a78f..eb863916 100644 --- a/addons/godot_projectile_engine/core/projectile_template/projectile_template_custom_2d/projectile_template_custom_2d.gd +++ b/addons/godot_projectile_engine/core/projectile_template/projectile_template_custom_2d/projectile_template_custom_2d.gd @@ -23,6 +23,8 @@ class_name ProjectileTemplateCustom2D @export var texture_visible : bool = true ## Render layer for the texture (higher values render on top) @export var texture_z_index : int = 0 +## Render newer bullets underneath older bullets? +@export var reverse_z_index: bool = false ## Color modulation applied to the texture (RGBA) @export var texture_modulate : Color = Color(1, 1, 1, 1) diff --git a/addons/godot_projectile_engine/core/projectile_template/projectile_template_simple_2d/projectile_template_simple_2d.gd b/addons/godot_projectile_engine/core/projectile_template/projectile_template_simple_2d/projectile_template_simple_2d.gd index 1afcb852..2146370a 100644 --- a/addons/godot_projectile_engine/core/projectile_template/projectile_template_simple_2d/projectile_template_simple_2d.gd +++ b/addons/godot_projectile_engine/core/projectile_template/projectile_template_simple_2d/projectile_template_simple_2d.gd @@ -22,6 +22,8 @@ class_name ProjectileTemplateSimple2D @export var texture_visible: bool = true ## Render layer for the texture (higher values render on top) @export var texture_z_index: int = 0 +## Render newer bullets underneath older bullets? +@export var reverse_z_index: bool = false ## Color modulation applied to the texture (RGBA) @export var texture_modulate: Color = Color(1, 1, 1, 1) From ce96040b018ef7b5b902eaee10ac25f40ab6869c Mon Sep 17 00:00:00 2001 From: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Date: Sat, 25 Oct 2025 23:04:25 -0700 Subject: [PATCH 2/2] Remove profiling --- .../base/projectile_updater/projectile_updater_2d.gd | 5 ----- 1 file changed, 5 deletions(-) diff --git a/addons/godot_projectile_engine/core/projectile_template/base/projectile_updater/projectile_updater_2d.gd b/addons/godot_projectile_engine/core/projectile_template/base/projectile_updater/projectile_updater_2d.gd index dc72f2b5..8cd0f8d6 100644 --- a/addons/godot_projectile_engine/core/projectile_template/base/projectile_updater/projectile_updater_2d.gd +++ b/addons/godot_projectile_engine/core/projectile_template/base/projectile_updater/projectile_updater_2d.gd @@ -223,8 +223,6 @@ func draw_projectile_texture() -> void: projectile_texture = projectile_template_2d.texture projectile_texture_modulate = projectile_template_2d.texture_modulate projectile_texture_draw_offset = Vector2.ZERO - projectile_template_2d.texture.get_size() * 0.5 - - var start = Time.get_ticks_usec() if not projectile_template_2d.reverse_z_index: for index in projectile_active_index: draw_set_transform_matrix(projectile_instance_array[index].transform) @@ -233,9 +231,6 @@ func draw_projectile_texture() -> void: for i in range(projectile_active_index.size() - 1, -1, -1): draw_set_transform_matrix(projectile_instance_array[projectile_active_index[i]].transform) draw_texture(projectile_texture, projectile_texture_draw_offset, projectile_texture_modulate) - var end = Time.get_ticks_usec() - var worker_time = (end-start)/1000000.0 - print("%s" % [worker_time]) #endregion