From 47a6543de48dca0d61b3ba9fe37845cbdd86bf3d Mon Sep 17 00:00:00 2001 From: jiepengtan Date: Mon, 16 Sep 2024 11:57:03 +0800 Subject: [PATCH] Add Js call c++ --- platform/web/godot_js_spx.cpp | 188 ++-- platform/web/godot_js_spx_util.cpp | 52 +- platform/web/js/engine/gdspx.js | 1247 ++++++++++++++++---------- platform/web/js/engine/gdspx.util.js | 147 ++- 4 files changed, 953 insertions(+), 681 deletions(-) diff --git a/platform/web/godot_js_spx.cpp b/platform/web/godot_js_spx.cpp index e2d4e87b1a41..40f06b45e404 100644 --- a/platform/web/godot_js_spx.cpp +++ b/platform/web/godot_js_spx.cpp @@ -55,12 +55,12 @@ extern "C" { EMSCRIPTEN_KEEPALIVE -void gdspx_audio_play_audio(GdString path) { - audioMgr->play_audio(path); +void gdspx_audio_play_audio(GdString* path) { + audioMgr->play_audio(*path); } EMSCRIPTEN_KEEPALIVE -void gdspx_audio_set_audio_volume(GdFloat volume) { - audioMgr->set_audio_volume(volume); +void gdspx_audio_set_audio_volume(GdFloat* volume) { + audioMgr->set_audio_volume(*volume); } EMSCRIPTEN_KEEPALIVE void gdspx_audio_get_audio_volume(GdFloat* ret_val) { @@ -71,12 +71,12 @@ void gdspx_audio_is_music_playing(GdBool* ret_val) { *ret_val = audioMgr->is_music_playing(); } EMSCRIPTEN_KEEPALIVE -void gdspx_audio_play_music(GdString path) { - audioMgr->play_music(path); +void gdspx_audio_play_music(GdString* path) { + audioMgr->play_music(*path); } EMSCRIPTEN_KEEPALIVE -void gdspx_audio_set_music_volume(GdFloat volume) { - audioMgr->set_music_volume(volume); +void gdspx_audio_set_music_volume(GdFloat* volume) { + audioMgr->set_music_volume(*volume); } EMSCRIPTEN_KEEPALIVE void gdspx_audio_get_music_volume(GdFloat* ret_val) { @@ -95,8 +95,8 @@ void gdspx_audio_get_music_timer(GdFloat* ret_val) { *ret_val = audioMgr->get_music_timer(); } EMSCRIPTEN_KEEPALIVE -void gdspx_audio_set_music_timer(GdFloat time) { - audioMgr->set_music_timer(time); +void gdspx_audio_set_music_timer(GdFloat* time) { + audioMgr->set_music_timer(*time); } EMSCRIPTEN_KEEPALIVE void gdspx_camera_get_camera_position(GdVec2* ret_val) { @@ -135,32 +135,32 @@ void gdspx_input_get_key_state(GdInt* key,GdInt* ret_val) { *ret_val = inputMgr->get_key_state(*key); } EMSCRIPTEN_KEEPALIVE -void gdspx_input_get_axis(GdString neg_action,GdString pos_action,GdFloat* ret_val) { - *ret_val = inputMgr->get_axis(neg_action, pos_action); +void gdspx_input_get_axis(GdString* neg_action,GdString* pos_action,GdFloat* ret_val) { + *ret_val = inputMgr->get_axis(*neg_action, *pos_action); } EMSCRIPTEN_KEEPALIVE -void gdspx_input_is_action_pressed(GdString action,GdBool* ret_val) { - *ret_val = inputMgr->is_action_pressed(action); +void gdspx_input_is_action_pressed(GdString* action,GdBool* ret_val) { + *ret_val = inputMgr->is_action_pressed(*action); } EMSCRIPTEN_KEEPALIVE -void gdspx_input_is_action_just_pressed(GdString action,GdBool* ret_val) { - *ret_val = inputMgr->is_action_just_pressed(action); +void gdspx_input_is_action_just_pressed(GdString* action,GdBool* ret_val) { + *ret_val = inputMgr->is_action_just_pressed(*action); } EMSCRIPTEN_KEEPALIVE -void gdspx_input_is_action_just_released(GdString action,GdBool* ret_val) { - *ret_val = inputMgr->is_action_just_released(action); +void gdspx_input_is_action_just_released(GdString* action,GdBool* ret_val) { + *ret_val = inputMgr->is_action_just_released(*action); } EMSCRIPTEN_KEEPALIVE void gdspx_physic_raycast(GdVec2* from,GdVec2* to,GdInt* collision_mask,GdObj* ret_val) { *ret_val = physicMgr->raycast(*from, *to, *collision_mask); } EMSCRIPTEN_KEEPALIVE -void gdspx_physic_check_collision(GdVec2* from,GdVec2* to,GdInt* collision_mask,GdBool collide_with_areas,GdBool collide_with_bodies,GdBool* ret_val) { - *ret_val = physicMgr->check_collision(*from, *to, *collision_mask, collide_with_areas, collide_with_bodies); +void gdspx_physic_check_collision(GdVec2* from,GdVec2* to,GdInt* collision_mask,GdBool* collide_with_areas,GdBool* collide_with_bodies,GdBool* ret_val) { + *ret_val = physicMgr->check_collision(*from, *to, *collision_mask, *collide_with_areas, *collide_with_bodies); } EMSCRIPTEN_KEEPALIVE -void gdspx_scene_change_scene_to_file(GdString path) { - sceneMgr->change_scene_to_file(path); +void gdspx_scene_change_scene_to_file(GdString* path) { + sceneMgr->change_scene_to_file(*path); } EMSCRIPTEN_KEEPALIVE void gdspx_scene_reload_current_scene(GdInt* ret_val) { @@ -175,40 +175,40 @@ void gdspx_sprite_set_dont_destroy_on_load(GdObj* obj) { spriteMgr->set_dont_destroy_on_load(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_process(GdObj* obj,GdBool is_on) { - spriteMgr->set_process(*obj, is_on); +void gdspx_sprite_set_process(GdObj* obj,GdBool* is_on) { + spriteMgr->set_process(*obj, *is_on); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_physic_process(GdObj* obj,GdBool is_on) { - spriteMgr->set_physic_process(*obj, is_on); +void gdspx_sprite_set_physic_process(GdObj* obj,GdBool* is_on) { + spriteMgr->set_physic_process(*obj, *is_on); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_child_position(GdObj* obj,GdString path,GdVec2* pos) { - spriteMgr->set_child_position(*obj, path, *pos); +void gdspx_sprite_set_child_position(GdObj* obj,GdString* path,GdVec2* pos) { + spriteMgr->set_child_position(*obj, *path, *pos); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_get_child_position(GdObj* obj,GdString path,GdVec2* ret_val) { - *ret_val = spriteMgr->get_child_position(*obj, path); +void gdspx_sprite_get_child_position(GdObj* obj,GdString* path,GdVec2* ret_val) { + *ret_val = spriteMgr->get_child_position(*obj, *path); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_child_rotation(GdObj* obj,GdString path,GdFloat rot) { - spriteMgr->set_child_rotation(*obj, path, rot); +void gdspx_sprite_set_child_rotation(GdObj* obj,GdString* path,GdFloat* rot) { + spriteMgr->set_child_rotation(*obj, *path, *rot); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_get_child_rotation(GdObj* obj,GdString path,GdFloat* ret_val) { - *ret_val = spriteMgr->get_child_rotation(*obj, path); +void gdspx_sprite_get_child_rotation(GdObj* obj,GdString* path,GdFloat* ret_val) { + *ret_val = spriteMgr->get_child_rotation(*obj, *path); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_child_scale(GdObj* obj,GdString path,GdVec2* scale) { - spriteMgr->set_child_scale(*obj, path, *scale); +void gdspx_sprite_set_child_scale(GdObj* obj,GdString* path,GdVec2* scale) { + spriteMgr->set_child_scale(*obj, *path, *scale); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_get_child_scale(GdObj* obj,GdString path,GdVec2* ret_val) { - *ret_val = spriteMgr->get_child_scale(*obj, path); +void gdspx_sprite_get_child_scale(GdObj* obj,GdString* path,GdVec2* ret_val) { + *ret_val = spriteMgr->get_child_scale(*obj, *path); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_create_sprite(GdString path,GdObj* ret_val) { - *ret_val = spriteMgr->create_sprite(path); +void gdspx_sprite_create_sprite(GdString* path,GdObj* ret_val) { + *ret_val = spriteMgr->create_sprite(*path); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_clone_sprite(GdObj* obj,GdObj* ret_val) { @@ -231,8 +231,8 @@ void gdspx_sprite_get_position(GdObj* obj,GdVec2* ret_val) { *ret_val = spriteMgr->get_position(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_rotation(GdObj* obj,GdFloat rot) { - spriteMgr->set_rotation(*obj, rot); +void gdspx_sprite_set_rotation(GdObj* obj,GdFloat* rot) { + spriteMgr->set_rotation(*obj, *rot); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_get_rotation(GdObj* obj,GdFloat* ret_val) { @@ -255,16 +255,16 @@ void gdspx_sprite_get_color(GdObj* obj,GdColor* ret_val) { *ret_val = spriteMgr->get_color(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_texture(GdObj* obj,GdString path) { - spriteMgr->set_texture(*obj, path); +void gdspx_sprite_set_texture(GdObj* obj,GdString* path) { + spriteMgr->set_texture(*obj, *path); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_get_texture(GdObj* obj,GdString* ret_val) { *ret_val = spriteMgr->get_texture(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_visible(GdObj* obj,GdBool visible) { - spriteMgr->set_visible(*obj, visible); +void gdspx_sprite_set_visible(GdObj* obj,GdBool* visible) { + spriteMgr->set_visible(*obj, *visible); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_get_visible(GdObj* obj,GdBool* ret_val) { @@ -279,12 +279,12 @@ void gdspx_sprite_set_z_index(GdObj* obj,GdInt* z) { spriteMgr->set_z_index(*obj, *z); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_play_anim(GdObj* obj,GdString p_name,GdFloat p_custom_scale,GdBool p_from_end) { - spriteMgr->play_anim(*obj, p_name, p_custom_scale, p_from_end); +void gdspx_sprite_play_anim(GdObj* obj,GdString* p_name,GdFloat* p_custom_scale,GdBool* p_from_end) { + spriteMgr->play_anim(*obj, *p_name, *p_custom_scale, *p_from_end); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_play_backwards_anim(GdObj* obj,GdString p_name) { - spriteMgr->play_backwards_anim(*obj, p_name); +void gdspx_sprite_play_backwards_anim(GdObj* obj,GdString* p_name) { + spriteMgr->play_backwards_anim(*obj, *p_name); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_pause_anim(GdObj* obj) { @@ -299,8 +299,8 @@ void gdspx_sprite_is_playing_anim(GdObj* obj,GdBool* ret_val) { *ret_val = spriteMgr->is_playing_anim(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_anim(GdObj* obj,GdString p_name) { - spriteMgr->set_anim(*obj, p_name); +void gdspx_sprite_set_anim(GdObj* obj,GdString* p_name) { + spriteMgr->set_anim(*obj, *p_name); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_get_anim(GdObj* obj,GdString* ret_val) { @@ -315,8 +315,8 @@ void gdspx_sprite_get_anim_frame(GdObj* obj,GdInt* ret_val) { *ret_val = spriteMgr->get_anim_frame(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_anim_speed_scale(GdObj* obj,GdFloat p_speed_scale) { - spriteMgr->set_anim_speed_scale(*obj, p_speed_scale); +void gdspx_sprite_set_anim_speed_scale(GdObj* obj,GdFloat* p_speed_scale) { + spriteMgr->set_anim_speed_scale(*obj, *p_speed_scale); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_get_anim_speed_scale(GdObj* obj,GdFloat* ret_val) { @@ -327,8 +327,8 @@ void gdspx_sprite_get_anim_playing_speed(GdObj* obj,GdFloat* ret_val) { *ret_val = spriteMgr->get_anim_playing_speed(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_anim_centered(GdObj* obj,GdBool p_center) { - spriteMgr->set_anim_centered(*obj, p_center); +void gdspx_sprite_set_anim_centered(GdObj* obj,GdBool* p_center) { + spriteMgr->set_anim_centered(*obj, *p_center); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_is_anim_centered(GdObj* obj,GdBool* ret_val) { @@ -343,16 +343,16 @@ void gdspx_sprite_get_anim_offset(GdObj* obj,GdVec2* ret_val) { *ret_val = spriteMgr->get_anim_offset(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_anim_flip_h(GdObj* obj,GdBool p_flip) { - spriteMgr->set_anim_flip_h(*obj, p_flip); +void gdspx_sprite_set_anim_flip_h(GdObj* obj,GdBool* p_flip) { + spriteMgr->set_anim_flip_h(*obj, *p_flip); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_is_anim_flipped_h(GdObj* obj,GdBool* ret_val) { *ret_val = spriteMgr->is_anim_flipped_h(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_anim_flip_v(GdObj* obj,GdBool p_flip) { - spriteMgr->set_anim_flip_v(*obj, p_flip); +void gdspx_sprite_set_anim_flip_v(GdObj* obj,GdBool* p_flip) { + spriteMgr->set_anim_flip_v(*obj, *p_flip); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_is_anim_flipped_v(GdObj* obj,GdBool* ret_val) { @@ -415,16 +415,16 @@ void gdspx_sprite_move_and_slide(GdObj* obj) { spriteMgr->move_and_slide(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_gravity(GdObj* obj,GdFloat gravity) { - spriteMgr->set_gravity(*obj, gravity); +void gdspx_sprite_set_gravity(GdObj* obj,GdFloat* gravity) { + spriteMgr->set_gravity(*obj, *gravity); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_get_gravity(GdObj* obj,GdFloat* ret_val) { *ret_val = spriteMgr->get_gravity(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_mass(GdObj* obj,GdFloat mass) { - spriteMgr->set_mass(*obj, mass); +void gdspx_sprite_set_mass(GdObj* obj,GdFloat* mass) { + spriteMgr->set_mass(*obj, *mass); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_get_mass(GdObj* obj,GdFloat* ret_val) { @@ -475,16 +475,16 @@ void gdspx_sprite_set_collider_rect(GdObj* obj,GdVec2* center,GdVec2* size) { spriteMgr->set_collider_rect(*obj, *center, *size); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_collider_circle(GdObj* obj,GdVec2* center,GdFloat radius) { - spriteMgr->set_collider_circle(*obj, *center, radius); +void gdspx_sprite_set_collider_circle(GdObj* obj,GdVec2* center,GdFloat* radius) { + spriteMgr->set_collider_circle(*obj, *center, *radius); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_set_collider_capsule(GdObj* obj,GdVec2* center,GdVec2* size) { spriteMgr->set_collider_capsule(*obj, *center, *size); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_collision_enabled(GdObj* obj,GdBool enabled) { - spriteMgr->set_collision_enabled(*obj, enabled); +void gdspx_sprite_set_collision_enabled(GdObj* obj,GdBool* enabled) { + spriteMgr->set_collision_enabled(*obj, *enabled); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_is_collision_enabled(GdObj* obj,GdBool* ret_val) { @@ -495,48 +495,48 @@ void gdspx_sprite_set_trigger_rect(GdObj* obj,GdVec2* center,GdVec2* size) { spriteMgr->set_trigger_rect(*obj, *center, *size); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_trigger_circle(GdObj* obj,GdVec2* center,GdFloat radius) { - spriteMgr->set_trigger_circle(*obj, *center, radius); +void gdspx_sprite_set_trigger_circle(GdObj* obj,GdVec2* center,GdFloat* radius) { + spriteMgr->set_trigger_circle(*obj, *center, *radius); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_set_trigger_capsule(GdObj* obj,GdVec2* center,GdVec2* size) { spriteMgr->set_trigger_capsule(*obj, *center, *size); } EMSCRIPTEN_KEEPALIVE -void gdspx_sprite_set_trigger_enabled(GdObj* obj,GdBool trigger) { - spriteMgr->set_trigger_enabled(*obj, trigger); +void gdspx_sprite_set_trigger_enabled(GdObj* obj,GdBool* trigger) { + spriteMgr->set_trigger_enabled(*obj, *trigger); } EMSCRIPTEN_KEEPALIVE void gdspx_sprite_is_trigger_enabled(GdObj* obj,GdBool* ret_val) { *ret_val = spriteMgr->is_trigger_enabled(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_create_node(GdString path,GdObj* ret_val) { - *ret_val = uiMgr->create_node(path); +void gdspx_ui_create_node(GdString* path,GdObj* ret_val) { + *ret_val = uiMgr->create_node(*path); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_create_button(GdString path,GdString text,GdObj* ret_val) { - *ret_val = uiMgr->create_button(path, text); +void gdspx_ui_create_button(GdString* path,GdString* text,GdObj* ret_val) { + *ret_val = uiMgr->create_button(*path, *text); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_create_label(GdString path,GdString text,GdObj* ret_val) { - *ret_val = uiMgr->create_label(path, text); +void gdspx_ui_create_label(GdString* path,GdString* text,GdObj* ret_val) { + *ret_val = uiMgr->create_label(*path, *text); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_create_image(GdString path,GdObj* ret_val) { - *ret_val = uiMgr->create_image(path); +void gdspx_ui_create_image(GdString* path,GdObj* ret_val) { + *ret_val = uiMgr->create_image(*path); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_create_toggle(GdString path,GdBool value,GdObj* ret_val) { - *ret_val = uiMgr->create_toggle(path, value); +void gdspx_ui_create_toggle(GdString* path,GdBool* value,GdObj* ret_val) { + *ret_val = uiMgr->create_toggle(*path, *value); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_create_slider(GdString path,GdFloat value,GdObj* ret_val) { - *ret_val = uiMgr->create_slider(path, value); +void gdspx_ui_create_slider(GdString* path,GdFloat* value,GdObj* ret_val) { + *ret_val = uiMgr->create_slider(*path, *value); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_create_input(GdString path,GdString text,GdObj* ret_val) { - *ret_val = uiMgr->create_input(path, text); +void gdspx_ui_create_input(GdString* path,GdString* text,GdObj* ret_val) { + *ret_val = uiMgr->create_input(*path, *text); } EMSCRIPTEN_KEEPALIVE void gdspx_ui_destroy_node(GdObj* obj,GdBool* ret_val) { @@ -547,16 +547,16 @@ void gdspx_ui_get_type(GdObj* obj,GdInt* ret_val) { *ret_val = uiMgr->get_type(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_set_text(GdObj* obj,GdString text) { - uiMgr->set_text(*obj, text); +void gdspx_ui_set_text(GdObj* obj,GdString* text) { + uiMgr->set_text(*obj, *text); } EMSCRIPTEN_KEEPALIVE void gdspx_ui_get_text(GdObj* obj,GdString* ret_val) { *ret_val = uiMgr->get_text(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_set_texture(GdObj* obj,GdString path) { - uiMgr->set_texture(*obj, path); +void gdspx_ui_set_texture(GdObj* obj,GdString* path) { + uiMgr->set_texture(*obj, *path); } EMSCRIPTEN_KEEPALIVE void gdspx_ui_get_texture(GdObj* obj,GdString* ret_val) { @@ -579,16 +579,16 @@ void gdspx_ui_get_font_size(GdObj* obj,GdInt* ret_val) { *ret_val = uiMgr->get_font_size(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_set_visible(GdObj* obj,GdBool visible) { - uiMgr->set_visible(*obj, visible); +void gdspx_ui_set_visible(GdObj* obj,GdBool* visible) { + uiMgr->set_visible(*obj, *visible); } EMSCRIPTEN_KEEPALIVE void gdspx_ui_get_visible(GdObj* obj,GdBool* ret_val) { *ret_val = uiMgr->get_visible(*obj); } EMSCRIPTEN_KEEPALIVE -void gdspx_ui_set_interactable(GdObj* obj,GdBool interactable) { - uiMgr->set_interactable(*obj, interactable); +void gdspx_ui_set_interactable(GdObj* obj,GdBool* interactable) { + uiMgr->set_interactable(*obj, *interactable); } EMSCRIPTEN_KEEPALIVE void gdspx_ui_get_interactable(GdObj* obj,GdBool* ret_val) { diff --git a/platform/web/godot_js_spx_util.cpp b/platform/web/godot_js_spx_util.cpp index 7b01d80399a1..e2e171499543 100644 --- a/platform/web/godot_js_spx_util.cpp +++ b/platform/web/godot_js_spx_util.cpp @@ -45,11 +45,6 @@ void gdspx_free_bool(GdBool* b) { } -EMSCRIPTEN_KEEPALIVE -void gdspx_print_bool(GdBool* value) { - print_line("bool: %s", *value ? "true" : "false"); -} - // float functions EMSCRIPTEN_KEEPALIVE GdFloat* gdspx_alloc_float() { @@ -68,11 +63,6 @@ void gdspx_free_float(GdFloat* f) { floatPool.release(f); } -EMSCRIPTEN_KEEPALIVE -void gdspx_print_float(GdFloat* value) { - print_line("float: %f", *value); -} - // int functions EMSCRIPTEN_KEEPALIVE GdInt* gdspx_alloc_int() { @@ -91,11 +81,6 @@ void gdspx_free_int(GdInt* i) { intPool.release(i); } -EMSCRIPTEN_KEEPALIVE -void gdspx_print_int(GdInt* value) { - print_line("int: %d", *value); -} - // object functions EMSCRIPTEN_KEEPALIVE GdObj* gdspx_alloc_obj() { @@ -114,11 +99,6 @@ void gdspx_free_obj(GdObj* obj) { objPool.release(obj); } -EMSCRIPTEN_KEEPALIVE -void gdspx_print_obj(GdObj* obj) { - print_line("object: %p", (void*)obj); -} - // vec2 functions EMSCRIPTEN_KEEPALIVE GdVec2* gdspx_alloc_vec2() { @@ -138,11 +118,6 @@ void gdspx_free_vec2(GdVec2* vec) { vec2Pool.release(vec); } -EMSCRIPTEN_KEEPALIVE -void gdspx_print_vec2(GdVec2* vec) { - print_line("vec2: %f, %f", vec->x, vec->y); -} - // vec3 functions EMSCRIPTEN_KEEPALIVE GdVec3* gdspx_alloc_vec3() { @@ -163,11 +138,6 @@ void gdspx_free_vec3(GdVec3* vec) { vec3Pool.release(vec); } -EMSCRIPTEN_KEEPALIVE -void gdspx_print_vec3(GdVec3* vec) { - print_line("vec3: %f, %f, %f", vec->x, vec->y, vec->z); -} - // vec4 functions EMSCRIPTEN_KEEPALIVE GdVec4* gdspx_alloc_vec4() { @@ -189,11 +159,6 @@ void gdspx_free_vec4(GdVec4* vec) { vec4Pool.release(vec); } -EMSCRIPTEN_KEEPALIVE -void gdspx_print_vec4(GdVec4* vec) { - print_line("vec4: %f, %f, %f, %f", vec->x, vec->y, vec->z, vec->w); -} - // color functions EMSCRIPTEN_KEEPALIVE GdColor* gdspx_alloc_color() { @@ -215,11 +180,6 @@ void gdspx_free_color(GdColor* color) { colorPool.release(color); } -EMSCRIPTEN_KEEPALIVE -void gdspx_print_color(GdColor* color) { - print_line("color: %f, %f, %f, %f", color->r, color->g, color->b, color->a); -} - // rect2 functions EMSCRIPTEN_KEEPALIVE GdRect2* gdspx_alloc_rect2() { @@ -241,11 +201,6 @@ void gdspx_free_rect2(GdRect2* rect) { rect2Pool.release(rect); } -EMSCRIPTEN_KEEPALIVE -void gdspx_print_rect2(GdRect2* rect) { - print_line("rect2: position(%f, %f), size(%f, %f)", rect->position.x, rect->position.y, rect->size.width, rect->size.height); -} - // string functions EMSCRIPTEN_KEEPALIVE GdString* gdspx_alloc_string() { @@ -255,7 +210,7 @@ GdString* gdspx_alloc_string() { EMSCRIPTEN_KEEPALIVE GdString* gdspx_new_string(const char* str) { GdString* ptr = gdspx_alloc_string(); - ptr->c_str = strdup(str); + *ptr = str; return ptr; } @@ -263,9 +218,4 @@ void gdspx_free_string(GdString* str) { stringPool.release(str); } -EMSCRIPTEN_KEEPALIVE -void gdspx_print_string(GdString* str) { - print_line("string: %s", str->c_str()); -} - } diff --git a/platform/web/js/engine/gdspx.js b/platform/web/js/engine/gdspx.js index 0c3bed2387ff..63bc49d72dd0 100644 --- a/platform/web/js/engine/gdspx.js +++ b/platform/web/js/engine/gdspx.js @@ -12,1095 +12,1368 @@ function test_go_call_cpp(val) { function gdspx_audio_play_audio(path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_play_audio']; - _arg0 = ToGdString(path); + _arg0 = ToGdString(path); + _gdFuncPtr(_arg0); + FreeGdString(_arg0); - _gdFuncPtr(_arg0); } function gdspx_audio_set_audio_volume(volume) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_set_audio_volume']; - _arg0 = ToGdFloat(volume); + _arg0 = ToGdFloat(volume); + _gdFuncPtr(_arg0); + FreeGdFloat(_arg0); - _gdFuncPtr(_arg0); } function gdspx_audio_get_audio_volume() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_get_audio_volume']; _retValue = AllocGdFloat(); - - _gdFuncPtr(_retValue); - return ToJsFloat32(_retValue); + _gdFuncPtr(_retValue); + _finalRetValue = ToJsFloat32(_retValue); + Freefloat32(_retValue); + return _finalRetValue } function gdspx_audio_is_music_playing() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_is_music_playing']; _retValue = AllocGdBool(); - - _gdFuncPtr(_retValue); - return ToJsBool(_retValue); + _gdFuncPtr(_retValue); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_audio_play_music(path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_play_music']; - _arg0 = ToGdString(path); + _arg0 = ToGdString(path); + _gdFuncPtr(_arg0); + FreeGdString(_arg0); - _gdFuncPtr(_arg0); } function gdspx_audio_set_music_volume(volume) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_set_music_volume']; - _arg0 = ToGdFloat(volume); + _arg0 = ToGdFloat(volume); + _gdFuncPtr(_arg0); + FreeGdFloat(_arg0); - _gdFuncPtr(_arg0); } function gdspx_audio_get_music_volume() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_get_music_volume']; _retValue = AllocGdFloat(); - - _gdFuncPtr(_retValue); - return ToJsFloat32(_retValue); + _gdFuncPtr(_retValue); + _finalRetValue = ToJsFloat32(_retValue); + Freefloat32(_retValue); + return _finalRetValue } function gdspx_audio_pause_music() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_pause_music']; + _gdFuncPtr(); - _gdFuncPtr(); } function gdspx_audio_resume_music() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_resume_music']; + _gdFuncPtr(); - _gdFuncPtr(); } function gdspx_audio_get_music_timer() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_get_music_timer']; _retValue = AllocGdFloat(); - - _gdFuncPtr(_retValue); - return ToJsFloat32(_retValue); + _gdFuncPtr(_retValue); + _finalRetValue = ToJsFloat32(_retValue); + Freefloat32(_retValue); + return _finalRetValue } function gdspx_audio_set_music_timer(time) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_audio_set_music_timer']; - _arg0 = ToGdFloat(time); + _arg0 = ToGdFloat(time); + _gdFuncPtr(_arg0); + FreeGdFloat(_arg0); - _gdFuncPtr(_arg0); } function gdspx_camera_get_camera_position() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_camera_get_camera_position']; _retValue = AllocGdVec2(); - - _gdFuncPtr(_retValue); - return ToJsVec2(_retValue); + _gdFuncPtr(_retValue); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_camera_set_camera_position(position) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_camera_set_camera_position']; - _arg0 = ToGdVec2(position); + _arg0 = ToGdVec2(position); + _gdFuncPtr(_arg0); + FreeGdVec2(_arg0); - _gdFuncPtr(_arg0); } function gdspx_camera_get_camera_zoom() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_camera_get_camera_zoom']; _retValue = AllocGdVec2(); - - _gdFuncPtr(_retValue); - return ToJsVec2(_retValue); + _gdFuncPtr(_retValue); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_camera_set_camera_zoom(size) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_camera_set_camera_zoom']; - _arg0 = ToGdVec2(size); + _arg0 = ToGdVec2(size); + _gdFuncPtr(_arg0); + FreeGdVec2(_arg0); - _gdFuncPtr(_arg0); } function gdspx_camera_get_viewport_rect() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_camera_get_viewport_rect']; _retValue = AllocGdRect2(); - - _gdFuncPtr(_retValue); - return ToJsRect2(_retValue); + _gdFuncPtr(_retValue); + _finalRetValue = ToJsRect2(_retValue); + FreeRect2(_retValue); + return _finalRetValue } function gdspx_input_get_mouse_pos() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_input_get_mouse_pos']; _retValue = AllocGdVec2(); - - _gdFuncPtr(_retValue); - return ToJsVec2(_retValue); + _gdFuncPtr(_retValue); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_input_get_key(key) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_input_get_key']; _retValue = AllocGdBool(); - _arg0 = ToGdInt(key); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdInt(key); + _gdFuncPtr(_arg0, _retValue); + FreeGdInt(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_input_get_mouse_state(mouse_id) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_input_get_mouse_state']; _retValue = AllocGdBool(); - _arg0 = ToGdInt(mouse_id); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdInt(mouse_id); + _gdFuncPtr(_arg0, _retValue); + FreeGdInt(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_input_get_key_state(key) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_input_get_key_state']; _retValue = AllocGdInt(); - _arg0 = ToGdInt(key); - - _gdFuncPtr(_arg0, _retValue); - return ToJsInt64(_retValue); + _arg0 = ToGdInt(key); + _gdFuncPtr(_arg0, _retValue); + FreeGdInt(_arg0); + _finalRetValue = ToJsInt64(_retValue); + Freeint64(_retValue); + return _finalRetValue } function gdspx_input_get_axis(neg_action,pos_action) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_input_get_axis']; _retValue = AllocGdFloat(); - _arg0 = ToGdString(neg_action); - _arg1 = ToGdString(pos_action); - - _gdFuncPtr(_arg0, _arg1, _retValue); - return ToJsFloat32(_retValue); + _arg0 = ToGdString(neg_action); + _arg1 = ToGdString(pos_action); + _gdFuncPtr(_arg0, _arg1, _retValue); + FreeGdString(_arg0); + FreeGdString(_arg1); + _finalRetValue = ToJsFloat32(_retValue); + Freefloat32(_retValue); + return _finalRetValue } function gdspx_input_is_action_pressed(action) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_input_is_action_pressed']; _retValue = AllocGdBool(); - _arg0 = ToGdString(action); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdString(action); + _gdFuncPtr(_arg0, _retValue); + FreeGdString(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_input_is_action_just_pressed(action) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_input_is_action_just_pressed']; _retValue = AllocGdBool(); - _arg0 = ToGdString(action); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdString(action); + _gdFuncPtr(_arg0, _retValue); + FreeGdString(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_input_is_action_just_released(action) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_input_is_action_just_released']; _retValue = AllocGdBool(); - _arg0 = ToGdString(action); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdString(action); + _gdFuncPtr(_arg0, _retValue); + FreeGdString(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_physic_raycast(from,to,collision_mask) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_physic_raycast']; _retValue = AllocGdObj(); - _arg0 = ToGdVec2(from); - _arg1 = ToGdVec2(to); - _arg2 = ToGdInt(collision_mask); - - _gdFuncPtr(_arg0, _arg1, _arg2, _retValue); - return ToJsObject(_retValue); + _arg0 = ToGdVec2(from); + _arg1 = ToGdVec2(to); + _arg2 = ToGdInt(collision_mask); + _gdFuncPtr(_arg0, _arg1, _arg2, _retValue); + FreeGdVec2(_arg0); + FreeGdVec2(_arg1); + FreeGdInt(_arg2); + _finalRetValue = ToJsObject(_retValue); + FreeObject(_retValue); + return _finalRetValue } function gdspx_physic_check_collision(from,to,collision_mask,collide_with_areas,collide_with_bodies) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_physic_check_collision']; _retValue = AllocGdBool(); - _arg0 = ToGdVec2(from); - _arg1 = ToGdVec2(to); - _arg2 = ToGdInt(collision_mask); - _arg3 = ToGdBool(collide_with_areas); - _arg4 = ToGdBool(collide_with_bodies); - - _gdFuncPtr(_arg0, _arg1, _arg2, _arg3, _arg4, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdVec2(from); + _arg1 = ToGdVec2(to); + _arg2 = ToGdInt(collision_mask); + _arg3 = ToGdBool(collide_with_areas); + _arg4 = ToGdBool(collide_with_bodies); + _gdFuncPtr(_arg0, _arg1, _arg2, _arg3, _arg4, _retValue); + FreeGdVec2(_arg0); + FreeGdVec2(_arg1); + FreeGdInt(_arg2); + FreeGdBool(_arg3); + FreeGdBool(_arg4); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_scene_change_scene_to_file(path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_scene_change_scene_to_file']; - _arg0 = ToGdString(path); + _arg0 = ToGdString(path); + _gdFuncPtr(_arg0); + FreeGdString(_arg0); - _gdFuncPtr(_arg0); } function gdspx_scene_reload_current_scene() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_scene_reload_current_scene']; _retValue = AllocGdInt(); - - _gdFuncPtr(_retValue); - return ToJsInt64(_retValue); + _gdFuncPtr(_retValue); + _finalRetValue = ToJsInt64(_retValue); + Freeint64(_retValue); + return _finalRetValue } function gdspx_scene_unload_current_scene() { _gdFuncPtr = GodotEngine.rtenv['_gdspx_scene_unload_current_scene']; + _gdFuncPtr(); - _gdFuncPtr(); } function gdspx_sprite_set_dont_destroy_on_load(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_dont_destroy_on_load']; - _arg0 = ToGdObj(obj); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0); + FreeGdObj(_arg0); - _gdFuncPtr(_arg0); } function gdspx_sprite_set_process(obj,is_on) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_process']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdBool(is_on); + _arg0 = ToGdObj(obj); + _arg1 = ToGdBool(is_on); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdBool(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_set_physic_process(obj,is_on) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_physic_process']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdBool(is_on); + _arg0 = ToGdObj(obj); + _arg1 = ToGdBool(is_on); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdBool(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_set_child_position(obj,path,pos) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_child_position']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(path); - _arg2 = ToGdVec2(pos); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(path); + _arg2 = ToGdVec2(pos); + _gdFuncPtr(_arg0, _arg1, _arg2); + FreeGdObj(_arg0); + FreeGdString(_arg1); + FreeGdVec2(_arg2); - _gdFuncPtr(_arg0, _arg1, _arg2); } function gdspx_sprite_get_child_position(obj,path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_child_position']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(path); - - _gdFuncPtr(_arg0, _arg1, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(path); + _gdFuncPtr(_arg0, _arg1, _retValue); + FreeGdObj(_arg0); + FreeGdString(_arg1); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_set_child_rotation(obj,path,rot) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_child_rotation']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(path); - _arg2 = ToGdFloat(rot); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(path); + _arg2 = ToGdFloat(rot); + _gdFuncPtr(_arg0, _arg1, _arg2); + FreeGdObj(_arg0); + FreeGdString(_arg1); + FreeGdFloat(_arg2); - _gdFuncPtr(_arg0, _arg1, _arg2); } function gdspx_sprite_get_child_rotation(obj,path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_child_rotation']; _retValue = AllocGdFloat(); - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(path); - - _gdFuncPtr(_arg0, _arg1, _retValue); - return ToJsFloat32(_retValue); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(path); + _gdFuncPtr(_arg0, _arg1, _retValue); + FreeGdObj(_arg0); + FreeGdString(_arg1); + _finalRetValue = ToJsFloat32(_retValue); + Freefloat32(_retValue); + return _finalRetValue } function gdspx_sprite_set_child_scale(obj,path,scale) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_child_scale']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(path); - _arg2 = ToGdVec2(scale); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(path); + _arg2 = ToGdVec2(scale); + _gdFuncPtr(_arg0, _arg1, _arg2); + FreeGdObj(_arg0); + FreeGdString(_arg1); + FreeGdVec2(_arg2); - _gdFuncPtr(_arg0, _arg1, _arg2); } function gdspx_sprite_get_child_scale(obj,path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_child_scale']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(path); - - _gdFuncPtr(_arg0, _arg1, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(path); + _gdFuncPtr(_arg0, _arg1, _retValue); + FreeGdObj(_arg0); + FreeGdString(_arg1); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_create_sprite(path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_create_sprite']; _retValue = AllocGdObj(); - _arg0 = ToGdString(path); - - _gdFuncPtr(_arg0, _retValue); - return ToJsObject(_retValue); + _arg0 = ToGdString(path); + _gdFuncPtr(_arg0, _retValue); + FreeGdString(_arg0); + _finalRetValue = ToJsObject(_retValue); + FreeObject(_retValue); + return _finalRetValue } function gdspx_sprite_clone_sprite(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_clone_sprite']; _retValue = AllocGdObj(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsObject(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsObject(_retValue); + FreeObject(_retValue); + return _finalRetValue } function gdspx_sprite_destroy_sprite(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_destroy_sprite']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_is_sprite_alive(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_sprite_alive']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_set_position(obj,pos) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_position']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(pos); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(pos); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_position(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_position']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_set_rotation(obj,rot) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_rotation']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdFloat(rot); + _arg0 = ToGdObj(obj); + _arg1 = ToGdFloat(rot); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdFloat(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_rotation(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_rotation']; _retValue = AllocGdFloat(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsFloat32(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsFloat32(_retValue); + Freefloat32(_retValue); + return _finalRetValue } function gdspx_sprite_set_scale(obj,scale) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_scale']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(scale); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(scale); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_scale(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_scale']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_set_color(obj,color) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_color']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdColor(color); + _arg0 = ToGdObj(obj); + _arg1 = ToGdColor(color); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdColor(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_color(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_color']; _retValue = AllocGdColor(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsColor(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsColor(_retValue); + FreeColor(_retValue); + return _finalRetValue } function gdspx_sprite_set_texture(obj,path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_texture']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(path); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(path); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdString(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_texture(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_texture']; _retValue = AllocGdString(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsString(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsString(_retValue); + Freestring(_retValue); + return _finalRetValue } function gdspx_sprite_set_visible(obj,visible) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_visible']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdBool(visible); + _arg0 = ToGdObj(obj); + _arg1 = ToGdBool(visible); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdBool(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_visible(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_visible']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_get_z_index(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_z_index']; _retValue = AllocGdInt(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsInt64(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsInt64(_retValue); + Freeint64(_retValue); + return _finalRetValue } function gdspx_sprite_set_z_index(obj,z) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_z_index']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdInt(z); + _arg0 = ToGdObj(obj); + _arg1 = ToGdInt(z); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdInt(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_play_anim(obj,p_name,p_custom_scale,p_from_end) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_play_anim']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(p_name); - _arg2 = ToGdFloat(p_custom_scale); - _arg3 = ToGdBool(p_from_end); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(p_name); + _arg2 = ToGdFloat(p_custom_scale); + _arg3 = ToGdBool(p_from_end); + _gdFuncPtr(_arg0, _arg1, _arg2, _arg3); + FreeGdObj(_arg0); + FreeGdString(_arg1); + FreeGdFloat(_arg2); + FreeGdBool(_arg3); - _gdFuncPtr(_arg0, _arg1, _arg2, _arg3); } function gdspx_sprite_play_backwards_anim(obj,p_name) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_play_backwards_anim']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(p_name); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(p_name); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdString(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_pause_anim(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_pause_anim']; - _arg0 = ToGdObj(obj); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0); + FreeGdObj(_arg0); - _gdFuncPtr(_arg0); } function gdspx_sprite_stop_anim(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_stop_anim']; - _arg0 = ToGdObj(obj); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0); + FreeGdObj(_arg0); - _gdFuncPtr(_arg0); } function gdspx_sprite_is_playing_anim(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_playing_anim']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_set_anim(obj,p_name) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_anim']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(p_name); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(p_name); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdString(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_anim(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_anim']; _retValue = AllocGdString(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsString(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsString(_retValue); + Freestring(_retValue); + return _finalRetValue } function gdspx_sprite_set_anim_frame(obj,p_frame) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_anim_frame']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdInt(p_frame); + _arg0 = ToGdObj(obj); + _arg1 = ToGdInt(p_frame); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdInt(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_anim_frame(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_anim_frame']; _retValue = AllocGdInt(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsInt64(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsInt64(_retValue); + Freeint64(_retValue); + return _finalRetValue } function gdspx_sprite_set_anim_speed_scale(obj,p_speed_scale) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_anim_speed_scale']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdFloat(p_speed_scale); + _arg0 = ToGdObj(obj); + _arg1 = ToGdFloat(p_speed_scale); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdFloat(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_anim_speed_scale(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_anim_speed_scale']; _retValue = AllocGdFloat(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsFloat32(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsFloat32(_retValue); + Freefloat32(_retValue); + return _finalRetValue } function gdspx_sprite_get_anim_playing_speed(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_anim_playing_speed']; _retValue = AllocGdFloat(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsFloat32(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsFloat32(_retValue); + Freefloat32(_retValue); + return _finalRetValue } function gdspx_sprite_set_anim_centered(obj,p_center) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_anim_centered']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdBool(p_center); + _arg0 = ToGdObj(obj); + _arg1 = ToGdBool(p_center); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdBool(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_is_anim_centered(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_anim_centered']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_set_anim_offset(obj,p_offset) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_anim_offset']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(p_offset); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(p_offset); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_anim_offset(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_anim_offset']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_set_anim_flip_h(obj,p_flip) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_anim_flip_h']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdBool(p_flip); + _arg0 = ToGdObj(obj); + _arg1 = ToGdBool(p_flip); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdBool(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_is_anim_flipped_h(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_anim_flipped_h']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_set_anim_flip_v(obj,p_flip) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_anim_flip_v']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdBool(p_flip); + _arg0 = ToGdObj(obj); + _arg1 = ToGdBool(p_flip); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdBool(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_is_anim_flipped_v(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_anim_flipped_v']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_set_velocity(obj,velocity) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_velocity']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(velocity); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(velocity); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_velocity(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_velocity']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_is_on_floor(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_on_floor']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_is_on_floor_only(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_on_floor_only']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_is_on_wall(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_on_wall']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_is_on_wall_only(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_on_wall_only']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_is_on_ceiling(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_on_ceiling']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_is_on_ceiling_only(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_on_ceiling_only']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_get_last_motion(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_last_motion']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_get_position_delta(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_position_delta']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_get_floor_normal(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_floor_normal']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_get_wall_normal(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_wall_normal']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_get_real_velocity(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_real_velocity']; _retValue = AllocGdVec2(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsVec2(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsVec2(_retValue); + FreeVec2(_retValue); + return _finalRetValue } function gdspx_sprite_move_and_slide(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_move_and_slide']; - _arg0 = ToGdObj(obj); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0); + FreeGdObj(_arg0); - _gdFuncPtr(_arg0); } function gdspx_sprite_set_gravity(obj,gravity) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_gravity']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdFloat(gravity); + _arg0 = ToGdObj(obj); + _arg1 = ToGdFloat(gravity); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdFloat(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_gravity(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_gravity']; _retValue = AllocGdFloat(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsFloat32(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsFloat32(_retValue); + Freefloat32(_retValue); + return _finalRetValue } function gdspx_sprite_set_mass(obj,mass) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_mass']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdFloat(mass); + _arg0 = ToGdObj(obj); + _arg1 = ToGdFloat(mass); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdFloat(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_mass(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_mass']; _retValue = AllocGdFloat(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsFloat32(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsFloat32(_retValue); + Freefloat32(_retValue); + return _finalRetValue } function gdspx_sprite_add_force(obj,force) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_add_force']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(force); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(force); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_add_impulse(obj,impulse) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_add_impulse']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(impulse); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(impulse); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_set_collision_layer(obj,layer) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_collision_layer']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdInt(layer); + _arg0 = ToGdObj(obj); + _arg1 = ToGdInt(layer); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdInt(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_collision_layer(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_collision_layer']; _retValue = AllocGdInt(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsInt64(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsInt64(_retValue); + Freeint64(_retValue); + return _finalRetValue } function gdspx_sprite_set_collision_mask(obj,mask) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_collision_mask']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdInt(mask); + _arg0 = ToGdObj(obj); + _arg1 = ToGdInt(mask); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdInt(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_collision_mask(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_collision_mask']; _retValue = AllocGdInt(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsInt64(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsInt64(_retValue); + Freeint64(_retValue); + return _finalRetValue } function gdspx_sprite_set_trigger_layer(obj,layer) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_trigger_layer']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdInt(layer); + _arg0 = ToGdObj(obj); + _arg1 = ToGdInt(layer); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdInt(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_trigger_layer(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_trigger_layer']; _retValue = AllocGdInt(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsInt64(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsInt64(_retValue); + Freeint64(_retValue); + return _finalRetValue } function gdspx_sprite_set_trigger_mask(obj,mask) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_trigger_mask']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdInt(mask); + _arg0 = ToGdObj(obj); + _arg1 = ToGdInt(mask); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdInt(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_get_trigger_mask(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_get_trigger_mask']; _retValue = AllocGdInt(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsInt64(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsInt64(_retValue); + Freeint64(_retValue); + return _finalRetValue } function gdspx_sprite_set_collider_rect(obj,center,size) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_collider_rect']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(center); - _arg2 = ToGdVec2(size); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(center); + _arg2 = ToGdVec2(size); + _gdFuncPtr(_arg0, _arg1, _arg2); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); + FreeGdVec2(_arg2); - _gdFuncPtr(_arg0, _arg1, _arg2); } function gdspx_sprite_set_collider_circle(obj,center,radius) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_collider_circle']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(center); - _arg2 = ToGdFloat(radius); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(center); + _arg2 = ToGdFloat(radius); + _gdFuncPtr(_arg0, _arg1, _arg2); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); + FreeGdFloat(_arg2); - _gdFuncPtr(_arg0, _arg1, _arg2); } function gdspx_sprite_set_collider_capsule(obj,center,size) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_collider_capsule']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(center); - _arg2 = ToGdVec2(size); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(center); + _arg2 = ToGdVec2(size); + _gdFuncPtr(_arg0, _arg1, _arg2); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); + FreeGdVec2(_arg2); - _gdFuncPtr(_arg0, _arg1, _arg2); } function gdspx_sprite_set_collision_enabled(obj,enabled) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_collision_enabled']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdBool(enabled); + _arg0 = ToGdObj(obj); + _arg1 = ToGdBool(enabled); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdBool(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_is_collision_enabled(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_collision_enabled']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_sprite_set_trigger_rect(obj,center,size) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_trigger_rect']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(center); - _arg2 = ToGdVec2(size); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(center); + _arg2 = ToGdVec2(size); + _gdFuncPtr(_arg0, _arg1, _arg2); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); + FreeGdVec2(_arg2); - _gdFuncPtr(_arg0, _arg1, _arg2); } function gdspx_sprite_set_trigger_circle(obj,center,radius) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_trigger_circle']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(center); - _arg2 = ToGdFloat(radius); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(center); + _arg2 = ToGdFloat(radius); + _gdFuncPtr(_arg0, _arg1, _arg2); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); + FreeGdFloat(_arg2); - _gdFuncPtr(_arg0, _arg1, _arg2); } function gdspx_sprite_set_trigger_capsule(obj,center,size) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_trigger_capsule']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdVec2(center); - _arg2 = ToGdVec2(size); + _arg0 = ToGdObj(obj); + _arg1 = ToGdVec2(center); + _arg2 = ToGdVec2(size); + _gdFuncPtr(_arg0, _arg1, _arg2); + FreeGdObj(_arg0); + FreeGdVec2(_arg1); + FreeGdVec2(_arg2); - _gdFuncPtr(_arg0, _arg1, _arg2); } function gdspx_sprite_set_trigger_enabled(obj,trigger) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_set_trigger_enabled']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdBool(trigger); + _arg0 = ToGdObj(obj); + _arg1 = ToGdBool(trigger); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdBool(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_sprite_is_trigger_enabled(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_sprite_is_trigger_enabled']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_ui_create_node(path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_create_node']; _retValue = AllocGdObj(); - _arg0 = ToGdString(path); - - _gdFuncPtr(_arg0, _retValue); - return ToJsObject(_retValue); + _arg0 = ToGdString(path); + _gdFuncPtr(_arg0, _retValue); + FreeGdString(_arg0); + _finalRetValue = ToJsObject(_retValue); + FreeObject(_retValue); + return _finalRetValue } function gdspx_ui_create_button(path,text) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_create_button']; _retValue = AllocGdObj(); - _arg0 = ToGdString(path); - _arg1 = ToGdString(text); - - _gdFuncPtr(_arg0, _arg1, _retValue); - return ToJsObject(_retValue); + _arg0 = ToGdString(path); + _arg1 = ToGdString(text); + _gdFuncPtr(_arg0, _arg1, _retValue); + FreeGdString(_arg0); + FreeGdString(_arg1); + _finalRetValue = ToJsObject(_retValue); + FreeObject(_retValue); + return _finalRetValue } function gdspx_ui_create_label(path,text) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_create_label']; _retValue = AllocGdObj(); - _arg0 = ToGdString(path); - _arg1 = ToGdString(text); - - _gdFuncPtr(_arg0, _arg1, _retValue); - return ToJsObject(_retValue); + _arg0 = ToGdString(path); + _arg1 = ToGdString(text); + _gdFuncPtr(_arg0, _arg1, _retValue); + FreeGdString(_arg0); + FreeGdString(_arg1); + _finalRetValue = ToJsObject(_retValue); + FreeObject(_retValue); + return _finalRetValue } function gdspx_ui_create_image(path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_create_image']; _retValue = AllocGdObj(); - _arg0 = ToGdString(path); - - _gdFuncPtr(_arg0, _retValue); - return ToJsObject(_retValue); + _arg0 = ToGdString(path); + _gdFuncPtr(_arg0, _retValue); + FreeGdString(_arg0); + _finalRetValue = ToJsObject(_retValue); + FreeObject(_retValue); + return _finalRetValue } function gdspx_ui_create_toggle(path,value) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_create_toggle']; _retValue = AllocGdObj(); - _arg0 = ToGdString(path); - _arg1 = ToGdBool(value); - - _gdFuncPtr(_arg0, _arg1, _retValue); - return ToJsObject(_retValue); + _arg0 = ToGdString(path); + _arg1 = ToGdBool(value); + _gdFuncPtr(_arg0, _arg1, _retValue); + FreeGdString(_arg0); + FreeGdBool(_arg1); + _finalRetValue = ToJsObject(_retValue); + FreeObject(_retValue); + return _finalRetValue } function gdspx_ui_create_slider(path,value) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_create_slider']; _retValue = AllocGdObj(); - _arg0 = ToGdString(path); - _arg1 = ToGdFloat(value); - - _gdFuncPtr(_arg0, _arg1, _retValue); - return ToJsObject(_retValue); + _arg0 = ToGdString(path); + _arg1 = ToGdFloat(value); + _gdFuncPtr(_arg0, _arg1, _retValue); + FreeGdString(_arg0); + FreeGdFloat(_arg1); + _finalRetValue = ToJsObject(_retValue); + FreeObject(_retValue); + return _finalRetValue } function gdspx_ui_create_input(path,text) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_create_input']; _retValue = AllocGdObj(); - _arg0 = ToGdString(path); - _arg1 = ToGdString(text); - - _gdFuncPtr(_arg0, _arg1, _retValue); - return ToJsObject(_retValue); + _arg0 = ToGdString(path); + _arg1 = ToGdString(text); + _gdFuncPtr(_arg0, _arg1, _retValue); + FreeGdString(_arg0); + FreeGdString(_arg1); + _finalRetValue = ToJsObject(_retValue); + FreeObject(_retValue); + return _finalRetValue } function gdspx_ui_destroy_node(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_destroy_node']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_ui_get_type(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_get_type']; _retValue = AllocGdInt(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsInt64(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsInt64(_retValue); + Freeint64(_retValue); + return _finalRetValue } function gdspx_ui_set_text(obj,text) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_set_text']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(text); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(text); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdString(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_ui_get_text(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_get_text']; _retValue = AllocGdString(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsString(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsString(_retValue); + Freestring(_retValue); + return _finalRetValue } function gdspx_ui_set_texture(obj,path) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_set_texture']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdString(path); + _arg0 = ToGdObj(obj); + _arg1 = ToGdString(path); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdString(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_ui_get_texture(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_get_texture']; _retValue = AllocGdString(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsString(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsString(_retValue); + Freestring(_retValue); + return _finalRetValue } function gdspx_ui_set_color(obj,color) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_set_color']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdColor(color); + _arg0 = ToGdObj(obj); + _arg1 = ToGdColor(color); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdColor(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_ui_get_color(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_get_color']; _retValue = AllocGdColor(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsColor(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsColor(_retValue); + FreeColor(_retValue); + return _finalRetValue } function gdspx_ui_set_font_size(obj,size) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_set_font_size']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdInt(size); + _arg0 = ToGdObj(obj); + _arg1 = ToGdInt(size); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdInt(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_ui_get_font_size(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_get_font_size']; _retValue = AllocGdInt(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsInt64(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsInt64(_retValue); + Freeint64(_retValue); + return _finalRetValue } function gdspx_ui_set_visible(obj,visible) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_set_visible']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdBool(visible); + _arg0 = ToGdObj(obj); + _arg1 = ToGdBool(visible); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdBool(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_ui_get_visible(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_get_visible']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_ui_set_interactable(obj,interactable) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_set_interactable']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdBool(interactable); + _arg0 = ToGdObj(obj); + _arg1 = ToGdBool(interactable); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdBool(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_ui_get_interactable(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_get_interactable']; _retValue = AllocGdBool(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsBool(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsBool(_retValue); + Freebool(_retValue); + return _finalRetValue } function gdspx_ui_set_rect(obj,rect) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_set_rect']; - _arg0 = ToGdObj(obj); - _arg1 = ToGdRect2(rect); + _arg0 = ToGdObj(obj); + _arg1 = ToGdRect2(rect); + _gdFuncPtr(_arg0, _arg1); + FreeGdObj(_arg0); + FreeGdRect2(_arg1); - _gdFuncPtr(_arg0, _arg1); } function gdspx_ui_get_rect(obj) { _gdFuncPtr = GodotEngine.rtenv['_gdspx_ui_get_rect']; _retValue = AllocGdRect2(); - _arg0 = ToGdObj(obj); - - _gdFuncPtr(_arg0, _retValue); - return ToJsRect2(_retValue); + _arg0 = ToGdObj(obj); + _gdFuncPtr(_arg0, _retValue); + FreeGdObj(_arg0); + _finalRetValue = ToJsRect2(_retValue); + FreeRect2(_retValue); + return _finalRetValue } \ No newline at end of file diff --git a/platform/web/js/engine/gdspx.util.js b/platform/web/js/engine/gdspx.util.js index 2aeb4878d94a..b5be6773fb39 100644 --- a/platform/web/js/engine/gdspx.util.js +++ b/platform/web/js/engine/gdspx.util.js @@ -2,8 +2,8 @@ // Bool-related functions function ToGdBool(value) { - func = GodotEngine.rtenv['_gdspx_new_bool']; - return func(value); + func = GodotEngine.rtenv['_gdspx_new_bool']; + return func(value); } function ToJsBool(ptr) { @@ -13,17 +13,22 @@ function ToJsBool(ptr) { } function AllocGdBool() { - return GodotEngine.rtenv['_gdspx_alloc_bool'](); + return GodotEngine.rtenv['_gdspx_alloc_bool'](); } function PrintGdBool(ptr) { - console.log(ToJsBool(ptr)); + console.log(ToJsBool(ptr)); } +function FreeGdBool(ptr) { + GodotEngine.rtenv['_gdspx_free_bool'](ptr); +} + + // Int-related functions function ToGdInt(value) { - func = GodotEngine.rtenv['_gdspx_new_int']; - return func(value); + func = GodotEngine.rtenv['_gdspx_new_int']; + return func(value); } function ToJsInt(ptr) { @@ -36,18 +41,23 @@ function ToJsInt(ptr) { } function AllocGdInt() { - ptr = GodotEngine.rtenv['_gdspx_alloc_int']; - return ptr; + ptr = GodotEngine.rtenv['_gdspx_alloc_int']; + return ptr; } function PrintGdInt(ptr) { - console.log(ToJsInt(ptr)); + console.log(ToJsInt(ptr)); +} + +function FreeGdInt(ptr) { + GodotEngine.rtenv['_gdspx_free_int'](ptr); } + // Float-related functions function ToGdFloat(value) { - func = GodotEngine.rtenv['_gdspx_new_float']; - return func(value); + func = GodotEngine.rtenv['_gdspx_new_float']; + return func(value); } function ToJsFloat(ptr) { @@ -58,21 +68,26 @@ function ToJsFloat(ptr) { } function AllocGdFloat() { - return GodotEngine.rtenv['_gdspx_alloc_float'](); + return GodotEngine.rtenv['_gdspx_alloc_float'](); } function PrintGdFloat(ptr) { - console.log(ToJsFloat(ptr)); + console.log(ToJsFloat(ptr)); +} + +function FreeGdFloat(ptr) { + GodotEngine.rtenv['_gdspx_free_float'](ptr); } + // String-related functions function ToGdString(str) { - const encoder = new TextEncoder(); - const stringBytes = encoder.encode(str); - const ptr = Module._malloc(stringBytes.length + 1); - Module.HEAPU8.set(stringBytes, ptr); - Module.HEAPU8[ptr + stringBytes.length] = 0; - return ptr; + const encoder = new TextEncoder(); + const stringBytes = encoder.encode(str); + const ptr = Module._malloc(stringBytes.length + 1); + Module.HEAPU8.set(stringBytes, ptr); + Module.HEAPU8[ptr + stringBytes.length] = 0; + return ptr; } function ToJsString(ptr) { @@ -87,17 +102,22 @@ function ToJsString(ptr) { } function AllocGdString() { - return GodotEngine.rtenv['_gdspx_alloc_string'](); + return GodotEngine.rtenv['_gdspx_alloc_string'](); } function PrintGdString(ptr) { - console.log(ToJsString(ptr)); + console.log(ToJsString(ptr)); +} + +function FreeGdString(ptr) { + GodotEngine.rtenv['_gdspx_free_string'](ptr); } + // Object-related functions function ToGdObj(object) { - func = GodotEngine.rtenv['_gdspx_new_obj']; - return func(object); + func = GodotEngine.rtenv['_gdspx_new_obj']; + return func(object); } function ToJsObj(ptr) { @@ -110,17 +130,22 @@ function ToJsObj(ptr) { } function AllocGdObj() { - return GodotEngine.rtenv['_gdspx_alloc_obj'](); + return GodotEngine.rtenv['_gdspx_alloc_obj'](); } function PrintGdObj(ptr) { - console.log(ToJsObj(ptr)); + console.log(ToJsObj(ptr)); } +function FreeGdObj(ptr) { + GodotEngine.rtenv['_gdspx_free_obj'](ptr); +} + + // Vec2-related functions function ToGdVec2(vec) { - func = GodotEngine.rtenv['_gdspx_new_vec2']; - return func(vec.x, vec.y); + func = GodotEngine.rtenv['_gdspx_new_vec2']; + return func(vec.x, vec.y); } function ToJsVec2(ptr) { @@ -133,17 +158,22 @@ function ToJsVec2(ptr) { } function AllocGdVec2() { - return GodotEngine.rtenv['_gdspx_alloc_vec2'](); + return GodotEngine.rtenv['_gdspx_alloc_vec2'](); } function PrintGdVec2(ptr) { - console.log(ToJsVec2(ptr)); + console.log(ToJsVec2(ptr)); } +function FreeGdVec2(ptr) { + GodotEngine.rtenv['_gdspx_free_vec2'](ptr); +} + + // Vec3-related functions function ToGdVec3(vec) { - func = GodotEngine.rtenv['_gdspx_new_vec3']; - return func(vec.x, vec.y, vec.z); + func = GodotEngine.rtenv['_gdspx_new_vec3']; + return func(vec.x, vec.y, vec.z); } function ToJsVec3(ptr) { @@ -157,18 +187,23 @@ function ToJsVec3(ptr) { } function AllocGdVec3() { - return GodotEngine.rtenv['_gdspx_alloc_vec3'](); + return GodotEngine.rtenv['_gdspx_alloc_vec3'](); } function PrintGdVec3(ptr) { - const vec3 = ToJsVec3(ptr); - console.log(`Vec3(${vec3.x}, ${vec3.y}, ${vec3.z})`); + const vec3 = ToJsVec3(ptr); + console.log(`Vec3(${vec3.x}, ${vec3.y}, ${vec3.z})`); } +function FreeGdVec3(ptr) { + GodotEngine.rtenv['_gdspx_free_vec3'](ptr); +} + + // Vec4-related functions function ToGdVec4(vec) { - func = GodotEngine.rtenv['_gdspx_new_vec4']; - return func(vec.x, vec.y, vec.z, vec.w); + func = GodotEngine.rtenv['_gdspx_new_vec4']; + return func(vec.x, vec.y, vec.z, vec.w); } function ToJsVec4(ptr) { @@ -183,18 +218,23 @@ function ToJsVec4(ptr) { } function AllocGdVec4() { - return GodotEngine.rtenv['_gdspx_alloc_vec4'](); + return GodotEngine.rtenv['_gdspx_alloc_vec4'](); } function PrintGdVec4(ptr) { - const vec4 = ToJsVec4(ptr); - console.log(`Vec4(${vec4.x}, ${vec4.y}, ${vec4.z}, ${vec4.w})`); + const vec4 = ToJsVec4(ptr); + console.log(`Vec4(${vec4.x}, ${vec4.y}, ${vec4.z}, ${vec4.w})`); +} + +function FreeGdVec4(ptr) { + GodotEngine.rtenv['_gdspx_free_vec4'](ptr); } + // Color-related functions function ToGdColor(color) { - func = GodotEngine.rtenv['_gdspx_new_color']; - return func(color.r, color.g, color.b, color.a); + func = GodotEngine.rtenv['_gdspx_new_color']; + return func(color.r, color.g, color.b, color.a); } function ToJsColor(ptr) { @@ -209,18 +249,23 @@ function ToJsColor(ptr) { } function AllocGdColor() { - return GodotEngine.rtenv['_gdspx_alloc_color'](); + return GodotEngine.rtenv['_gdspx_alloc_color'](); } function PrintGdColor(ptr) { - const color = ToJsColor(ptr); - console.log(`Color(${color.r}, ${color.g}, ${color.b}, ${color.a})`); + const color = ToJsColor(ptr); + console.log(`Color(${color.r}, ${color.g}, ${color.b}, ${color.a})`); +} + +function FreeGdColor(ptr) { + GodotEngine.rtenv['_gdspx_free_color'](ptr); } + // Rect2-related functions function ToGdRect2(rect) { - func = GodotEngine.rtenv['_gdspx_new_rect2']; - return func(rect.position.x, rect.position.y, rect.size.width, rect.size.height); + func = GodotEngine.rtenv['_gdspx_new_rect2']; + return func(rect.position.x, rect.position.y, rect.size.width, rect.size.height); } function ToJsRect2(ptr) { @@ -239,10 +284,14 @@ function ToJsRect2(ptr) { } function AllocGdRect2() { - return GodotEngine.rtenv['_gdspx_alloc_rect2'](); + return GodotEngine.rtenv['_gdspx_alloc_rect2'](); } function PrintGdRect2(ptr) { - const rect = ToJsRect2(ptr); - console.log(`Rect2(position: (${rect.position.x}, ${rect.position.y}), size: (${rect.size.width}, ${rect.size.height}))`); + const rect = ToJsRect2(ptr); + console.log(`Rect2(position: (${rect.position.x}, ${rect.position.y}), size: (${rect.size.width}, ${rect.size.height}))`); +} + +function FreeGdRect2(ptr) { + GodotEngine.rtenv['gdspx_free_rect2'](ptr); }