Files
armorpaint/base/Sources/main.ts
T
luboslenco 9b2e2a44a5 Format
2024-03-21 21:06:41 +01:00

159 lines
3.5 KiB
TypeScript

function main() {
///if arm_snapshot
///if (is_paint || is_sculpt)
main_embed(["default_material.arm"]);
///end
///if is_lab
main_embed(["placeholder.k"]);
///end
///if (krom_direct3d12 || krom_vulkan || krom_metal)
main_embed_raytrace();
///if is_paint
main_embed_raytrace_bake();
///end
///end
///else
kickstart();
///end
}
function kickstart() {
// Used to locate external application data folder
krom_set_app_name(manifest_title);
config_load(main_start);
}
function main_start() {
app_on_resize = base_on_resize;
app_on_w = base_w;
app_on_h = base_h;
app_on_x = base_x;
app_on_y = base_y;
context_init();
config_init();
sys_start(config_get_options());
if (config_raw.layout == null) {
base_init_layout();
}
krom_set_app_name(manifest_title);
app_init(function() {
let o: object_t = scene_set_active("Scene");
uniforms_ext_init();
render_path_base_init();
if (context_raw.render_mode == render_mode_t.FORWARD) {
render_path_deferred_init(); // Allocate gbuffer
render_path_forward_init();
render_path_commands = render_path_forward_commands;
}
else {
render_path_deferred_init();
render_path_commands = render_path_deferred_commands;
}
base_init();
});
}
///if arm_snapshot
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 (krom_direct3d12 || krom_vulkan || krom_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();