From cc2076dcaa2c7f1b54ff2eba45022f4d7d20dbac Mon Sep 17 00:00:00 2001 From: Robear Selwans Date: Sat, 11 Dec 2021 19:22:33 +0200 Subject: [PATCH] Back to where it all started Signed-off-by: Robear Selwans --- meson.build | 52 ++++---- src/main.c | 332 ++++++++++++++++++++++++++-------------------------- 2 files changed, 193 insertions(+), 191 deletions(-) diff --git a/meson.build b/meson.build index 7c1df0a..30baaf0 100755 --- a/meson.build +++ b/meson.build @@ -2,7 +2,7 @@ project('evol-sandbox', 'c', version : '0.1', default_options : [ 'warning_level=3', - 'c_std=gnu11', + 'c_std=c11', ], ) @@ -15,30 +15,32 @@ cc = meson.get_compiler('c') compiler_name = cc.get_id() if compiler_name == 'gcc' sandbox_args += '-fms-extensions' + sandbox_args += '-Wall' + sandbox_args += '-Werror' endif # The subproject's sole purpose is to make sure that the modules build -subproject('evmod_glfw') -subproject('evmod_ecs') -subproject('evmod_physics') -subproject('evmod_script') -subproject('evmod_assets') -subproject('evmod_renderer') -subproject('evmod_game') +# subproject('evmod_glfw') +# subproject('evmod_ecs') +# subproject('evmod_physics') +# subproject('evmod_script') +# subproject('evmod_assets') +# subproject('evmod_renderer') +# subproject('evmod_game') -evmodglfw_dep = dependency('evmod_glfw') -evmodecs_dep = dependency('evmod_ecs') -evmodphysics_dep = dependency('evmod_physics') -evmodscript_dep = dependency('evmod_script') -evmodgame_dep = dependency('evmod_game') -evmodrenderer_dep = dependency('evmod_renderer') -evmod_assets_dep = dependency('evmod_assets') +# evmodglfw_dep = dependency('evmod_glfw') +# evmodecs_dep = dependency('evmod_ecs') +# evmodphysics_dep = dependency('evmod_physics') +# evmodscript_dep = dependency('evmod_script') +# evmodgame_dep = dependency('evmod_game') +# evmodrenderer_dep = dependency('evmod_renderer') +# evmod_assets_dep = dependency('evmod_assets') -subproject('project_assets') +# subproject('project_assets') # Setup build directory -subdir('buildscripts') +# subdir('buildscripts') sandbox_exe = executable( 'sandbox', @@ -46,15 +48,15 @@ sandbox_exe = executable( dependencies: [ evol_dep, - evmodglfw_dep, - evmodecs_dep, - evmodphysics_dep, - evmodscript_dep, - evmodgame_dep, - evmodrenderer_dep, - evmod_assets_dep, + # evmodglfw_dep, + # evmodecs_dep, + # evmodphysics_dep, + # evmodscript_dep, + # evmodgame_dep, + # evmodrenderer_dep, + # evmod_assets_dep, ], - install : true, + # install : true, c_args: sandbox_args, ) diff --git a/src/main.c b/src/main.c index 697f056..96b8c18 100755 --- a/src/main.c +++ b/src/main.c @@ -1,217 +1,217 @@ -#include -#include +/* #include */ +/* #include */ #include -#include -#include -#include -#include +/* #include */ +/* #include */ +/* #include */ +/* #include */ -#define IMPORT_MODULE evmod_glfw -#include IMPORT_MODULE_H -#define IMPORT_MODULE evmod_assets -#include IMPORT_MODULE_H -#define IMPORT_MODULE evmod_game -#include IMPORT_MODULE_H -#define IMPORT_MODULE evmod_renderer -#include IMPORT_MODULE_H +/* #define IMPORT_MODULE evmod_glfw */ +/* #include IMPORT_MODULE_H */ +/* #define IMPORT_MODULE evmod_assets */ +/* #include IMPORT_MODULE_H */ +/* #define IMPORT_MODULE evmod_game */ +/* #include IMPORT_MODULE_H */ +/* #define IMPORT_MODULE evmod_renderer */ +/* #include IMPORT_MODULE_H */ -// Close window when Q is pressed -DECLARE_EVENT_LISTENER(keyPressedListener, (KeyPressedEvent *event) { - if(event->keyCode == 81) // tests if Q was pressed - Window->setShouldClose(event->handle, true); +/* // Close window when Q is pressed */ +/* DECLARE_EVENT_LISTENER(keyPressedListener, (KeyPressedEvent *event) { */ +/* if(event->keyCode == 81) // tests if Q was pressed */ +/* Window->setShouldClose(event->handle, true); */ - /* else if(event->keyCode == 49) // Numrow 1 */ - /* else if(event->keyCode == 50) // Numrow 2 */ - /* else if(event->keyCode == 45) // Numrow - */ - /* else if(event->keyCode == 61) // Numrow = */ -}) +/* /1* else if(event->keyCode == 49) // Numrow 1 *1/ */ +/* /1* else if(event->keyCode == 50) // Numrow 2 *1/ */ +/* /1* else if(event->keyCode == 45) // Numrow - *1/ */ +/* /1* else if(event->keyCode == 61) // Numrow = *1/ */ +/* }) */ -struct { - evolmodule_t game_mod; - evolmodule_t asset_mod; - evolmodule_t window_mod; - evolmodule_t input_mod; - evolmodule_t renderer_mod; +/* struct { */ +/* evolmodule_t game_mod; */ +/* evolmodule_t asset_mod; */ +/* evolmodule_t window_mod; */ +/* evolmodule_t input_mod; */ +/* evolmodule_t renderer_mod; */ - WindowHandle window; +/* WindowHandle window; */ -} State; +/* } State; */ -void -project_changed_cb() -{ - evol_unloadmodule(State.renderer_mod); - Game->reload(); - State.renderer_mod = evol_loadmodule("renderer"); - Renderer->setWindow((GenericHandle)State.window); +/* void */ +/* project_changed_cb() */ +/* { */ +/* evol_unloadmodule(State.renderer_mod); */ +/* Game->reload(); */ +/* State.renderer_mod = evol_loadmodule("renderer"); */ +/* Renderer->setWindow((GenericHandle)State.window); */ - EV_DEFER( - AssetHandle project_config = Asset->load("project://game.proj"), - Asset->free(project_config)) - { - JSONAsset project_desc = JSONLoader->loadAsset(project_config); +/* EV_DEFER( */ +/* AssetHandle project_config = Asset->load("project://game.proj"), */ +/* Asset->free(project_config)) */ +/* { */ +/* JSONAsset project_desc = JSONLoader->loadAsset(project_config); */ - // 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); +/* // 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); +/* GameScene scene = Scene->loadFromFile(scenepath); */ +/* Scene->setName(scene, sceneid); */ - evstring_free(sceneid); - evstring_free(sceneid_id); - evstring_free(scenepath); - evstring_free(scenepath_id); - } +/* 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); - } -} +/* evstring activeScene = evstring_refclone(evjs_get(project_desc.json_data, "activeScene")->as_str); */ +/* Game->setActiveScene(Scene->getFromName(activeScene)); */ +/* evstring_free(activeScene); */ +/* } */ +/* } */ -void -load_project() -{ - State.game_mod = evol_loadmodule("game"); DEBUG_ASSERT(State.game_mod); - State.window_mod = evol_loadmodule("window"); DEBUG_ASSERT(State.window_mod); - State.input_mod = evol_loadmodule("input"); DEBUG_ASSERT(State.input_mod); - State.renderer_mod = evol_loadmodule("renderer"); DEBUG_ASSERT(State.renderer_mod); +/* void */ +/* load_project() */ +/* { */ +/* State.game_mod = evol_loadmodule("game"); DEBUG_ASSERT(State.game_mod); */ +/* State.window_mod = evol_loadmodule("window"); DEBUG_ASSERT(State.window_mod); */ +/* State.input_mod = evol_loadmodule("input"); DEBUG_ASSERT(State.input_mod); */ +/* State.renderer_mod = evol_loadmodule("renderer"); DEBUG_ASSERT(State.renderer_mod); */ - imports(State.game_mod , (Game, Object, Camera, Scene)) - imports(State.window_mod , (Window)) - imports(State.input_mod , (Input)) - imports(State.renderer_mod, (Renderer)) - IMPORT_EVENTS_evmod_glfw(State.window_mod); +/* imports(State.game_mod , (Game, Object, Camera, Scene)) */ +/* imports(State.window_mod , (Window)) */ +/* imports(State.input_mod , (Input)) */ +/* imports(State.renderer_mod, (Renderer)) */ +/* IMPORT_EVENTS_evmod_glfw(State.window_mod); */ - U32 width = 1920; - U32 height = 1050; +/* U32 width = 1920; */ +/* U32 height = 1050; */ - State.window = Window->create(width, height, "Main Window"); - Input->setActiveWindow(State.window); +/* State.window = Window->create(width, height, "Main Window"); */ +/* Input->setActiveWindow(State.window); */ - ACTIVATE_EVENT_LISTENER(keyPressedListener, KeyPressedEvent); - evstring project_dir = NULL; - EvConfigLoaderResult project_dir_get_res = ev_configloader_get("project_dir", EV_TYPE_NAME(STRING), &project_dir); - if(project_dir_get_res != EV_CONFIGLOADER_SUCCESS) { - ev_log_error("[sandbox] Could not get project_dir from config file. Error: %s", EvConfigLoaderResultStrings[project_dir_get_res]); - } +/* ACTIVATE_EVENT_LISTENER(keyPressedListener, KeyPressedEvent); */ +/* evstring project_dir = NULL; */ +/* EvConfigLoaderResult project_dir_get_res = ev_configloader_get("project_dir", EV_TYPE_NAME(STRING), &project_dir); */ +/* if(project_dir_get_res != EV_CONFIGLOADER_SUCCESS) { */ +/* ev_log_error("[sandbox] Could not get project_dir from config file. Error: %s", EvConfigLoaderResultStrings[project_dir_get_res]); */ +/* } */ - assert(project_dir); +/* assert(project_dir); */ - evstring project_mountpoint = evstring_new("project"); - AssetManager->mount(&project_dir, &project_mountpoint); - evstring_free(project_mountpoint); +/* evstring project_mountpoint = evstring_new("project"); */ +/* AssetManager->mount(&project_dir, &project_mountpoint); */ +/* evstring_free(project_mountpoint); */ - EV_DEFER( - AssetHandle project_config = Asset->load("project://game.proj"), - Asset->free(project_config)) - { - JSONAsset project_desc = JSONLoader->loadAsset(project_config); +/* EV_DEFER( */ +/* AssetHandle project_config = Asset->load("project://game.proj"), */ +/* Asset->free(project_config)) */ +/* { */ +/* JSONAsset project_desc = JSONLoader->loadAsset(project_config); */ - // Loading filesystem mounts - double mounts_count = evjs_get(project_desc.json_data, "mounts.len")->as_num; - for(int i = 0; i < (int)mounts_count;i++) { - evstring path_id = evstring_newfmt("mounts[%d].path", i); - evstring mountpoint_id = evstring_newfmt("mounts[%d].mountpoint", i); +/* // Loading filesystem mounts */ +/* double mounts_count = evjs_get(project_desc.json_data, "mounts.len")->as_num; */ +/* for(int i = 0; i < (int)mounts_count;i++) { */ +/* evstring path_id = evstring_newfmt("mounts[%d].path", i); */ +/* evstring mountpoint_id = evstring_newfmt("mounts[%d].mountpoint", i); */ - evstr_ref 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; +/* evstr_ref 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 path = evstring_newfmt("%s/%.*s", project_dir, path_ref.len, path_ref.data + path_ref.offset); - evstring mountpoint = evstring_refclone(mountpoint_ref); +/* evstring path = evstring_newfmt("%s/%.*s", project_dir, path_ref.len, path_ref.data + path_ref.offset); */ +/* evstring mountpoint = evstring_refclone(mountpoint_ref); */ - AssetManager->mount(&path, &mountpoint); +/* AssetManager->mount(&path, &mountpoint); */ - evstring_free(mountpoint); - evstring_free(path); +/* evstring_free(mountpoint); */ +/* evstring_free(path); */ - evstring_free(mountpoint_id); - evstring_free(path_id); - } +/* evstring_free(mountpoint_id); */ +/* evstring_free(path_id); */ +/* } */ - Renderer->setWindow((GenericHandle)State.window); +/* 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); +/* // 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); +/* GameScene scene = Scene->loadFromFile(scenepath); */ +/* Scene->setName(scene, sceneid); */ - evstring_free(sceneid); - evstring_free(sceneid_id); - evstring_free(scenepath); - evstring_free(scenepath_id); - } +/* 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); - } +/* evstring activeScene = evstring_refclone(evjs_get(project_desc.json_data, "activeScene")->as_str); */ +/* Game->setActiveScene(Scene->getFromName(activeScene)); */ +/* evstring_free(activeScene); */ +/* } */ - evstring_free(project_dir); -} +/* evstring_free(project_dir); */ +/* } */ -void -unload_project() -{ - evol_unloadmodule(State.renderer_mod); - evol_unloadmodule(State.game_mod); - evol_unloadmodule(State.input_mod); - evol_unloadmodule(State.window_mod); -} +/* void */ +/* unload_project() */ +/* { */ +/* evol_unloadmodule(State.renderer_mod); */ +/* evol_unloadmodule(State.game_mod); */ +/* evol_unloadmodule(State.input_mod); */ +/* evol_unloadmodule(State.window_mod); */ +/* } */ int main(int argc, char **argv) { - evolengine_t *engine = evol_create(); - evol_parse_args(engine, argc, argv); - evol_init(engine); + EV_UNUSED_PARAMS(argc, argv); + /* evolengine_t *engine = evol_create(); */ +/* evol_parse_args(engine, argc, argv); */ +/* evol_init(engine); */ - State.asset_mod = evol_loadmodule("assetmanager"); DEBUG_ASSERT(State.asset_mod); - imports(State.asset_mod , (AssetManager, Asset, TextLoader, JSONLoader, ShaderLoader)) - load_project(); +/* State.asset_mod = evol_loadmodule("assetmanager"); DEBUG_ASSERT(State.asset_mod); */ +/* imports(State.asset_mod , (AssetManager, Asset, TextLoader, JSONLoader, ShaderLoader)) */ +/* load_project(); */ - AssetManager->watchRecursively("project:/", project_changed_cb); +/* AssetManager->watchRecursively("project:/", project_changed_cb); */ - rmt_SetCurrentThreadName("Main Thread"); +/* rmt_SetCurrentThreadName("Main Thread"); */ - U32 result = 0; - while(result == 0) { - ev_ProfileCPU(WindowUpdate, 0) { - result |= Window->update(State.window); - } +/* U32 result = 0; */ +/* while(result == 0) { */ +/* ev_ProfileCPU(WindowUpdate, 0) { */ +/* result |= Window->update(State.window); */ +/* } */ - ev_ProfileCPU(EventSystemProgress, 0) { - result |= EventSystem.progress(); - } +/* ev_ProfileCPU(EventSystemProgress, 0) { */ +/* result |= EventSystem.progress(); */ +/* } */ - ev_ProfileCPU(GameProgress, 0) { - result |= Game->progress(0.01666667f); - } +/* ev_ProfileCPU(GameProgress, 0) { */ +/* result |= Game->progress(0.01666667f); */ +/* } */ - ev_ProfileCPU(GameProgress, 0) { - AssetManager->update(); - } +/* ev_ProfileCPU(GameProgress, 0) { */ +/* AssetManager->update(); */ +/* } */ - Renderer->run(); - /* sleep_ms(17); */ - } +/* /1* sleep_ms(17); *1/ */ +/* } */ - unload_project(); - evol_unloadmodule(State.asset_mod); +/* unload_project(); */ +/* evol_unloadmodule(State.asset_mod); */ - evol_deinit(engine); - evol_destroy(engine); +/* evol_deinit(engine); */ + /* evol_destroy(engine); */ return 0; }