Compare commits

1 Commits
v0.3 ... master

Author SHA1 Message Date
a514a10621 Minor changes 2026-03-26 13:53:51 +02:00
4 changed files with 69 additions and 51 deletions

View 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'

View 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'

View File

@@ -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',
], ],
) )

View File

@@ -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,10 +106,7 @@ 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"),
Asset->free(project_config))
{
JSONAsset project_desc = JSONLoader->loadAsset(project_config); JSONAsset project_desc = JSONLoader->loadAsset(project_config);
// Loading filesystem mounts // Loading filesystem mounts
@@ -119,11 +115,11 @@ load_project()
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);
@@ -142,8 +138,8 @@ load_project()
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);
@@ -154,10 +150,10 @@ load_project()
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);
evstring_free(project_dir); evstring_free(project_dir);
} }