This commit is contained in:
Tanasart 2024-12-11 13:23:43 +07:00
parent 7439334b75
commit f99aa637d8
6 changed files with 89 additions and 16 deletions

View file

@ -1264,6 +1264,7 @@
{"name":"panel_preview_view_settings","order":9,"path":"scripts/panel_preview_view_settings/panel_preview_view_settings.yy",},
{"name":"panel_preview_window","order":1,"path":"scripts/panel_preview_window/panel_preview_window.yy",},
{"name":"panel_profile_render","order":15,"path":"scripts/panel_profile_render/panel_profile_render.yy",},
{"name":"panel_resource_monitor","order":16,"path":"scripts/panel_resource_monitor/panel_resource_monitor.yy",},
{"name":"panel_test","order":8,"path":"scripts/panel_test/panel_test.yy",},
{"name":"panel_text_editor","order":9,"path":"scripts/panel_text_editor/panel_text_editor.yy",},
{"name":"panel_tunnels","order":1,"path":"scripts/panel_tunnels/panel_tunnels.yy",},

View file

@ -1878,6 +1878,7 @@
{"id":{"name":"panel_preview_window","path":"scripts/panel_preview_window/panel_preview_window.yy",},},
{"id":{"name":"panel_preview","path":"scripts/panel_preview/panel_preview.yy",},},
{"id":{"name":"panel_profile_render","path":"scripts/panel_profile_render/panel_profile_render.yy",},},
{"id":{"name":"panel_resource_monitor","path":"scripts/panel_resource_monitor/panel_resource_monitor.yy",},},
{"id":{"name":"panel_test","path":"scripts/panel_test/panel_test.yy",},},
{"id":{"name":"panel_text_editor","path":"scripts/panel_text_editor/panel_text_editor.yy",},},
{"id":{"name":"panel_tunnels","path":"scripts/panel_tunnels/panel_tunnels.yy",},},

View file

@ -74,6 +74,7 @@
case "Panel_Console" : return new Panel_Console();
case "Panel_Profile_Render" : return new Panel_Profile_Render();
case "Panel_Resource_Monitor" : return new Panel_Resource_Monitor();
}
return noone;

View file

@ -253,11 +253,12 @@ function Panel_Menu() : PanelContent() constructor {
array_push(menus, [ __txt("Dev"), [
MENU_ITEMS.console_panel,
menuItem(__txtx("panel_debug_overlay", "Debug overlay"), function() /*=>*/ { show_debug_overlay(true); }),
menuItem(__txtx("panel_menu_profile_render", "Render Profiler"), function() /*=>*/ { var dia = dialogPanelCall(new Panel_Profile_Render()); }),
menuItem(__txtx("panel_menu_profile_render", "Render Profiler"), function() /*=>*/ { dialogPanelCall(new Panel_Profile_Render()); }),
menuItem(__txtx("panel_menu_resource_monitor", "Resource Monitor"), function() /*=>*/ { dialogPanelCall(new Panel_Resource_Monitor()); }),
-1,
menuItem(__txtx("panel_menu_tester", "Save frozen"), function() /*=>*/ { PROJECT.freeze = true; SAVE(); }),
menuItem(__txtx("panel_menu_tester", "Tester"), function() /*=>*/ { var dia = dialogPanelCall(new Panel_Test()); }),
menuItem(__txtx("panel_menu_tester", "Tester"), function() /*=>*/ { dialogPanelCall(new Panel_Test()); }),
-1,
menuItem(__txtx("panel_menu_test_load_all", "Load all current collections"), function() /*=>*/ { __test_load_current_collections(); }),
@ -266,7 +267,7 @@ function Panel_Menu() : PanelContent() constructor {
menuItem(__txtx("panel_menu_test_update_sam", "Update sample projects"), function() /*=>*/ { __test_update_sample_projects(); }),
-1,
menuItem(__txtx("panel_menu_test_load_nodes", "Load all nodes"), function() /*=>*/ { __test_load_all_nodes(); }),
menuItem(__txtx("panel_menu_test_gen_guide", "Generate node guide"), function() /*=>*/ { var dia = dialogPanelCall(new Panel_Node_Data_Gen()); }),
menuItem(__txtx("panel_menu_test_gen_guide", "Generate node guide"), function() /*=>*/ { dialogPanelCall(new Panel_Node_Data_Gen()); }),
menuItem(__txtx("panel_menu_test_gen_theme", "Generate theme object"), function() /*=>*/ { __test_generate_theme(); }),
-1,
menuItem(__txtx("panel_menu_test_warning", "Display Warning"), function() /*=>*/ { noti_warning("Error message") }),
@ -274,7 +275,7 @@ function Panel_Menu() : PanelContent() constructor {
menuItem(__txtx("panel_menu_test_crash", "Force crash"), function() /*=>*/ { print(1 + "a"); }),
-1,
menuItemShelf(__txt("Misc."), function(_dat) {
return submenuCall(_dat, [ menuItem(__txtx("panel_menu_node_credit", "Node credit dialog"), function() /*=>*/ { var dia = dialogPanelCall(new Panel_Node_Cost()); }), ]);
return submenuCall(_dat, [ menuItem(__txtx("panel_menu_node_credit", "Node credit dialog"), function() /*=>*/ { dialogPanelCall(new Panel_Node_Cost()); }), ]);
}),
]]);
}

View file

@ -0,0 +1,55 @@
function Panel_Resource_Monitor() : PanelContent() constructor {
title = "ResMon";
w = ui(380);
h = ui(48);
min_h = ui(20);
sysinfo_init();
mb = 1024 * 1024;
gb = 1024 * 1024 * 1024;
memory_max = sysinfo_get_memory_max();
vram_max = sysinfo_get_gpu_vram();
cpu_cores = sysinfo_get_core_count();
memory_use = 0;
cpu_uses = array_create(5);
cpu_use_ind = 0;
cpu_use_acc = 0;
cpu_rec = 0;
runner = 0;
function drawContent(panel) {
draw_clear(merge_color(c_black, CDEF.main_dkblack, 0.75));
draw_clear(COLORS.panel_bg_clear_inner);
runner++;
if(runner % 100 == 0) {
memory_use = sysinfo_proc_memory_used();
cpu_use = sysinfo_sys_cpu_usage();
if(cpu_use > 0) {
cpu_use_acc -= cpu_uses[cpu_use_ind];
cpu_uses[cpu_use_ind] = cpu_use;
cpu_use_acc += cpu_use;
cpu_use_ind = (cpu_use_ind + 1) % 5;
cpu_rec++;
}
}
var _cpu = cpu_use_acc / clamp(cpu_rec, 1, 5);
var _mem = memory_use / memory_max;
draw_sprite_stretched_ext(THEME.s_box_r2, 0, 0, 0, w * _mem, h, COLORS._main_value_positive, 0.2);
draw_set_text(f_code, fa_left, fa_center, COLORS._main_text);
var _tx = ui(12);
var _ty = h / 2;
draw_set_color(COLORS._main_text_sub); draw_text(_tx, _ty, $"CPU usage");
draw_set_color(COLORS._main_text); draw_text(_tx + ui(80), _ty, $"{_cpu}%");
_tx += ui(160);
draw_set_color(COLORS._main_text_sub); draw_text(_tx, _ty, $"Memory");
draw_set_color(COLORS._main_text); draw_text(_tx + ui(56), _ty, $"{memory_use / mb} MB");
}
}

View file

@ -0,0 +1,14 @@
{
"$GMScript":"v1",
"%Name":"panel_resource_monitor",
"isCompatibility":false,
"isDnD":false,
"name":"panel_resource_monitor",
"parent":{
"name":"_others",
"path":"folders/panels/_others.yy",
},
"resourceType":"GMScript",
"resourceVersion":"2.0",
"tags":[],
}