From a969cdd8d586d433f14c29b87c039053926f430d Mon Sep 17 00:00:00 2001 From: luboslenco Date: Tue, 2 Sep 2025 15:01:12 +0200 Subject: [PATCH] Cleanup --- paint/sources/base.ts | 85 +++++++++---------------- paint/sources/box_projects.ts | 1 - paint/sources/main.ts | 8 +-- paint/sources/project.ts | 28 ++++----- paint/sources/ui_base.ts | 114 +++++++++++----------------------- paint/sources/ui_nodes.ts | 2 - paint/sources/ui_view2d.ts | 2 - 7 files changed, 80 insertions(+), 160 deletions(-) diff --git a/paint/sources/base.ts b/paint/sources/base.ts index 8d47f1bc..43b145b2 100644 --- a/paint/sources/base.ts +++ b/paint/sources/base.ts @@ -68,11 +68,9 @@ function base_init() { iron_set_save_and_quit_callback(base_save_and_quit_callback); - let font: draw_font_t = data_get_font("font.ttf"); - let image_color_wheel: gpu_texture_t = data_get_image("color_wheel.k"); - let image_color_wheel_gradient: gpu_texture_t = data_get_image("color_wheel_gradient.k"); - - base_font = font; + base_font = data_get_font("font.ttf"); + base_color_wheel = data_get_image("color_wheel.k"); + base_color_wheel_gradient = data_get_image("color_wheel_gradient.k"); config_load_theme(config_raw.theme, false); base_default_element_w = base_theme.ELEMENT_W; base_default_element_h = base_theme.ELEMENT_H; @@ -91,8 +89,6 @@ function base_init() { draw_font_init(base_font); } - base_color_wheel = image_color_wheel; - base_color_wheel_gradient = image_color_wheel_gradient; ui_nodes_enum_texts = base_enum_texts; // Init plugins @@ -104,22 +100,21 @@ function base_init() { } args_parse(); - camera_init(); ui_base_init(); ui_viewnodes_init(); ui_view2d_init(); - base_ext_init(); sys_notify_on_update(base_update); - sys_notify_on_render(ui_view2d_render); sys_notify_on_update(ui_view2d_update); - sys_notify_on_render(ui_base_render_cursor); sys_notify_on_update(ui_nodes_update); - sys_notify_on_render(ui_nodes_render); sys_notify_on_update(ui_base_update); - sys_notify_on_render(ui_base_render); sys_notify_on_update(camera_update); + + sys_notify_on_render(ui_view2d_render); + sys_notify_on_render(ui_base_render_cursor); + sys_notify_on_render(ui_nodes_render); + sys_notify_on_render(ui_base_render); sys_notify_on_render(base_render); base_appx = ui_toolbar_w(true); @@ -127,9 +122,8 @@ function base_init() { if (config_raw.layout[layout_size_t.HEADER] == 1) { base_appy = ui_header_h * 2; } - let cam: camera_object_t = scene_camera; - cam.data.fov = math_floor(cam.data.fov * 100) / 100; - camera_object_build_proj(cam); + scene_camera.data.fov = math_floor(scene_camera.data.fov * 100) / 100; + camera_object_build_proj(scene_camera); args_run(); @@ -436,7 +430,16 @@ function base_update() { context_raw.ddirty = 0; } - base_ext_update(); + if (context_raw.tool == tool_type_t.GIZMO) { + if (keyboard_down("control") && keyboard_started("d")) { + sim_duplicate(); + } + + if (keyboard_started("delete")) { + sim_delete(); + } + } + compass_update(); } @@ -526,7 +529,17 @@ function base_get_drag_image(): gpu_texture_t { } function base_render() { - base_ext_render(); + if (context_raw.frame == 2) { + util_render_make_material_preview(); + ui_base_hwnds[tab_area_t.SIDEBAR1].redraws = 2; + + base_init_undo_layers(); + } + + if (context_raw.tool == tool_type_t.GIZMO) { + sim_init(); + sim_update(); + } if (context_raw.frame == 2) { make_material_parse_mesh_material(); @@ -780,40 +793,4 @@ function base_init_config() { raw.scene_atlas_res = texture_res_t.RES8192; raw.pathtrace_mode = pathtrace_mode_t.FAST; raw.grid_snap = false; - - base_ext_init_config(raw); -} - - -function base_ext_init() { -} - -function base_ext_render() { - if (context_raw.frame == 2) { - util_render_make_material_preview(); - ui_base_hwnds[tab_area_t.SIDEBAR1].redraws = 2; - - base_init_undo_layers(); - } - - if (context_raw.tool == tool_type_t.GIZMO) { - sim_init(); - sim_update(); - } -} - -function base_ext_init_config(raw: config_t) { - -} - -function base_ext_update() { - if (context_raw.tool == tool_type_t.GIZMO) { - if (keyboard_down("control") && keyboard_started("d")) { - sim_duplicate(); - } - - if (keyboard_started("delete")) { - sim_delete(); - } - } } diff --git a/paint/sources/box_projects.ts b/paint/sources/box_projects.ts index 76e0344d..8c28fe7e 100644 --- a/paint/sources/box_projects.ts +++ b/paint/sources/box_projects.ts @@ -47,7 +47,6 @@ function box_projects_tab() { if (ui_button(tr("New"))) { project_new(); - viewport_scale_to_bounds(); ui_box_hide(); // Pick unique name let i: i32 = 0; diff --git a/paint/sources/main.ts b/paint/sources/main.ts index 9ea4d3c6..866dae3e 100644 --- a/paint/sources/main.ts +++ b/paint/sources/main.ts @@ -1,16 +1,13 @@ function main() { - - // Used to locate external application data folder - iron_set_app_name(manifest_title); - config_load(); - sys_on_resize = base_on_resize; sys_on_w = base_w; sys_on_h = base_h; sys_on_x = base_x; sys_on_y = base_y; + iron_set_app_name(manifest_title); // Used to locate external application data folder + config_load(); config_init(); context_init(); sys_start(config_get_options()); @@ -22,7 +19,6 @@ function main() { uniforms_ext_init(); render_path_base_init(); render_path_deferred_init(); // Allocate gbuffer - if (context_raw.render_mode == render_mode_t.FORWARD) { render_path_forward_init(); render_path_commands = render_path_forward_commands; diff --git a/paint/sources/project.ts b/paint/sources/project.ts index a6894e6a..275133df 100644 --- a/paint/sources/project.ts +++ b/paint/sources/project.ts @@ -10,19 +10,13 @@ let project_paint_objects: mesh_object_t[] = null; let project_asset_map: map_t = map_create(); // gpu_texture_t | font_t let project_mesh_list: string[] = null; -let project_materials: slot_material_t[] = null; -let project_brushes: slot_brush_t[] = null; -let project_layers: slot_layer_t[] = null; -let project_fonts: slot_font_t[] = null; +let project_materials: slot_material_t[] = []; +let project_brushes: slot_brush_t[] = []; +let project_layers: slot_layer_t[] = []; +let project_fonts: slot_font_t[] = []; let project_atlas_objects: i32[] = null; let project_atlas_names: string[] = null; -// lab -let project_material_data: material_data_t = null; -let project_nodes: ui_nodes_t; -let project_canvas: ui_node_canvas_t; -let project_default_canvas: buffer_t = null; - let _project_save_and_quit: bool; let _project_import_mesh_replace_existing: bool; let _project_import_mesh_done: ()=>void; @@ -182,12 +176,16 @@ function project_cleanup() { } function project_new(reset_layers: bool = true) { - let first: bool = context_raw.paint_object == null; - if (!first) { + if (context_raw.paint_object != null) { project_cleanup(); + project_filepath = ""; + } + + if (project_layers.length == 0) { + array_push(project_layers, slot_layer_create()); + context_raw.layer = project_layers[0]; } - project_filepath = ""; context_raw.layer_preview_dirty = true; context_raw.layer_filter = 0; context_raw.texture = null; @@ -202,7 +200,6 @@ function project_new(reset_layers: bool = true) { // raw = import_mesh_raw_mesh(mesh); // } // else { - if (project_mesh_list == null) { project_mesh_list = ["box_bevel"]; } @@ -227,7 +224,7 @@ function project_new(reset_layers: bool = true) { if (in_use) draw_end(); let m: material_data_t = data_get_material("Scene", "Material"); - if (first) { + if (context_raw.paint_object == null) { let ms: material_data_t[] = [m]; context_raw.paint_object = mesh_object_create(md, ms); context_raw.paint_object.base.name = "paint_object"; @@ -273,7 +270,6 @@ function project_new(reset_layers: bool = true) { project_asset_id = 0; project_raw.packed_assets = []; context_raw.ddirty = 4; - ui_base_hwnds[tab_area_t.SIDEBAR0].redraws = 2; ui_base_hwnds[tab_area_t.SIDEBAR1].redraws = 2; diff --git a/paint/sources/ui_base.ts b/paint/sources/ui_base.ts index 07a645b4..8b074cc0 100644 --- a/paint/sources/ui_base.ts +++ b/paint/sources/ui_base.ts @@ -46,13 +46,37 @@ function _draw_callback_create(f: (h: ui_handle_t)=>void): tab_draw_t { } function ui_base_init_hwnd_tabs(): tab_draw_array_t[] { - return ui_base_ext_init_hwnd_tabs(); + let a0: tab_draw_array_t = [ + _draw_callback_create(tab_layers_draw), + _draw_callback_create(tab_history_draw), + _draw_callback_create(tab_plugins_draw) + ]; + let a1: tab_draw_array_t = [ + _draw_callback_create(tab_materials_draw), + _draw_callback_create(tab_brushes_draw), + _draw_callback_create(tab_scripts_draw) + + ]; + let a2: tab_draw_array_t = [ + _draw_callback_create(tab_browser_draw), + _draw_callback_create(tab_meshes_draw), + _draw_callback_create(tab_textures_draw), + _draw_callback_create(tab_fonts_draw), + _draw_callback_create(tab_swatches_draw), + _draw_callback_create(tab_console_draw), + _draw_callback_create(ui_status_draw_version_tab) + ]; + + let r: tab_draw_array_t[] = []; + array_push(r, a0); + array_push(r, a1); + array_push(r, a2); + return r; } function ui_base_init() { ui_toolbar_init(); context_raw.text_tool_text = tr("Text"); - ui_header_init(); ui_status_init(); ui_menubar_init(); @@ -60,37 +84,6 @@ function ui_base_init() { ui_header_h = math_floor(ui_header_default_h * config_raw.window_scale); ui_menubar_w = math_floor(ui_menubar_default_w * config_raw.window_scale); - if (project_materials == null) { - project_materials = []; - let m: material_data_t = data_get_material("Scene", "Material"); - array_push(project_materials, slot_material_create(m)); - context_raw.material = project_materials[0]; - } - - if (project_brushes == null) { - project_brushes = []; - array_push(project_brushes, slot_brush_create()); - context_raw.brush = project_brushes[0]; - make_material_parse_brush(); - } - - if (project_fonts == null) { - project_fonts = []; - array_push(project_fonts, slot_font_create("default.ttf", base_font)); - context_raw.font = project_fonts[0]; - } - - if (project_layers == null) { - project_layers = []; - array_push(project_layers, slot_layer_create()); - context_raw.layer = project_layers[0]; - } - - if (project_raw.swatches == null) { - project_set_default_swatches(); - context_raw.swatch = project_raw.swatches[0]; - } - if (context_raw.empty_envmap == null) { ui_base_make_empty_envmap(base_theme.VIEWPORT_COL); } @@ -103,18 +96,15 @@ function ui_base_init() { context_raw.preview_envmap = gpu_create_texture_from_bytes(b, 1, 1); } - let world: world_data_t = scene_world; if (context_raw.saved_envmap == null) { - // raw.saved_envmap = world._envmap; - context_raw.default_irradiance = world._.irradiance; - context_raw.default_radiance = world._.radiance; - context_raw.default_radiance_mipmaps = world._.radiance_mipmaps; + // raw.saved_envmap = scene_world._envmap; + context_raw.default_irradiance = scene_world._.irradiance; + context_raw.default_radiance = scene_world._.radiance; + context_raw.default_radiance_mipmaps = scene_world._.radiance_mipmaps; } - world._.envmap = context_raw.show_envmap ? context_raw.saved_envmap : context_raw.empty_envmap; + scene_world._.envmap = context_raw.show_envmap ? context_raw.saved_envmap : context_raw.empty_envmap; context_raw.ddirty = 1; - history_reset(); - let scale: f32 = config_raw.window_scale; let ops: ui_options_t = { theme: base_theme, @@ -128,8 +118,9 @@ function ui_base_init() { ui_on_text_hover = ui_base_on_text_hover; ui_on_deselect_text = ui_base_on_deselect_text; ui_on_tab_drop = ui_base_on_tab_drop; - - let resources: string[] = ["cursor.k", "icons.k"]; + if (UI_SCALE() > 1) { + ui_base_set_icon_scale(); + } context_raw.gizmo = scene_get_child(".Gizmo"); context_raw.gizmo_translate_x = object_get_child(context_raw.gizmo, ".TranslateX"); @@ -142,12 +133,9 @@ function ui_base_init() { context_raw.gizmo_rotate_y = object_get_child(context_raw.gizmo, ".RotateY"); context_raw.gizmo_rotate_z = object_get_child(context_raw.gizmo, ".RotateZ"); + let resources: string[] = ["cursor.k", "icons.k"]; resource_load(resources); - if (UI_SCALE() > 1) { - ui_base_set_icon_scale(); - } - project_new(false); if (project_filepath == "") { @@ -1469,35 +1457,3 @@ function ui_base_set_viewport_col(col: i32) { scene_world._.envmap = context_raw.empty_envmap; } } - - -function ui_base_ext_init_hwnd_tabs(): tab_draw_array_t[] { - - let a0: tab_draw_array_t = [ - _draw_callback_create(tab_layers_draw), - _draw_callback_create(tab_history_draw), - _draw_callback_create(tab_plugins_draw) - ]; - let a1: tab_draw_array_t = [ - _draw_callback_create(tab_materials_draw), - _draw_callback_create(tab_brushes_draw), - _draw_callback_create(tab_scripts_draw) - - ]; - let a2: tab_draw_array_t = [ - _draw_callback_create(tab_browser_draw), - _draw_callback_create(tab_meshes_draw), - _draw_callback_create(tab_textures_draw), - _draw_callback_create(tab_fonts_draw), - _draw_callback_create(tab_swatches_draw), - _draw_callback_create(tab_console_draw), - _draw_callback_create(ui_status_draw_version_tab) - ]; - - let r: tab_draw_array_t[] = []; - array_push(r, a0); - array_push(r, a1); - array_push(r, a2); - return r; -} - diff --git a/paint/sources/ui_nodes.ts b/paint/sources/ui_nodes.ts index 6359f88a..b77eb9ed 100644 --- a/paint/sources/ui_nodes.ts +++ b/paint/sources/ui_nodes.ts @@ -58,8 +58,6 @@ function ui_viewnodes_init() { ui_nodes_on_canvas_control = ui_viewnodes_on_canvas_control; ui_nodes_grid_snap = config_raw.grid_snap; nodes_material_init(); - - // ui.scroll_enabled = false; } function ui_viewnodes_on_link_drag(link_drag_id: i32, is_new_link: bool) { diff --git a/paint/sources/ui_view2d.ts b/paint/sources/ui_view2d.ts index 87e59313..69a4c28f 100644 --- a/paint/sources/ui_view2d.ts +++ b/paint/sources/ui_view2d.ts @@ -41,8 +41,6 @@ function ui_view2d_init() { pipes_get_constant_location("float4"); pipes_get_constant_location("float4"); ui_view2d_channel_loc = pipes_get_constant_location("int"); - - // ui.scroll_enabled = false; } function ui_view2d_draw_image(image: gpu_texture_t, dx: f32, dy: f32, dw: f32, dh: f32, channel: i32) {