diff --git a/base/sources/ts/args.ts b/base/sources/ts/args.ts index 75308ffe..c7d23eb0 100644 --- a/base/sources/ts/args.ts +++ b/base/sources/ts/args.ts @@ -63,7 +63,7 @@ function args_parse() { function args_run() { if (args_use) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { if (project_filepath != "") { import_arm_run_project(project_filepath); } @@ -121,7 +121,7 @@ function args_run() { data_delete_blob("export_presets/" + file); // Export queue - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { export_texture_run(args_export_textures_path); }); } diff --git a/base/sources/ts/base.ts b/base/sources/ts/base.ts index ffa29492..d38115d5 100644 --- a/base/sources/ts/base.ts +++ b/base/sources/ts/base.ts @@ -112,15 +112,15 @@ function base_init() { base_ext_init(); sys_notify_on_update(base_update); - sys_notify_on_render_2d(ui_view2d_render); + sys_notify_on_render(ui_view2d_render); sys_notify_on_update(ui_view2d_update); - sys_notify_on_render_2d(ui_base_render_cursor); + sys_notify_on_render(ui_base_render_cursor); sys_notify_on_update(ui_nodes_update); - sys_notify_on_render_2d(ui_nodes_render); + sys_notify_on_render(ui_nodes_render); sys_notify_on_update(ui_base_update); - sys_notify_on_render_2d(ui_base_render); + sys_notify_on_render(ui_base_render); sys_notify_on_update(camera_update); - sys_notify_on_render_2d(base_render); + sys_notify_on_render(base_render); base_appx = ui_toolbar_w(true); base_appy = 0; diff --git a/base/sources/ts/box_export.ts b/base/sources/ts/box_export.ts index fce1030d..d61f503e 100644 --- a/base/sources/ts/box_export.ts +++ b/base/sources/ts/box_export.ts @@ -102,7 +102,7 @@ function box_export_tab_export_textures(title: string, bake_material: bool = fal ui_combo(base_bits_handle, base_bits_combo, tr("Color"), true); if (base_bits_handle.changed) { - sys_notify_on_init(layers_set_bits); + sys_notify_on_next_frame(layers_set_bits); } ui_row2(); @@ -166,7 +166,7 @@ function box_export_tab_export_textures(title: string, bake_material: bool = fal if (context_raw.layers_destination == export_destination_t.PACKED) { _box_export_bake_material = bake_material; context_raw.texture_export_path = "/"; - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { export_texture_run(context_raw.texture_export_path, _box_export_bake_material); }); } @@ -178,7 +178,7 @@ function box_export_tab_export_textures(title: string, bake_material: bool = fal ///if (arm_android || arm_ios) console_toast(tr("Exporting textures")); ///end - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { export_texture_run(context_raw.texture_export_path, _box_export_bake_material); }); }); @@ -462,7 +462,7 @@ function box_export_show_material() { if (f == "") { f = tr("untitled"); } - sys_notify_on_init(function (path: string) { + sys_notify_on_next_frame(function (path: string) { export_arm_run_material(path); }, path + path_sep + f); }); @@ -491,7 +491,7 @@ function box_export_show_brush() { ui_files_show("arm", true, false, function (path: string) { let f: string = ui_files_filename; if (f == "") f = tr("untitled"); - sys_notify_on_init(function (path: string) { + sys_notify_on_next_frame(function (path: string) { export_arm_run_brush(path); }, path + path_sep + f); }); diff --git a/base/sources/ts/box_preferences.ts b/base/sources/ts/box_preferences.ts index 41261427..a443146a 100644 --- a/base/sources/ts/box_preferences.ts +++ b/base/sources/ts/box_preferences.ts @@ -136,7 +136,7 @@ function box_preferences_show() { if (ui_button(tr("Restore")) && !ui_menu_show) { ui_menu_draw(function () { if (ui_menu_button(tr("Confirm"))) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { ui.ops.theme.ELEMENT_H = base_default_element_h; config_restore(); box_preferences_set_scale(); @@ -157,7 +157,7 @@ function box_preferences_show() { ui_files_show("json", false, false, function (path: string) { let b: buffer_t = data_get_blob(path); let raw: config_t = json_parse(sys_buffer_to_string(b)); - sys_notify_on_init(function (raw: config_t) { + sys_notify_on_next_frame(function (raw: config_t) { ui.ops.theme.ELEMENT_H = base_default_element_h; config_import_from(raw); box_preferences_set_scale(); diff --git a/base/sources/ts/box_projects.ts b/base/sources/ts/box_projects.ts index d3002d48..adeb00f5 100644 --- a/base/sources/ts/box_projects.ts +++ b/base/sources/ts/box_projects.ts @@ -133,7 +133,7 @@ function box_projects_tab() { ///if (arm_android || arm_ios) console_toast(tr("Opening project")); ///end - sys_notify_on_init(function (path: string) { + sys_notify_on_next_frame(function (path: string) { ui_box_hide(); import_arm_run_project(path); }, path); @@ -147,7 +147,7 @@ function box_projects_tab() { ui_menu_draw(function () { // if (ui_menu_button(tr("Duplicate"))) {} if (ui_menu_button(tr("Delete"))) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { file_delete(_box_projects_path); file_delete(_box_projects_icon_path); let data_path: string = substring(_box_projects_path, 0, _box_projects_path.length - 4); diff --git a/base/sources/ts/console.ts b/base/sources/ts/console.ts index 07f5651a..eda75948 100644 --- a/base/sources/ts/console.ts +++ b/base/sources/ts/console.ts @@ -36,10 +36,10 @@ function console_draw_progress() { function console_progress(s: string) { // Keep popup message displayed until s == null if (s == null) { - sys_remove_render_2d(console_draw_progress); + sys_remove_render(console_draw_progress); } else if (console_progress_text == null) { - sys_notify_on_render_2d(console_draw_progress); + sys_notify_on_render(console_draw_progress); } if (s != null) { console_trace(s); diff --git a/base/sources/ts/context.ts b/base/sources/ts/context.ts index 36be034a..1d91fb19 100644 --- a/base/sources/ts/context.ts +++ b/base/sources/ts/context.ts @@ -769,7 +769,7 @@ function context_set_render_path() { else { render_path_commands = render_path_deferred_commands; } - sys_notify_on_init(make_material_parse_mesh_material); + sys_notify_on_next_frame(make_material_parse_mesh_material); } function context_enable_import_plugin(file: string): bool { diff --git a/base/sources/ts/history.ts b/base/sources/ts/history.ts index e426433c..3ddcd846 100644 --- a/base/sources/ts/history.ts +++ b/base/sources/ts/history.ts @@ -142,7 +142,7 @@ function history_undo() { context_set_layer(context_raw.layer); } else if (step.name == tr("Invert Mask")) { - sys_notify_on_init(function (step: step_t) { + sys_notify_on_next_frame(function (step: step_t) { context_raw.layer = project_layers[step.layer]; slot_layer_invert_mask(context_raw.layer); }, step); @@ -312,8 +312,8 @@ function history_redo() { } else if (step.name == tr("Merge Layers")) { context_raw.layer = project_layers[step.layer + 1]; - sys_notify_on_init(history_redo_merge_layers); - sys_notify_on_init(layers_merge_down); + sys_notify_on_next_frame(history_redo_merge_layers); + sys_notify_on_next_frame(layers_merge_down); } else if (step.name == tr("Apply Mask")) { context_raw.layer = project_layers[step.layer]; @@ -335,7 +335,7 @@ function history_redo() { }); } else if (step.name == tr("Invert Mask")) { - sys_notify_on_init(function (step: step_t) { + sys_notify_on_next_frame(function (step: step_t) { context_raw.layer = project_layers[step.layer]; slot_layer_invert_mask(context_raw.layer); }, step); diff --git a/base/sources/ts/import_arm.ts b/base/sources/ts/import_arm.ts index 58ce197a..49406556 100644 --- a/base/sources/ts/import_arm.ts +++ b/base/sources/ts/import_arm.ts @@ -408,7 +408,7 @@ function import_arm_run_mesh(raw: project_format_t) { util_mesh_merge(); viewport_scale_to_bounds(); } - sys_notify_on_init(layers_init); + sys_notify_on_next_frame(layers_init); history_reset(); } @@ -481,7 +481,7 @@ function import_arm_run_material_from_project(project: project_format_t, path: s } } - sys_notify_on_init(function (imported: slot_material_t[]) { + sys_notify_on_next_frame(function (imported: slot_material_t[]) { for (let i: i32 = 0; i < imported.length; ++i) { let m: slot_material_t = imported[i]; context_set_material(m); @@ -571,7 +571,7 @@ function import_arm_run_brush_from_project(project: project_format_t, path: stri array_push(imported, context_raw.brush); } - sys_notify_on_init(function (imported: slot_brush_t[]) { + sys_notify_on_next_frame(function (imported: slot_brush_t[]) { for (let i: i32 = 0; i < imported.length; ++i) { let b: slot_brush_t = imported[i]; context_set_brush(b); diff --git a/base/sources/ts/import_blend_material.ts b/base/sources/ts/import_blend_material.ts index 47a326fa..69aa87a8 100644 --- a/base/sources/ts/import_blend_material.ts +++ b/base/sources/ts/import_blend_material.ts @@ -31,7 +31,7 @@ function import_blend_material_run(path: string) { function _import_blend_material() { console_toast(tr("Baking material")); - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let save: string; if (path_is_protected()) { diff --git a/base/sources/ts/import_font.ts b/base/sources/ts/import_font.ts index c341f91e..0b074374 100644 --- a/base/sources/ts/import_font.ts +++ b/base/sources/ts/import_font.ts @@ -27,7 +27,7 @@ function import_font_run(path: string) { array_push(font_slots, font_slot); } - sys_notify_on_init(function (font_slots: slot_font_t[]) { + sys_notify_on_next_frame(function (font_slots: slot_font_t[]) { for (let i: i32 = 0; i < font_slots.length; ++i) { let f: slot_font_t = font_slots[i]; context_raw.font = f; diff --git a/base/sources/ts/import_mesh.ts b/base/sources/ts/import_mesh.ts index 016b7e78..e00b082b 100644 --- a/base/sources/ts/import_mesh.ts +++ b/base/sources/ts/import_mesh.ts @@ -125,7 +125,7 @@ function _import_mesh_make_mesh(mesh: raw_mesh_t) { let handle: string = context_raw.paint_object.data._.handle; if (handle != "SceneSphere" && handle != "ScenePlane") { - sys_notify_on_init(function(md: mesh_data_t) { + sys_notify_on_next_frame(function(md: mesh_data_t) { mesh_data_delete(md); }, context_raw.paint_object.data); } @@ -154,7 +154,7 @@ function _import_mesh_make_mesh(mesh: raw_mesh_t) { slot_layer_unload(l); } layers_new_layer(false); - sys_notify_on_init(layers_init); + sys_notify_on_next_frame(layers_init); history_reset(); } ///end @@ -164,7 +164,7 @@ function _import_mesh_make_mesh(mesh: raw_mesh_t) { sys_notify_on_next_frame(import_mesh_finish_import); } else { - sys_notify_on_init(import_mesh_finish_import); + sys_notify_on_next_frame(import_mesh_finish_import); } } diff --git a/base/sources/ts/iron/input.ts b/base/sources/ts/iron/input.ts index c4426979..fd99780f 100644 --- a/base/sources/ts/iron/input.ts +++ b/base/sources/ts/iron/input.ts @@ -21,8 +21,8 @@ function input_end_frame() { ///end } -function _input_on_foreground() { - mouse_reset(); +function input_on_foreground() { + mouse_reset(); // Reset mouse delta on foreground } function input_register() { @@ -30,11 +30,8 @@ function input_register() { return; } _input_registered = true; - sys_notify_on_end_frame(input_end_frame); - sys_notify_on_reset(input_reset); - // Reset mouse delta on foreground - sys_notify_on_app_state(_input_on_foreground, null, null, null, null); keyboard_reset(); + mouse_reset(); ///if WITH_GAMEPAD gamepad_reset(); ///end diff --git a/base/sources/ts/iron/scene.ts b/base/sources/ts/iron/scene.ts index 7f5b7797..12a1f7b3 100644 --- a/base/sources/ts/iron/scene.ts +++ b/base/sources/ts/iron/scene.ts @@ -85,10 +85,11 @@ function scene_set_active(scene_name: string): object_t { return o; } -function scene_update_frame() { - if (!_scene_ready) { +function scene_render_frame() { + if (!_scene_ready || render_path_commands == null) { return; } + ///if arm_anim for (let i: i32 = 0; i < scene_animations.length; ++i) { let anim: anim_raw_t = scene_animations[i]; @@ -101,12 +102,6 @@ function scene_update_frame() { transform_update(e.transform); } } -} - -function scene_render_frame() { - if (!_scene_ready || render_path_commands == null) { - return; - } // Render active camera scene_camera != null ? camera_object_render_frame(scene_camera) : render_path_render_frame(); diff --git a/base/sources/ts/iron/speaker_object.ts b/base/sources/ts/iron/speaker_object.ts index ea0a32d3..fab3d573 100644 --- a/base/sources/ts/iron/speaker_object.ts +++ b/base/sources/ts/iron/speaker_object.ts @@ -26,7 +26,7 @@ function speaker_object_create(data: speaker_data_t): speaker_object_t { } raw.sound = data_get_sound(data.sound); - sys_notify_on_init(_speaker_object_create_on_init, raw); + sys_notify_on_next_frame(_speaker_object_create_on_init, raw); return raw; } diff --git a/base/sources/ts/iron/sys.ts b/base/sources/ts/iron/sys.ts index 6c01e67a..bb4d9824 100644 --- a/base/sources/ts/iron/sys.ts +++ b/base/sources/ts/iron/sys.ts @@ -112,6 +112,7 @@ function sys_foreground() { for (let i: i32 = 0; i < _sys_foreground_listeners.length; ++i) { _sys_foreground_listeners[i].f(); } + input_on_foreground(); } function sys_resume() { @@ -343,10 +344,8 @@ enum window_mode_t { let _sys_on_resets: callback_t[] = []; let _sys_on_next_frames: callback_t[] = []; let _sys_on_end_frames: callback_t[] = []; -let _sys_on_inits: callback_t[] = []; let _sys_on_updates: callback_t[] = []; let _sys_on_renders: callback_t[] = []; -let _sys_on_renders_2d: callback_t[] = []; let _sys_lastw: i32 = -1; let _sys_lasth: i32 = -1; let sys_on_resize: ()=>void = null; @@ -386,14 +385,13 @@ function sys_y(): i32 { function sys_reset() { _sys_on_next_frames = []; _sys_on_end_frames = []; - _sys_on_inits = []; _sys_on_updates = []; _sys_on_renders = []; - _sys_on_renders_2d = []; for (let i: i32 = 0; i < _sys_on_resets.length; ++i) { let cb: callback_t = _sys_on_resets[i]; cb.f(cb.data); } + input_reset(); } function _sys_run_callbacks(cbs: callback_t[]) { @@ -403,10 +401,6 @@ function _sys_run_callbacks(cbs: callback_t[]) { } } -function sys_update() { - -} - let _sys_time_last: f32 = 0.0; let _sys_time_real_delta: f32 = 0.0; let _sys_time_frequency: i32 = -1; @@ -432,15 +426,14 @@ function sys_render() { array_splice(_sys_on_next_frames, 0, _sys_on_next_frames.length); } - scene_update_frame(); + _sys_run_callbacks(_sys_on_updates); - if (_sys_on_inits.length > 0) { - _sys_run_callbacks(_sys_on_inits); - array_splice(_sys_on_inits, 0, _sys_on_inits.length); + if (_sys_on_end_frames.length > 0) { + _sys_run_callbacks(_sys_on_end_frames); + array_splice(_sys_on_end_frames, 0, _sys_on_end_frames.length); } - _sys_run_callbacks(_sys_on_updates); - _sys_run_callbacks(_sys_on_end_frames); + input_end_frame(); // Rebuild projection on window resize if (_sys_lastw == -1) { @@ -463,7 +456,6 @@ function sys_render() { scene_render_frame(); _sys_run_callbacks(_sys_on_renders); - _sys_run_callbacks(_sys_on_renders_2d); } function _callback_create(f: (data?: any)=>void, data: any): callback_t { @@ -474,10 +466,6 @@ function _callback_create(f: (data?: any)=>void, data: any): callback_t { } // Hooks -function sys_notify_on_init(f: (data?: any)=>void, data: any = null) { - array_push(_sys_on_inits, _callback_create(f, data)); -} - function sys_notify_on_update(f: (data?: any)=>void, data: any = null) { array_push(_sys_on_updates, _callback_create(f, data)); } @@ -486,10 +474,6 @@ function sys_notify_on_render(f: (data?: any)=>void, data: any = null) { array_push(_sys_on_renders, _callback_create(f, data)); } -function sys_notify_on_render_2d(f: (data?: any)=>void, data: any = null) { - array_push(_sys_on_renders_2d, _callback_create(f, data)); -} - function sys_notify_on_reset(f: (data?: any)=>void, data: any = null) { array_push(_sys_on_resets, _callback_create(f, data)); } @@ -511,10 +495,6 @@ function _sys_remove_callback(ar: callback_t[], f: (data?: any)=>void) { } } -function sys_remove_init(f: (data?: any)=>void) { - _sys_remove_callback(_sys_on_inits, f); -} - function sys_remove_update(f: (data?: any)=>void) { _sys_remove_callback(_sys_on_updates, f); } @@ -523,10 +503,6 @@ function sys_remove_render(f: (data?: any)=>void) { _sys_remove_callback(_sys_on_renders, f); } -function sys_remove_render_2d(f: (data?: any)=>void) { - _sys_remove_callback(_sys_on_renders_2d, f); -} - function sys_remove_reset(f: (data?: any)=>void) { _sys_remove_callback(_sys_on_resets, f); } @@ -534,4 +510,3 @@ function sys_remove_reset(f: (data?: any)=>void) { function sys_remove_end_frame(f: (data?: any)=>void) { _sys_remove_callback(_sys_on_end_frames, f); } - diff --git a/base/sources/ts/layers.ts b/base/sources/ts/layers.ts index c02b8b31..4db7b27b 100644 --- a/base/sources/ts/layers.ts +++ b/base/sources/ts/layers.ts @@ -472,7 +472,7 @@ function layers_new_layer(clear: bool = true, position: i32 = -1): slot_layer_t } } if (clear) { - sys_notify_on_init(function (l: slot_layer_t) { + sys_notify_on_next_frame(function (l: slot_layer_t) { slot_layer_clear(l); }, l); } @@ -491,7 +491,7 @@ function layers_new_mask(clear: bool = true, parent: slot_layer_t, position: i32 array_insert(project_layers, position, l); context_set_layer(l); if (clear) { - sys_notify_on_init(function (l: slot_layer_t) { + sys_notify_on_next_frame(function (l: slot_layer_t) { slot_layer_clear(l); }, l); } @@ -517,7 +517,7 @@ function layers_create_fill_layer(uv_type: uv_type_t = uv_type_t.UVMAP, decal_ma _layers_uv_type = uv_type; _layers_decal_mat = decal_mat; _layers_position = position; - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = layers_new_layer(false, _layers_position); history_new_layer(); l.uv_type = _layers_uv_type; @@ -549,7 +549,7 @@ function layers_create_color_layer(base_color: i32, occlusion: f32 = 1.0, roughn _layers_metallic = metallic; _layers_position = position; - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = layers_new_layer(false, _layers_position); history_new_layer(); l.uv_type = uv_type_t.UVMAP; diff --git a/base/sources/ts/parser_material.ts b/base/sources/ts/parser_material.ts index 9325242a..74045e0a 100644 --- a/base/sources/ts/parser_material.ts +++ b/base/sources/ts/parser_material.ts @@ -467,7 +467,7 @@ function parser_material_parse_vector_input(inp: ui_node_socket_t): string { function _parser_material_cache_tex_text_node(file: string, text: string) { if (map_get(data_cached_images, file) == null) { - sys_notify_on_init(function(text: string) { + sys_notify_on_next_frame(function(text: string) { let _text_tool_text: string = context_raw.text_tool_text; let _text_tool_image: gpu_texture_t = context_raw.text_tool_image; context_raw.text_tool_text = text; diff --git a/base/sources/ts/project.ts b/base/sources/ts/project.ts index 4f70c73d..d764aff5 100644 --- a/base/sources/ts/project.ts +++ b/base/sources/ts/project.ts @@ -76,7 +76,7 @@ function project_save(save_and_quit: bool = false) { _project_save_and_quit = save_and_quit; - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { export_arm_run_project(); if (_project_save_and_quit) { iron_stop(); @@ -301,11 +301,11 @@ function project_new(reset_layers: bool = true) { array_push(project_layers, layer); context_set_layer(layer); if (aspect_ratio_changed) { - sys_notify_on_init(layers_resize); + sys_notify_on_next_frame(layers_resize); } ///end - sys_notify_on_init(layers_init); + sys_notify_on_next_frame(layers_init); } if (in_use) draw_begin(current); @@ -381,7 +381,7 @@ function project_import_brush() { // Parse brush make_material_parse_brush(); ui_nodes_hwnd.redraws = 2; - sys_notify_on_init(util_render_make_brush_preview); + sys_notify_on_next_frame(util_render_make_brush_preview); } // Import from project file else { diff --git a/base/sources/ts/tab_browser.ts b/base/sources/ts/tab_browser.ts index 196efd27..6b9977c6 100644 --- a/base/sources/ts/tab_browser.ts +++ b/base/sources/ts/tab_browser.ts @@ -210,7 +210,7 @@ function tab_browser_draw(htab: ui_handle_t) { if (tab_browser_known) { let path: string = tab_browser_hpath.text; - sys_notify_on_init(function (path: string) { + sys_notify_on_next_frame(function (path: string) { import_asset_run(path); }, path); tab_browser_hpath.text = substring(tab_browser_hpath.text, 0, string_last_index_of(tab_browser_hpath.text, path_sep)); diff --git a/base/sources/ts/tab_brushes.ts b/base/sources/ts/tab_brushes.ts index f0b47481..bf464c2f 100644 --- a/base/sources/ts/tab_brushes.ts +++ b/base/sources/ts/tab_brushes.ts @@ -99,7 +99,7 @@ function tab_brushes_draw(htab: ui_handle_t) { } if (ui_menu_button(tr("Duplicate"))) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let i: i32 = _tab_brushes_draw_i; context_raw.brush = slot_brush_create(); @@ -121,7 +121,7 @@ function tab_brushes_draw(htab: ui_handle_t) { if (img_full == null) { _tab_brushes_draw_i = i; - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let i: i32 = _tab_brushes_draw_i; let _brush: slot_brush_t = context_raw.brush; diff --git a/base/sources/ts/tab_fonts.ts b/base/sources/ts/tab_fonts.ts index 94b24371..685c79ec 100644 --- a/base/sources/ts/tab_fonts.ts +++ b/base/sources/ts/tab_fonts.ts @@ -91,7 +91,7 @@ function tab_fonts_draw(htab: ui_handle_t) { if (context_raw.font != project_fonts[i]) { _tab_fonts_draw_i = i; - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let i: i32 = _tab_fonts_draw_i; context_select_font(i); @@ -118,7 +118,7 @@ function tab_fonts_draw(htab: ui_handle_t) { if (img == null) { _tab_fonts_draw_i = i; - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let i: i32 = _tab_fonts_draw_i; let _font: slot_font_t = context_raw.font; @@ -160,7 +160,7 @@ function tab_fonts_draw(htab: ui_handle_t) { } function tab_fonts_delete_font(font: slot_font_t) { - sys_notify_on_init(function (font: slot_font_t) { + sys_notify_on_next_frame(function (font: slot_font_t) { let i: i32 = array_index_of(project_fonts, font); context_select_font(i == project_fonts.length - 1 ? i - 1 : i + 1); data_delete_font(project_fonts[i].file); diff --git a/base/sources/ts/tab_layers.ts b/base/sources/ts/tab_layers.ts index 249fa0c1..8df5111d 100644 --- a/base/sources/ts/tab_layers.ts +++ b/base/sources/ts/tab_layers.ts @@ -106,7 +106,7 @@ function tab_layers_button_new(text: string) { }, m); context_raw.layer_preview_dirty = true; history_new_black_mask(); - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { layers_update_fill_layers(); }); } @@ -122,7 +122,7 @@ function tab_layers_button_new(text: string) { }, m); context_raw.layer_preview_dirty = true; history_new_white_mask(); - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { layers_update_fill_layers(); }); } @@ -133,12 +133,12 @@ function tab_layers_button_new(text: string) { l = context_raw.layer; let m: slot_layer_t = layers_new_mask(false, l); - sys_notify_on_init(function (m: slot_layer_t) { + sys_notify_on_next_frame(function (m: slot_layer_t) { slot_layer_to_fill_layer(m); }, m); context_raw.layer_preview_dirty = true; history_new_fill_mask(); - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { layers_update_fill_layers(); }); } @@ -421,7 +421,7 @@ function tab_layers_draw_layer_slot_full(l: slot_layer_t, i: i32) { ui.input_y > ui._window_y && ui.input_y < ui._window_y + ui._window_h; if (in_focus && ui.is_delete_down && tab_layers_can_delete(context_raw.layer)) { ui.is_delete_down = false; - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { tab_layers_delete_layer(context_raw.layer); }); } @@ -500,7 +500,7 @@ function tab_layers_combo_object(l: slot_layer_t, label: bool = false): ui_handl context_set_layer(l); make_material_parse_mesh_material(); if (l.fill_layer != null) { // Fill layer - sys_notify_on_init(function (l: slot_layer_t) { + sys_notify_on_next_frame(function (l: slot_layer_t) { context_raw.material = l.fill_layer; slot_layer_clear(l); layers_update_fill_layers(); @@ -761,14 +761,14 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { let to_paint_string: string = slot_layer_is_layer(l) ? tr("To Paint Layer") : tr("To Paint Mask"); if (l.fill_layer == null && ui_menu_button(to_fill_string)) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = tab_layers_l; slot_layer_is_layer(l) ? history_to_fill_layer() : history_to_fill_mask(); slot_layer_to_fill_layer(l); }); } if (l.fill_layer != null && ui_menu_button(to_paint_string)) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = tab_layers_l; slot_layer_is_layer(l) ? history_to_paint_layer() : history_to_paint_mask(); slot_layer_to_paint_layer(l); @@ -778,7 +778,7 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { ui.enabled = tab_layers_can_delete(l); if (ui_menu_button(tr("Delete"), "delete")) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { tab_layers_delete_layer(context_raw.layer); }); } @@ -786,7 +786,7 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { if (l.fill_layer == null && ui_menu_button(tr("Clear"))) { context_set_layer(l); - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = tab_layers_l; if (!slot_layer_is_group(l)) { history_clear_layer(); @@ -805,7 +805,7 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { }); } if (slot_layer_is_mask(l) && l.fill_layer == null && ui_menu_button(tr("Invert"))) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = tab_layers_l; context_set_layer(l); history_invert_mask(); @@ -813,7 +813,7 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { }); } if (slot_layer_is_mask(l) && ui_menu_button(tr("Apply"))) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = tab_layers_l; context_raw.layer = l; history_apply_mask(); @@ -824,14 +824,14 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { }); } if (slot_layer_is_group(l) && ui_menu_button(tr("Merge Group"))) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = tab_layers_l; layers_merge_group(l); }); } ui.enabled = tab_layers_can_merge_down(l); if (ui_menu_button(tr("Merge Down"))) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = tab_layers_l; context_set_layer(l); history_merge_layers(); @@ -841,7 +841,7 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { } ui.enabled = true; if (ui_menu_button(tr("Duplicate"))) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = tab_layers_l; context_set_layer(l); history_duplicate_layer(); @@ -892,7 +892,7 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { ui_inline_radio(base_bits_handle, bits_items, ui_align_t.LEFT); ///end if (base_bits_handle.changed) { - sys_notify_on_init(layers_set_bits); + sys_notify_on_next_frame(layers_set_bits); make_material_parse_paint_material(); ui_menu_keep_open = true; } @@ -906,7 +906,7 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { if (scale_handle.changed) { context_set_material(l.fill_layer); context_set_layer(l); - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { layers_update_fill_layers(); }); ui_menu_keep_open = true; @@ -920,7 +920,7 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { context_set_material(l.fill_layer); context_set_layer(l); make_material_parse_paint_material(); - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { layers_update_fill_layers(); }); ui_menu_keep_open = true; @@ -935,7 +935,7 @@ function tab_layers_draw_layer_context_menu(l: slot_layer_t, mini: bool) { context_set_material(l.fill_layer); context_set_layer(l); make_material_parse_paint_material(); - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { layers_update_fill_layers(); }); ui_menu_keep_open = true; @@ -1002,7 +1002,7 @@ function tab_layers_make_mask_preview_rgba32(l: slot_layer_t) { if (context_raw.mask_preview_last != l) { context_raw.mask_preview_last = l; tab_layers_l = l; - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let l: slot_layer_t = tab_layers_l; draw_begin(context_raw.mask_preview_rgba32); draw_set_pipeline(ui_view2d_pipe); diff --git a/base/sources/ts/tab_materials.ts b/base/sources/ts/tab_materials.ts index 862be088..6b7f4420 100644 --- a/base/sources/ts/tab_materials.ts +++ b/base/sources/ts/tab_materials.ts @@ -129,7 +129,7 @@ function tab_materials_draw_slots(mini: bool) { context_select_material(i); ///if is_paint if (context_raw.tool == tool_type_t.MATERIAL) { - sys_notify_on_init(layers_update_fill_layers); + sys_notify_on_next_frame(layers_update_fill_layers); } ///end } @@ -172,7 +172,7 @@ function tab_materials_draw_slots(mini: bool) { ///end if (ui_menu_button(tr("Duplicate"))) { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let i: i32 = _tab_materials_draw_slots; context_raw.material = slot_material_create(project_materials[0].data); @@ -300,7 +300,7 @@ function tab_materials_draw_slots(mini: bool) { function tab_materials_button_new(text: string) { if (ui_button(text)) { - sys_notify_on_init(function() { + sys_notify_on_next_frame(function() { context_raw.material = slot_material_create(project_materials[0].data); array_push(project_materials, context_raw.material); tab_materials_update_material(); diff --git a/base/sources/ts/translator.ts b/base/sources/ts/translator.ts index 79d1262c..0013a958 100644 --- a/base/sources/ts/translator.ts +++ b/base/sources/ts/translator.ts @@ -148,7 +148,7 @@ function translator_init_font(cjk: bool, font_path: string, font_scale: f32) { _translator_init_font_font_scale = font_scale; // Load and assign font with cjk characters - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { let cjk: bool = _translator_init_font_cjk; let font_path: string = _translator_init_font_font_path; diff --git a/base/sources/ts/ui_base.ts b/base/sources/ts/ui_base.ts index c862e659..c23807a0 100644 --- a/base/sources/ts/ui_base.ts +++ b/base/sources/ts/ui_base.ts @@ -189,7 +189,7 @@ function ui_base_init() { project_paint_objects = [context_raw.paint_object]; if (project_filepath == "") { - sys_notify_on_init(layers_init); + sys_notify_on_next_frame(layers_init); } context_raw.project_objects = []; @@ -266,7 +266,7 @@ function ui_base_update() { box_export_show_textures(); } else { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { export_texture_run(context_raw.texture_export_path); }); } diff --git a/base/sources/ts/ui_files.ts b/base/sources/ts/ui_files.ts index 9152a1f3..d92c5920 100644 --- a/base/sources/ts/ui_files.ts +++ b/base/sources/ts/ui_files.ts @@ -204,7 +204,7 @@ function ui_files_file_browser(handle: ui_handle_t, drag_files: bool = false, se let f: string = map_get(ui_files_icon_file_map, icon_file); let data: draw_cloud_icon_data_t = make_draw_cloud_icon_data(f, image); - sys_notify_on_init(function (data: draw_cloud_icon_data_t) { + sys_notify_on_next_frame(function (data: draw_cloud_icon_data_t) { let icon: gpu_texture_t = gpu_create_render_target(data.image.width, data.image.height); if (ends_with(data.f, ".arm")) { // Used for material sphere alpha cutout draw_begin(icon); @@ -320,7 +320,7 @@ function ui_files_file_browser(handle: ui_handle_t, drag_files: bool = false, se shandle: shandle, w: w }; - sys_notify_on_init(ui_files_make_icon, args); + sys_notify_on_next_frame(ui_files_make_icon, args); } if (icon != null) { if (i == ui_files_selected) { diff --git a/base/sources/ts/ui_nodes.ts b/base/sources/ts/ui_nodes.ts index a0d42237..811c1f5b 100644 --- a/base/sources/ts/ui_nodes.ts +++ b/base/sources/ts/ui_nodes.ts @@ -1223,7 +1223,7 @@ function ui_nodes_render() { ui_nodes_node_search_x = ui._window_x + ui._x; ui_nodes_node_search_y = ui._window_y + ui._y; // Allow for node menu to be closed first - sys_notify_on_init(function() { + sys_notify_on_next_frame(function() { ui_nodes_node_search(math_floor(ui_nodes_node_search_x), math_floor(ui_nodes_node_search_y)); }); } diff --git a/base/sources/ts/uniforms_ext.ts b/base/sources/ts/uniforms_ext.ts index e50ba479..32f7e83d 100644 --- a/base/sources/ts/uniforms_ext.ts +++ b/base/sources/ts/uniforms_ext.ts @@ -373,18 +373,18 @@ function uniforms_ext_tex_link(object: object_t, mat: material_data_t, link: str else if (link == "_texuvmap") { if (!util_uv_uvmap_cached) { - sys_notify_on_init(util_uv_cache_uv_map); + sys_notify_on_next_frame(util_uv_cache_uv_map); } return util_uv_uvmap; } else if (link == "_textrianglemap") { if (!util_uv_trianglemap_cached) { - sys_notify_on_init(util_uv_cache_triangle_map); + sys_notify_on_next_frame(util_uv_cache_triangle_map); } return util_uv_trianglemap; } else if (link == "_texuvislandmap") { - sys_notify_on_init(util_uv_cache_uv_island_map); + sys_notify_on_next_frame(util_uv_cache_uv_island_map); if (util_uv_uvislandmap_cached) { return util_uv_uvislandmap; } diff --git a/base/sources/ts/util_render.ts b/base/sources/ts/util_render.ts index 36e06730..feb7fbea 100644 --- a/base/sources/ts/util_render.ts +++ b/base/sources/ts/util_render.ts @@ -331,7 +331,7 @@ function util_render_make_brush_preview() { context_raw.layer = _layer; context_raw.material = _material; context_raw.tool = _tool; - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { make_material_parse_paint_material(false); }); diff --git a/lab/sources/ui_nodes_ext.ts b/lab/sources/ui_nodes_ext.ts index e679070c..6d21f48d 100644 --- a/lab/sources/ui_nodes_ext.ts +++ b/lab/sources/ui_nodes_ext.ts @@ -7,7 +7,7 @@ function ui_nodes_ext_delay_idle_sleep() { function ui_nodes_ext_draw_buttons(ew: f32, start_y: f32) { if (ui_button(tr("Run"))) { - // sys_notify_on_init(function() { + // sys_notify_on_next_frame(function() { ui_nodes_ext_run(); // }); } @@ -30,7 +30,7 @@ function ui_nodes_ext_draw_buttons(ew: f32, start_y: f32) { } function ui_nodes_ext_run() { - sys_notify_on_render_2d(ui_nodes_ext_delay_idle_sleep); + sys_notify_on_render(ui_nodes_ext_delay_idle_sleep); console_progress(tr("Processing")); diff --git a/paint/sources/layers_ext.ts b/paint/sources/layers_ext.ts index 9921ebfe..2206d4bb 100644 --- a/paint/sources/layers_ext.ts +++ b/paint/sources/layers_ext.ts @@ -157,7 +157,7 @@ function layers_ext_flatten(height_to_normal: bool = false, layers: slot_layer_t } function layers_ext_on_resized() { - sys_notify_on_init(function () { + sys_notify_on_next_frame(function () { layers_resize(); let _layer: slot_layer_t = context_raw.layer; let _material: slot_material_t = context_raw.material; diff --git a/paint/sources/render_path_paint.ts b/paint/sources/render_path_paint.ts index 60d01ccf..e89478a7 100644 --- a/paint/sources/render_path_paint.ts +++ b/paint/sources/render_path_paint.ts @@ -583,7 +583,7 @@ function _render_path_paint_deriv() { if (render_path_paint_push_undo_last) { history_paint(); } - sys_notify_on_init(_render_path_paint_final); + sys_notify_on_next_frame(_render_path_paint_final); } function render_path_paint_is_rt_bake(): bool { @@ -650,10 +650,10 @@ function render_path_paint_draw() { context_select_paint_object(_paint_object); if (context_raw.bake_type == bake_type_t.DERIVATIVE) { - sys_notify_on_init(_render_path_paint_deriv); + sys_notify_on_next_frame(_render_path_paint_deriv); } else { - sys_notify_on_init(_render_path_paint_final); + sys_notify_on_next_frame(_render_path_paint_final); } } }