add configuration for settings menu
This commit is contained in:
parent
0d44c75fa9
commit
28a4c44478
@ -238,6 +238,7 @@ wasm_build :: (opts: Build_Options, trueno_opts: Trueno_Build_Options) {
|
||||
"emcc",
|
||||
"src/platform_specific/main.c", "dist/main.o", "modules/sokol-jai/sokol/gfx/sokol_gfx_wasm_gl_release.a", "modules/sokol-jai/sokol/log/sokol_log_wasm_gl_release.a", "modules/sokol-jai/sokol/audio/sokol_audio_wasm_gl_release.a", "modules/sokol-jai/sokol/time/sokol_time_wasm_gl_release.a", "modules/sokol-jai/sokol/app/sokol_app_wasm_gl_release.a", "modules/sokol-jai/sokol/glue/sokol_glue_wasm_gl_release.a", "modules/sokol-jai/sokol/fetch/sokol_fetch_wasm_gl_release.a", "modules/sokol-jai/sokol/gl/sokol_gl_wasm_gl_release.a", "modules/sokol-jai/sokol/fontstash/sokol_fontstash_wasm_gl_release.a",
|
||||
"modules/sokol-jai/sokol/stbi/stb_image.a",
|
||||
"modules/sokol-jai/sokol/stbv/stb_vorbis.a",
|
||||
"-o", "dist/index.html",
|
||||
"-sSTACK_SIZE=10MB",
|
||||
"-sALLOW_MEMORY_GROWTH",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
_______________
|
||||
Vulkan Version:
|
||||
- available: 1.3.296
|
||||
- available: 1.4.309
|
||||
- requesting: 1.3.0
|
||||
______________________
|
||||
Used Instance Layers :
|
||||
@ -8,17 +8,15 @@ VK_LAYER_KHRONOS_validation
|
||||
|
||||
Used Instance Extensions :
|
||||
____________________
|
||||
Devices : 2
|
||||
0: AMD Radeon RX 6700 XT (RADV NAVI22)
|
||||
Devices : 1
|
||||
0: AMD Radeon RX 6950 XT
|
||||
- Compatible
|
||||
1: llvmpipe (LLVM 20.1.2, 256 bits)
|
||||
- Compatible
|
||||
Compatible physical devices found : 2
|
||||
Compatible physical devices found : 1
|
||||
Using Device:
|
||||
- Device Name : AMD Radeon RX 6700 XT (RADV NAVI22)
|
||||
- Device Name : AMD Radeon RX 6950 XT
|
||||
- Vendor : AMD
|
||||
- Driver Version : 25.2.8
|
||||
- API Version : 1.4.318
|
||||
- Driver Version : 2.0.341
|
||||
- API Version : 1.4.308
|
||||
- Device Type : Discrete GPU
|
||||
________________________
|
||||
Used Device Extensions :
|
||||
@ -26,4 +24,139 @@ VK_KHR_deferred_host_operations
|
||||
VK_KHR_acceleration_structure
|
||||
VK_KHR_ray_query
|
||||
|
||||
BLAS Compaction: 0.3MB -> 0.2MB (0.1MB saved, 32.1% smaller)
|
||||
BLAS Compaction: 0.7MB -> 0.2MB (0.5MB saved, 65.9% smaller)
|
||||
_______________
|
||||
Vulkan Version:
|
||||
- available: 1.4.309
|
||||
- requesting: 1.3.0
|
||||
______________________
|
||||
Used Instance Layers :
|
||||
VK_LAYER_KHRONOS_validation
|
||||
|
||||
Used Instance Extensions :
|
||||
____________________
|
||||
Devices : 1
|
||||
0: AMD Radeon RX 6950 XT
|
||||
- Compatible
|
||||
Compatible physical devices found : 1
|
||||
Using Device:
|
||||
- Device Name : AMD Radeon RX 6950 XT
|
||||
- Vendor : AMD
|
||||
- Driver Version : 2.0.341
|
||||
- API Version : 1.4.308
|
||||
- Device Type : Discrete GPU
|
||||
________________________
|
||||
Used Device Extensions :
|
||||
VK_KHR_deferred_host_operations
|
||||
VK_KHR_acceleration_structure
|
||||
VK_KHR_ray_query
|
||||
|
||||
BLAS Compaction: 0.8MB -> 0.3MB (0.5MB saved, 66.0% smaller)
|
||||
_______________
|
||||
Vulkan Version:
|
||||
- available: 1.4.309
|
||||
- requesting: 1.3.0
|
||||
______________________
|
||||
Used Instance Layers :
|
||||
VK_LAYER_KHRONOS_validation
|
||||
|
||||
Used Instance Extensions :
|
||||
____________________
|
||||
Devices : 1
|
||||
0: AMD Radeon RX 6950 XT
|
||||
- Compatible
|
||||
Compatible physical devices found : 1
|
||||
Using Device:
|
||||
- Device Name : AMD Radeon RX 6950 XT
|
||||
- Vendor : AMD
|
||||
- Driver Version : 2.0.341
|
||||
- API Version : 1.4.308
|
||||
- Device Type : Discrete GPU
|
||||
________________________
|
||||
Used Device Extensions :
|
||||
VK_KHR_deferred_host_operations
|
||||
VK_KHR_acceleration_structure
|
||||
VK_KHR_ray_query
|
||||
|
||||
BLAS Compaction: 0.8MB -> 0.3MB (0.5MB saved, 66.0% smaller)
|
||||
_______________
|
||||
Vulkan Version:
|
||||
- available: 1.4.309
|
||||
- requesting: 1.3.0
|
||||
______________________
|
||||
Used Instance Layers :
|
||||
VK_LAYER_KHRONOS_validation
|
||||
|
||||
Used Instance Extensions :
|
||||
____________________
|
||||
Devices : 1
|
||||
0: AMD Radeon RX 6950 XT
|
||||
- Compatible
|
||||
Compatible physical devices found : 1
|
||||
Using Device:
|
||||
- Device Name : AMD Radeon RX 6950 XT
|
||||
- Vendor : AMD
|
||||
- Driver Version : 2.0.341
|
||||
- API Version : 1.4.308
|
||||
- Device Type : Discrete GPU
|
||||
________________________
|
||||
Used Device Extensions :
|
||||
VK_KHR_deferred_host_operations
|
||||
VK_KHR_acceleration_structure
|
||||
VK_KHR_ray_query
|
||||
|
||||
BLAS Compaction: 0.8MB -> 0.3MB (0.5MB saved, 66.0% smaller)
|
||||
_______________
|
||||
Vulkan Version:
|
||||
- available: 1.4.309
|
||||
- requesting: 1.3.0
|
||||
______________________
|
||||
Used Instance Layers :
|
||||
VK_LAYER_KHRONOS_validation
|
||||
|
||||
Used Instance Extensions :
|
||||
____________________
|
||||
Devices : 1
|
||||
0: AMD Radeon RX 6950 XT
|
||||
- Compatible
|
||||
Compatible physical devices found : 1
|
||||
Using Device:
|
||||
- Device Name : AMD Radeon RX 6950 XT
|
||||
- Vendor : AMD
|
||||
- Driver Version : 2.0.341
|
||||
- API Version : 1.4.308
|
||||
- Device Type : Discrete GPU
|
||||
________________________
|
||||
Used Device Extensions :
|
||||
VK_KHR_deferred_host_operations
|
||||
VK_KHR_acceleration_structure
|
||||
VK_KHR_ray_query
|
||||
|
||||
BLAS Compaction: 0.8MB -> 0.3MB (0.5MB saved, 65.9% smaller)
|
||||
_______________
|
||||
Vulkan Version:
|
||||
- available: 1.4.309
|
||||
- requesting: 1.3.0
|
||||
______________________
|
||||
Used Instance Layers :
|
||||
VK_LAYER_KHRONOS_validation
|
||||
|
||||
Used Instance Extensions :
|
||||
____________________
|
||||
Devices : 1
|
||||
0: AMD Radeon RX 6950 XT
|
||||
- Compatible
|
||||
Compatible physical devices found : 1
|
||||
Using Device:
|
||||
- Device Name : AMD Radeon RX 6950 XT
|
||||
- Vendor : AMD
|
||||
- Driver Version : 2.0.341
|
||||
- API Version : 1.4.308
|
||||
- Device Type : Discrete GPU
|
||||
________________________
|
||||
Used Device Extensions :
|
||||
VK_KHR_deferred_host_operations
|
||||
VK_KHR_acceleration_structure
|
||||
VK_KHR_ray_query
|
||||
|
||||
BLAS Compaction: 0.8MB -> 0.3MB (0.5MB saved, 65.9% smaller)
|
||||
|
||||
@ -58,8 +58,17 @@ AUDIO_LABELS :: string.["Master Volume", "Music Volume", "Sound Effects"];
|
||||
GRAPHICS_ITEMS :: string.["Fullscreen"];
|
||||
}
|
||||
|
||||
main_items :: () -> []string {
|
||||
result : [..]string;
|
||||
result.allocator = temp;
|
||||
array_add(*result, MAIN_ITEMS[0]);
|
||||
for g_settings_config.main_items array_add(*result, it.label);
|
||||
for 1..MAIN_ITEMS.count-1 array_add(*result, MAIN_ITEMS[it]);
|
||||
return result;
|
||||
}
|
||||
|
||||
page_items :: () -> []string {
|
||||
if g_settings.page == .MAIN return MAIN_ITEMS;
|
||||
if g_settings.page == .MAIN return main_items();
|
||||
if g_settings.page == .SETTINGS return SETTINGS_ITEMS;
|
||||
if g_settings.page == .AUDIO return AUDIO_LABELS;
|
||||
if g_settings.page == .GRAPHICS return GRAPHICS_ITEMS;
|
||||
@ -224,9 +233,17 @@ handle_enter :: (index: s32 = -1) {
|
||||
i := ifx index >= 0 then index else g_settings.cursor;
|
||||
if g_settings.page == {
|
||||
case .MAIN;
|
||||
game_items := cast(s32) g_settings_config.main_items.count;
|
||||
if i == 0 { save_settings(); g_settings.open = false; }
|
||||
if i == 1 then navigate_to(.SETTINGS);
|
||||
if i == 2 { save_settings(); sapp_request_quit(); }
|
||||
else if i <= game_items {
|
||||
save_settings();
|
||||
g_settings.open = false;
|
||||
g_settings_config.main_items[i - 1].on_select();
|
||||
} else {
|
||||
i -= game_items;
|
||||
if i == 1 then navigate_to(.SETTINGS);
|
||||
if i == 2 { save_settings(); sapp_request_quit(); }
|
||||
}
|
||||
case .SETTINGS;
|
||||
if i == 0 then navigate_to(.AUDIO);
|
||||
if i == 1 then navigate_to(.GRAPHICS);
|
||||
@ -255,10 +272,17 @@ Phosphene_Config :: struct {
|
||||
palette : []Vector3;
|
||||
}
|
||||
|
||||
// An entry the game adds to the pause menu. Choosing it closes the menu first.
|
||||
Settings_Menu_Item :: struct {
|
||||
label : string;
|
||||
on_select : ();
|
||||
}
|
||||
|
||||
Settings_Menu_Config :: struct {
|
||||
game_title : string = "TRUENO";
|
||||
credits : string = "Trueno engine by Tuomas Katajisto 2026";
|
||||
phosphenes : Phosphene_Config;
|
||||
main_items : []Settings_Menu_Item; // must outlive the config, e.g. a constant array
|
||||
}
|
||||
|
||||
set_settings_config :: (config: Settings_Menu_Config) {
|
||||
|
||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user