From 08705a515cd25471655c37146438cb0b7f353aa4 Mon Sep 17 00:00:00 2001 From: luboslenco Date: Fri, 6 Sep 2024 21:11:06 +0200 Subject: [PATCH] Implement embed --- armorforge/project.js | 8 +-- armorlab/project.js | 6 +-- armorpaint/project.js | 6 +-- armorsculpt/project.js | 6 +-- base/project.js | 28 +++++------ base/sources/main.ts | 106 --------------------------------------- base/sources/resource.ts | 16 ------ 7 files changed, 26 insertions(+), 150 deletions(-) diff --git a/armorforge/project.js b/armorforge/project.js index 37314d2f..56a51fea 100644 --- a/armorforge/project.js +++ b/armorforge/project.js @@ -11,16 +11,16 @@ project.addProject("../base"); project.addSources("../armorpaint/sources"); project.addSources("../armorpaint/sources/nodes"); -project.addShaders("../armorpaint/shaders/*.glsl", { embed: flags.embed }); +project.addShaders("../armorpaint/shaders/*.glsl"); project.addSources("sources"); project.addSources("sources/nodes"); -project.addShaders("shaders/*.glsl", { embed: flags.embed }); -project.addAssets("assets/*", { destination: "data/{name}", embed: flags.embed }); +project.addShaders("shaders/*.glsl"); +project.addAssets("assets/*", { destination: "data/{name}" }); project.addAssets("assets/keymap_presets/*", { destination: "data/keymap_presets/{name}" }); project.addAssets("assets/licenses/**", { destination: "data/licenses/{name}" }); project.addAssets("assets/plugins/*", { destination: "data/plugins/{name}" }); project.addAssets("../armorpaint/assets/plugins/hello_world.js", { destination: "data/plugins/{name}" }); -project.addAssets("assets/meshes/*", { destination: "data/meshes/{name}" }); +project.addAssets("assets/meshes/*", { destination: "data/meshes/{name}", noembed: true }); project.addAssets("assets/readme/readme.txt", { destination: "{name}" }); return project; diff --git a/armorlab/project.js b/armorlab/project.js index 60488ff7..5c9ca996 100644 --- a/armorlab/project.js +++ b/armorlab/project.js @@ -10,8 +10,8 @@ project.addProject("../base"); project.addSources("sources"); project.addSources("sources/nodes"); -project.addShaders("shaders/*.glsl", { embed: flags.embed }); -project.addAssets("assets/*", { destination: "data/{name}", embed: flags.embed }); +project.addShaders("shaders/*.glsl"); +project.addAssets("assets/*", { destination: "data/{name}" }); project.addAssets("../armorpaint/assets/export_presets/*", { destination: "data/export_presets/{name}" }); project.addAssets("assets/keymap_presets/*", { destination: "data/keymap_presets/{name}" }); project.addAssets("assets/licenses/**", { destination: "data/licenses/{name}" }); @@ -19,7 +19,7 @@ project.addAssets("assets/plugins/*", { destination: "data/plugins/{name}" }); project.addAssets("../armorpaint/assets/plugins/hello_world.js", { destination: "data/plugins/{name}" }); project.addAssets("../armorpaint/assets/plugins/hello_node_brush.js", { destination: "data/plugins/{name}" }); project.addAssets("../armorpaint/assets/plugins/import_svg.js", { destination: "data/plugins/{name}" }); -project.addAssets("assets/meshes/*", { destination: "data/meshes/{name}" }); +project.addAssets("assets/meshes/*", { destination: "data/meshes/{name}", noembed: true }); project.addAssets("assets/models/*.onnx", { destination: "data/models/{name}" }); project.addAssets("assets/models/LICENSE.txt", { destination: "data/models/LICENSE.txt" }); project.addAssets("assets/readme/readme.txt", { destination: "{name}" }); diff --git a/armorpaint/project.js b/armorpaint/project.js index 19c575f9..f53a243e 100644 --- a/armorpaint/project.js +++ b/armorpaint/project.js @@ -9,13 +9,13 @@ project.addProject("../base"); project.addSources("sources"); project.addSources("sources/nodes"); -project.addShaders("shaders/*.glsl", { embed: flags.embed }); -project.addAssets("assets/*", { destination: "data/{name}", embed: flags.embed }); +project.addShaders("shaders/*.glsl"); +project.addAssets("assets/*", { destination: "data/{name}" }); project.addAssets("assets/export_presets/*", { destination: "data/export_presets/{name}" }); project.addAssets("assets/keymap_presets/*", { destination: "data/keymap_presets/{name}" }); project.addAssets("assets/licenses/**", { destination: "data/licenses/{name}" }); project.addAssets("assets/plugins/*", { destination: "data/plugins/{name}" }); -project.addAssets("assets/meshes/*", { destination: "data/meshes/{name}" }); +project.addAssets("assets/meshes/*", { destination: "data/meshes/{name}", noembed: true }); project.addAssets("assets/readme/readme.txt", { destination: "{name}" }); project.flatten(); diff --git a/armorsculpt/project.js b/armorsculpt/project.js index acad879c..fd134216 100644 --- a/armorsculpt/project.js +++ b/armorsculpt/project.js @@ -11,13 +11,13 @@ project.addSources("../armorpaint/sources"); project.addSources("../armorpaint/sources/nodes"); project.addSources("sources"); project.addSources("sources/nodes"); -project.addShaders("shaders/*.glsl", { embed: flags.embed }); -project.addAssets("assets/*", { destination: "data/{name}", embed: flags.embed }); +project.addShaders("shaders/*.glsl"); +project.addAssets("assets/*", { destination: "data/{name}" }); project.addAssets("assets/keymap_presets/*", { destination: "data/keymap_presets/{name}" }); project.addAssets("assets/licenses/**", { destination: "data/licenses/{name}" }); project.addAssets("assets/plugins/*", { destination: "data/plugins/{name}" }); project.addAssets("../armorpaint/assets/plugins/hello_world.js", { destination: "data/plugins/{name}" }); -project.addAssets("assets/meshes/*", { destination: "data/meshes/{name}" }); +project.addAssets("assets/meshes/*", { destination: "data/meshes/{name}", noembed: true }); project.addAssets("assets/readme/readme.txt", { destination: "{name}" }); return project; diff --git a/base/project.js b/base/project.js index 7564abe4..c9c44523 100644 --- a/base/project.js +++ b/base/project.js @@ -6,7 +6,7 @@ flags.d3d12 = os_argv().indexOf("direct3d12") >= 0; flags.vulkan = os_argv().indexOf("vulkan") >= 0; flags.metal = os_argv().indexOf("metal") >= 0; flags.raytrace = flags.d3d12 || flags.vulkan || flags.metal; -flags.embed = os_argv().indexOf("--embed") >= 0; +flags.embed = os_argv().indexOf("--embed"); // os_argv().indexOf("--debug") == -1; // clang 19 flags.physics = os_argv().indexOf("--debug") == -1; flags.voxels = !flags.raytrace && !flags.android && !flags.ios; @@ -62,21 +62,19 @@ let project = new Project("Base"); project.addProject("../armorcore"); project.addSources("sources"); project.addSources("sources/nodes"); -project.addShaders("../armorcore/shaders/*.glsl", { embed: flags.embed }); -project.addShaders("shaders/*.glsl", { embed: flags.embed }); -project.addAssets("assets/*", { destination: "data/{name}", embed: flags.embed }); +project.addShaders("../armorcore/shaders/*.glsl"); +project.addShaders("shaders/*.glsl"); +project.addAssets("assets/*", { destination: "data/{name}" }); project.addAssets("assets/locale/*", { destination: "data/locale/{name}" }); project.addAssets("assets/licenses/**", { destination: "data/licenses/{name}" }); project.addAssets("assets/plugins/*", { destination: "data/plugins/{name}" }); project.addAssets("assets/themes/*.json", { destination: "data/themes/{name}" }); if (flags.embed) { + project.addDefine("WITH_EMBED"); project.addDefine("arm_embed"); - project.addDefine("arm_image_embed"); - project.addDefine("arm_shader_embed"); } else { - project.addDefine("arm_noembed"); project.addAssets("assets/extra/*", { destination: "data/{name}" }); } @@ -89,22 +87,22 @@ project.addDefine("arm_particles"); // project.addDefine("arm_audio"); if (flags.android) { - project.addDefine("iron_android_rmb"); + project.addDefine("arm_android_rmb"); } if (flags.raytrace) { - project.addAssets("assets/raytrace/*", { destination: "data/{name}", embed: flags.embed }); + project.addAssets("assets/raytrace/*", { destination: "data/{name}" }); if (flags.d3d12) { - project.addAssets("shaders/raytrace/*.cso", { destination: "data/{name}", embed: flags.embed }); + project.addAssets("shaders/raytrace/*.cso", { destination: "data/{name}" }); project.addAssets("assets/readme/readme_dxr.txt", { destination: "{name}" }); } else if (flags.vulkan) { - project.addAssets("shaders/raytrace/*.spirv", { destination: "data/{name}", embed: flags.embed }); + project.addAssets("shaders/raytrace/*.spirv", { destination: "data/{name}" }); project.addAssets("assets/readme/readme_vkrt.txt", { destination: "{name}" }); } else if (flags.metal) { - project.addAssets("shaders/raytrace/*.metal", { destination: "data/{name}", embed: flags.embed }); + project.addAssets("shaders/raytrace/*.metal", { destination: "data/{name}" }); } } @@ -112,10 +110,10 @@ if (flags.voxels) { project.addDefine("arm_voxels"); if (os_platform() === "win32") { - project.addShaders("shaders/voxel_hlsl/*.glsl", { embed: flags.embed, noprocessing: true }); + project.addShaders("shaders/voxel_hlsl/*.glsl", { noprocessing: true }); } else { - project.addShaders("shaders/voxel_glsl/*.glsl", { embed: flags.embed }); + project.addShaders("shaders/voxel_glsl/*.glsl"); } } @@ -128,7 +126,7 @@ if (export_version_info) { fs_ensuredir(dir); fs_writefile(dir + "/version.json", data); // Adds version.json to embed.txt list - project.addAssets(dir + "/version.json", { destination: "data/{name}", embed: flags.embed }); + project.addAssets(dir + "/version.json", { destination: "data/{name}" }); } project.flatten(); diff --git a/base/sources/main.ts b/base/sources/main.ts index 7bb0bfef..f54493e6 100644 --- a/base/sources/main.ts +++ b/base/sources/main.ts @@ -1,19 +1,6 @@ function main() { - // ///if (is_paint || is_sculpt) - // main_embed(["default_material.arm"]); - // ///end - // ///if is_lab - // main_embed(["placeholder.k"]); - // ///end - - // ///if (iron_direct3d12 || iron_vulkan || iron_metal) - // main_embed_raytrace(); - // ///if is_paint - // main_embed_raytrace_bake(); - // ///end - // Used to locate external application data folder iron_set_app_name(manifest_title); config_load(); @@ -49,97 +36,4 @@ function main() { base_init(); } -///if arm_embed - -function main_embed(additional: string[]) { - let global: any = globalThis; - - resource_embed_raw("Scene", "Scene.arm", global["data/Scene.arm"]); - global["data/Scene.arm"] = null; - - resource_embed_raw("shader_datas", "shader_datas.arm", global["data/shader_datas.arm"]); - global["data/shader_datas.arm"] = null; - - resource_embed_font("font.ttf", global["data/font.ttf"]); - global["data/font.ttf"] = null; - - resource_embed_font("font_mono.ttf", global["data/font_mono.ttf"]); - global["data/font_mono.ttf"] = null; - - let files: string[] = [ - "ltc_mag.arm", - "ltc_mat.arm", - "default_brush.arm", - "World_irradiance.arm", - "World_radiance.k", - "World_radiance_0.k", - "World_radiance_1.k", - "World_radiance_2.k", - "World_radiance_3.k", - "World_radiance_4.k", - "World_radiance_5.k", - "World_radiance_6.k", - "World_radiance_7.k", - "World_radiance_8.k", - "brdf.k", - "color_wheel.k", - "color_wheel_gradient.k", - "cursor.k", - "icons.k", - "icons2x.k", - "badge.k", - "noise256.k", - "smaa_search.k", - "smaa_area.k", - "text_coloring.json", - "version.json" - ]; - for (let i: i32 = 0; i < additional.length; ++i) { - let add: string = additional[i]; - array_push(files, add); - } - for (let i: i32 = 0; i < files.length; ++i) { - let file: string = files[i]; - resource_embed_blob(file, global["data/" + file]); - global["data/" + file] = null; - } -} - -///if (iron_direct3d12 || iron_vulkan || iron_metal) - -function main_embed_raytrace() { - let global: any = globalThis; - let files: string[] = [ - "bnoise_rank.k", - "bnoise_scramble.k", - "bnoise_sobol.k", - "raytrace_brute_core" + render_path_raytrace_ext, - "raytrace_brute_full" + render_path_raytrace_ext - ]; - for (let i: i32 = 0; i < files.length; ++i) { - let file: string = files[i]; - resource_embed_blob(file, global["data/" + file]); - global["data/" + file] = null; - } -} - -function main_embed_raytrace_bake() { - let global: any = globalThis; - let files: string[] = [ - "raytrace_bake_ao" + render_path_raytrace_ext, - "raytrace_bake_bent" + render_path_raytrace_ext, - "raytrace_bake_light" + render_path_raytrace_ext, - "raytrace_bake_thick" + render_path_raytrace_ext - ]; - for (let i: i32 = 0; i < files.length; ++i) { - let file: string = files[i]; - resource_embed_blob(file, global["data/" + file]); - global["data/" + file] = null; - } -} - -///end - -///end - main(); diff --git a/base/sources/resource.ts b/base/sources/resource.ts index 3c79267f..3790ba64 100644 --- a/base/sources/resource.ts +++ b/base/sources/resource.ts @@ -31,22 +31,6 @@ function resource_tile18(img: image_t, x: i32, y: i32): rect_t { return r; } -///if arm_embed -function resource_embed_raw(handle: string, name: string, file: buffer_t) { - map_set(data_cached_blobs, name, file); - data_get_scene_raw(handle); - map_delete(data_cached_blobs, name); -} - -function resource_embed_blob(name: string, file: buffer_t) { - map_set(data_cached_blobs, name, file); -} - -function resource_embed_font(name: string, file: buffer_t) { - map_set(data_cached_fonts, name, g2_font_create(file)); -} -///end - type rect_t = { x?: i32; y?: i32;