Minor changes
This commit is contained in:
11
build_options/meson-clang-linux
Normal file
11
build_options/meson-clang-linux
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[binaries]
|
||||||
|
c = 'clang-19'
|
||||||
|
c_ld = 'lld-19'
|
||||||
|
cpp = 'clang++-19'
|
||||||
|
cpp_ld = 'lld-19'
|
||||||
|
|
||||||
|
[properties]
|
||||||
|
c_args = ['-DEV_CC_CLANG=1','-fcolor-diagnostics', '-fansi-escape-codes', '-fms-extensions']
|
||||||
|
|
||||||
|
[cmake]
|
||||||
|
CMAKE_C_COMPILER = 'clang-19'
|
||||||
11
build_options/meson-clang-win
Normal file
11
build_options/meson-clang-win
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
[binaries]
|
||||||
|
c = 'clang.exe'
|
||||||
|
c_ld = 'lld'
|
||||||
|
cpp = 'clang++.exe'
|
||||||
|
cpp_ld = 'lld'
|
||||||
|
|
||||||
|
[properties]
|
||||||
|
c_args = ['-DEV_CC_CLANG=1','-fcolor-diagnostics', '-fansi-escape-codes']
|
||||||
|
|
||||||
|
[cmake]
|
||||||
|
CMAKE_C_COMPILER = 'clang.exe'
|
||||||
@@ -2,7 +2,7 @@ project('evol-sandbox', 'c',
|
|||||||
version : '0.1',
|
version : '0.1',
|
||||||
default_options : [
|
default_options : [
|
||||||
'warning_level=3',
|
'warning_level=3',
|
||||||
'c_std=gnu11',
|
'c_std=gnu23',
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
96
src/main.c
96
src/main.c
@@ -45,9 +45,7 @@ project_changed_cb()
|
|||||||
State.renderer_mod = evol_loadmodule("renderer");
|
State.renderer_mod = evol_loadmodule("renderer");
|
||||||
Renderer->setWindow((GenericHandle)State.window);
|
Renderer->setWindow((GenericHandle)State.window);
|
||||||
|
|
||||||
EV_DEFER(
|
AssetHandle project_config = Asset->load("project://game.proj");
|
||||||
AssetHandle project_config = Asset->load("project://game.proj"),
|
|
||||||
Asset->free(project_config))
|
|
||||||
{
|
{
|
||||||
JSONAsset project_desc = JSONLoader->loadAsset(project_config);
|
JSONAsset project_desc = JSONLoader->loadAsset(project_config);
|
||||||
|
|
||||||
@@ -56,8 +54,8 @@ project_changed_cb()
|
|||||||
for(int i = 0; i < (int)scene_count;i++) {
|
for(int i = 0; i < (int)scene_count;i++) {
|
||||||
evstring scenepath_id = evstring_newfmt("scenes[%d].path", i);
|
evstring scenepath_id = evstring_newfmt("scenes[%d].path", i);
|
||||||
evstring sceneid_id = evstring_newfmt("scenes[%d].id", i);
|
evstring sceneid_id = evstring_newfmt("scenes[%d].id", i);
|
||||||
evstring scenepath = evstring_refclone(evjs_get(project_desc.json_data, scenepath_id)->as_str);
|
evstring scenepath = evstring_newFromView(evjs_get(project_desc.json_data, scenepath_id)->as_str);
|
||||||
evstring sceneid = evstring_refclone(evjs_get(project_desc.json_data, sceneid_id)->as_str);
|
evstring sceneid = evstring_newFromView(evjs_get(project_desc.json_data, sceneid_id)->as_str);
|
||||||
|
|
||||||
GameScene scene = Scene->loadFromFile(scenepath);
|
GameScene scene = Scene->loadFromFile(scenepath);
|
||||||
Scene->setName(scene, sceneid);
|
Scene->setName(scene, sceneid);
|
||||||
@@ -68,10 +66,11 @@ project_changed_cb()
|
|||||||
evstring_free(scenepath_id);
|
evstring_free(scenepath_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
evstring activeScene = evstring_refclone(evjs_get(project_desc.json_data, "activeScene")->as_str);
|
evstring activeScene = evstring_newFromView(evjs_get(project_desc.json_data, "activeScene")->as_str);
|
||||||
Game->setActiveScene(Scene->getFromName(activeScene));
|
Game->setActiveScene(Scene->getFromName(activeScene));
|
||||||
evstring_free(activeScene);
|
evstring_free(activeScene);
|
||||||
}
|
}
|
||||||
|
Asset->free(project_config);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -107,58 +106,55 @@ load_project()
|
|||||||
AssetManager->mount(&project_dir, &project_mountpoint);
|
AssetManager->mount(&project_dir, &project_mountpoint);
|
||||||
evstring_free(project_mountpoint);
|
evstring_free(project_mountpoint);
|
||||||
|
|
||||||
EV_DEFER(
|
AssetHandle project_config = Asset->load("project://game.proj");
|
||||||
AssetHandle project_config = Asset->load("project://game.proj"),
|
JSONAsset project_desc = JSONLoader->loadAsset(project_config);
|
||||||
Asset->free(project_config))
|
|
||||||
{
|
|
||||||
JSONAsset project_desc = JSONLoader->loadAsset(project_config);
|
|
||||||
|
|
||||||
// Loading filesystem mounts
|
// Loading filesystem mounts
|
||||||
double mounts_count = evjs_get(project_desc.json_data, "mounts.len")->as_num;
|
double mounts_count = evjs_get(project_desc.json_data, "mounts.len")->as_num;
|
||||||
for(int i = 0; i < (int)mounts_count;i++) {
|
for(int i = 0; i < (int)mounts_count;i++) {
|
||||||
evstring path_id = evstring_newfmt("mounts[%d].path", i);
|
evstring path_id = evstring_newfmt("mounts[%d].path", i);
|
||||||
evstring mountpoint_id = evstring_newfmt("mounts[%d].mountpoint", i);
|
evstring mountpoint_id = evstring_newfmt("mounts[%d].mountpoint", i);
|
||||||
|
|
||||||
evstr_ref path_ref = evjs_get(project_desc.json_data, path_id)->as_str;
|
evstring_view path_ref = evjs_get(project_desc.json_data, path_id)->as_str;
|
||||||
evstr_ref mountpoint_ref = evjs_get(project_desc.json_data, mountpoint_id)->as_str;
|
evstring_view mountpoint_ref = evjs_get(project_desc.json_data, mountpoint_id)->as_str;
|
||||||
|
|
||||||
evstring path = evstring_newfmt("%s/%.*s", project_dir, path_ref.len, path_ref.data + path_ref.offset);
|
evstring path = evstring_newfmt("%s/%.*s", project_dir, path_ref.len, path_ref.data + path_ref.offset);
|
||||||
evstring mountpoint = evstring_refclone(mountpoint_ref);
|
evstring mountpoint = evstring_newFromView(mountpoint_ref);
|
||||||
|
|
||||||
AssetManager->mount(&path, &mountpoint);
|
AssetManager->mount(&path, &mountpoint);
|
||||||
|
|
||||||
evstring_free(mountpoint);
|
evstring_free(mountpoint);
|
||||||
evstring_free(path);
|
evstring_free(path);
|
||||||
|
|
||||||
evstring_free(mountpoint_id);
|
evstring_free(mountpoint_id);
|
||||||
evstring_free(path_id);
|
evstring_free(path_id);
|
||||||
}
|
|
||||||
|
|
||||||
Renderer->setWindow((GenericHandle)State.window);
|
|
||||||
|
|
||||||
|
|
||||||
// Loading Scenes
|
|
||||||
double scene_count = evjs_get(project_desc.json_data, "scenes.len")->as_num;
|
|
||||||
for(int i = 0; i < (int)scene_count;i++) {
|
|
||||||
evstring scenepath_id = evstring_newfmt("scenes[%d].path", i);
|
|
||||||
evstring sceneid_id = evstring_newfmt("scenes[%d].id", i);
|
|
||||||
evstring scenepath = evstring_refclone(evjs_get(project_desc.json_data, scenepath_id)->as_str);
|
|
||||||
evstring sceneid = evstring_refclone(evjs_get(project_desc.json_data, sceneid_id)->as_str);
|
|
||||||
|
|
||||||
GameScene scene = Scene->loadFromFile(scenepath);
|
|
||||||
Scene->setName(scene, sceneid);
|
|
||||||
|
|
||||||
evstring_free(sceneid);
|
|
||||||
evstring_free(sceneid_id);
|
|
||||||
evstring_free(scenepath);
|
|
||||||
evstring_free(scenepath_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
evstring activeScene = evstring_refclone(evjs_get(project_desc.json_data, "activeScene")->as_str);
|
|
||||||
Game->setActiveScene(Scene->getFromName(activeScene));
|
|
||||||
evstring_free(activeScene);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Renderer->setWindow((GenericHandle)State.window);
|
||||||
|
|
||||||
|
|
||||||
|
// Loading Scenes
|
||||||
|
double scene_count = evjs_get(project_desc.json_data, "scenes.len")->as_num;
|
||||||
|
for(int i = 0; i < (int)scene_count;i++) {
|
||||||
|
evstring scenepath_id = evstring_newfmt("scenes[%d].path", i);
|
||||||
|
evstring sceneid_id = evstring_newfmt("scenes[%d].id", i);
|
||||||
|
evstring scenepath = evstring_newFromView(evjs_get(project_desc.json_data, scenepath_id)->as_str);
|
||||||
|
evstring sceneid = evstring_newFromView(evjs_get(project_desc.json_data, sceneid_id)->as_str);
|
||||||
|
|
||||||
|
GameScene scene = Scene->loadFromFile(scenepath);
|
||||||
|
Scene->setName(scene, sceneid);
|
||||||
|
|
||||||
|
evstring_free(sceneid);
|
||||||
|
evstring_free(sceneid_id);
|
||||||
|
evstring_free(scenepath);
|
||||||
|
evstring_free(scenepath_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
evstring activeScene = evstring_newFromView(evjs_get(project_desc.json_data, "activeScene")->as_str);
|
||||||
|
Game->setActiveScene(Scene->getFromName(activeScene));
|
||||||
|
evstring_free(activeScene);
|
||||||
|
Asset->free(project_config);
|
||||||
|
|
||||||
evstring_free(project_dir);
|
evstring_free(project_dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user