From 87ed97408fc99e54bedfd1a4077fe12032be093d Mon Sep 17 00:00:00 2001 From: ecker Date: Sun, 10 Aug 2025 18:58:27 -0500 Subject: [PATCH] migrated (most of) ./ext/ into the core engine (because in reality I don't think it'd be easy to make them optional) --- Makefile | 8 ++-- client/client/ext.cpp | 6 +-- client/main.cpp | 33 ++++++++----- client/main.h | 2 + engine/inc/uf/engine/ext.h | 18 +++++++ engine/inc/uf/ext/ext.h | 9 ---- .../src/engine/ext}/audio/bgm/behavior.cpp | 0 .../src/engine/ext}/audio/bgm/behavior.h | 0 .../engine/ext}/audio/emitter/behavior.cpp | 0 .../src/engine/ext}/audio/emitter/behavior.h | 0 .../src/engine/ext}/baking/behavior.cpp | 0 .../src/engine/ext}/baking/behavior.h | 0 ext/main.cpp => engine/src/engine/ext/ext.cpp | 47 ++++++++++--------- .../src/engine/ext}/gui/behavior.cpp | 0 .../src/engine/ext}/gui/behavior.h | 0 .../src/engine/ext}/gui/glyph/behavior.cpp | 0 .../src/engine/ext}/gui/glyph/behavior.h | 0 .../src/engine/ext}/gui/manager/behavior.cpp | 2 +- .../src/engine/ext}/gui/manager/behavior.h | 2 +- .../src/engine/ext}/gui/payload.h | 0 .../src/engine/ext}/light/behavior.cpp | 0 .../src/engine/ext}/light/behavior.h | 0 .../src/engine/ext}/player/behavior.cpp | 6 +-- .../src/engine/ext}/player/behavior.h | 0 .../src/engine/ext}/player/model/behavior.cpp | 0 .../src/engine/ext}/player/model/behavior.h | 0 .../src/engine/ext}/raytrace/behavior.cpp | 16 +++---- .../src/engine/ext}/raytrace/behavior.h | 0 .../src/engine/ext}/region/behavior.cpp | 0 .../src/engine/ext}/region/behavior.h | 0 .../src/engine/ext}/region/chunk/behavior.cpp | 0 .../src/engine/ext}/region/chunk/behavior.h | 0 .../src/engine/ext}/scene/behavior.cpp | 21 +++++---- .../src/engine/ext}/scene/behavior.h | 2 +- .../src/engine/ext}/voxelizer/behavior.cpp | 10 ++-- .../src/engine/ext}/voxelizer/behavior.h | 0 engine/src/engine/graph/graph.cpp | 9 ++-- .../src/ext/vulkan/rendermodes/deferred.cpp | 14 +++--- .../ext/vulkan/rendermodes/rendertarget.cpp | 12 ++--- engine/src/utils/io/console.cpp | 9 ++-- ext/ext.h | 1 - ext/main.h | 7 --- 42 files changed, 127 insertions(+), 107 deletions(-) create mode 100644 engine/inc/uf/engine/ext.h rename {ext/behaviors => engine/src/engine/ext}/audio/bgm/behavior.cpp (100%) rename {ext/behaviors => engine/src/engine/ext}/audio/bgm/behavior.h (100%) rename {ext/behaviors => engine/src/engine/ext}/audio/emitter/behavior.cpp (100%) rename {ext/behaviors => engine/src/engine/ext}/audio/emitter/behavior.h (100%) rename {ext/behaviors => engine/src/engine/ext}/baking/behavior.cpp (100%) rename {ext/behaviors => engine/src/engine/ext}/baking/behavior.h (100%) rename ext/main.cpp => engine/src/engine/ext/ext.cpp (95%) rename {ext/behaviors => engine/src/engine/ext}/gui/behavior.cpp (100%) rename {ext/behaviors => engine/src/engine/ext}/gui/behavior.h (100%) rename {ext/behaviors => engine/src/engine/ext}/gui/glyph/behavior.cpp (100%) rename {ext/behaviors => engine/src/engine/ext}/gui/glyph/behavior.h (100%) rename {ext/behaviors => engine/src/engine/ext}/gui/manager/behavior.cpp (95%) rename {ext/behaviors => engine/src/engine/ext}/gui/manager/behavior.h (90%) rename {ext/behaviors => engine/src/engine/ext}/gui/payload.h (100%) rename {ext/behaviors => engine/src/engine/ext}/light/behavior.cpp (100%) rename {ext/behaviors => engine/src/engine/ext}/light/behavior.h (100%) rename {ext/behaviors => engine/src/engine/ext}/player/behavior.cpp (96%) rename {ext/behaviors => engine/src/engine/ext}/player/behavior.h (100%) rename {ext/behaviors => engine/src/engine/ext}/player/model/behavior.cpp (100%) rename {ext/behaviors => engine/src/engine/ext}/player/model/behavior.h (100%) rename {ext/behaviors => engine/src/engine/ext}/raytrace/behavior.cpp (93%) rename {ext/behaviors => engine/src/engine/ext}/raytrace/behavior.h (100%) rename {ext/behaviors => engine/src/engine/ext}/region/behavior.cpp (100%) rename {ext/behaviors => engine/src/engine/ext}/region/behavior.h (100%) rename {ext/behaviors => engine/src/engine/ext}/region/chunk/behavior.cpp (100%) rename {ext/behaviors => engine/src/engine/ext}/region/chunk/behavior.h (100%) rename {ext/behaviors => engine/src/engine/ext}/scene/behavior.cpp (96%) rename {ext/behaviors => engine/src/engine/ext}/scene/behavior.h (94%) rename {ext/behaviors => engine/src/engine/ext}/voxelizer/behavior.cpp (96%) rename {ext/behaviors => engine/src/engine/ext}/voxelizer/behavior.h (100%) delete mode 100644 ext/ext.h delete mode 100644 ext/main.h diff --git a/Makefile b/Makefile index b79a6f03..9ddac9eb 100644 --- a/Makefile +++ b/Makefile @@ -319,13 +319,13 @@ cdi: cd ./bin/dreamcast/; ./elf2cdi.sh $(TARGET_NAME) else -$(PREFIX): $(EX_DLL) $(TARGET) $(TARGET_SHADERS) +$(PREFIX): $(EX_DLL) $(EXT_EX_DLL) $(TARGET) $(TARGET_SHADERS) %.$(PREFIX).o: %.cpp $(CXX) $(FLAGS) $(INCS) -c $< -o $@ -$(EX_DLL): FLAGS += -DUF_EXPORTS -DEXT_EXPORTS -#$(EX_DLL): FLAGS += -DUF_EXPORTS +#$(EX_DLL): FLAGS += -DUF_EXPORTS -DEXT_EXPORTS +$(EX_DLL): FLAGS += -DUF_EXPORTS $(EX_DLL): $(OBJS_DLL) $(CXX) $(FLAGS) -shared -o $(EX_DLL) -Wl,--out-implib=$(IM_DLL) $(OBJS_DLL) $(LIBS) $(INCS) $(LINKS) cp $(ENGINE_LIB_DIR)/$(PREFIX_PATH)/$(BASE_DLL).$(TARGET_LIB_EXTENSION).a $(ENGINE_LIB_DIR)/$(PREFIX_PATH)/$(BASE_DLL).a @@ -341,7 +341,7 @@ $(EXT_EX_DLL): $(OBJS_EXT_DLL) cp $(ENGINE_LIB_DIR)/$(PREFIX_PATH)/$(BASE_EXT_DLL).$(TARGET_LIB_EXTENSION).a $(ENGINE_LIB_DIR)/$(PREFIX_PATH)/$(BASE_EXT_DLL).a $(TARGET): $(OBJS) - $(CXX) $(FLAGS) $(OBJS) $(LIBS) $(INCS) $(LINKS) -l$(LIB_NAME) -o $(TARGET) + $(CXX) $(FLAGS) $(OBJS) $(LIBS) $(INCS) $(LINKS) -l$(LIB_NAME) -l$(EXT_LIB_NAME) -o $(TARGET) endif %.spv: %.glsl diff --git a/client/client/ext.cpp b/client/client/ext.cpp index 3541a4c8..ec79eb53 100644 --- a/client/client/ext.cpp +++ b/client/client/ext.cpp @@ -19,9 +19,9 @@ uf::Serializer client::config; void client::initialize() { uf::renderer::device.window = &client::window; - ext::load(); + uf::load(); - client::config = ext::config; + client::config = uf::config; /* Initialize window */ { // Window size @@ -46,7 +46,7 @@ void client::initialize() { client::window.create( size, title ); #if !UF_ENV_DREAMCAST // Set refresh rate - ext::config["window"]["refresh rate"] = client::window.getRefreshRate(); + uf::config["window"]["refresh rate"] = client::window.getRefreshRate(); // Miscellaneous client::window.setVisible(client::config["window"]["visible"].as()); client::window.setCursorVisible(client::config["window"]["mouse"]["visible"].as()); diff --git a/client/main.cpp b/client/main.cpp index ec074d4c..3225cf3c 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -29,10 +29,15 @@ namespace { if ( client::terminated ) return; UF_MSG_INFO("Termination via std::atexit()!"); - ext::ready = false; + client::ready = false; + //ext::ready = false; + uf::ready = false; + client::terminated = true; - ext::terminate(); + + //ext::terminate(); + uf::terminate(); client::terminate(); } @@ -72,7 +77,7 @@ int main(int argc, char** argv){ for ( size_t i = 0; i < argc; ++i ) { char* c_str = argv[i]; std::string string(argv[i]); - ext::arguments.emplace_back(string); + uf::arguments.emplace_back(string); } std::atexit(::handlers::exit); @@ -80,10 +85,11 @@ int main(int argc, char** argv){ signal(SIGSEGV, ::handlers::segv); client::initialize(); - ext::initialize(); + //ext::initialize(); + uf::initialize(); // For Multithreaded initialization - while ( !client::ready || !ext::ready ) { + while ( !client::ready || !uf::ready ) { static uf::Timer timer(false); static double next = 1; if ( !timer.running() ) timer.start(); @@ -95,7 +101,7 @@ int main(int argc, char** argv){ } } - while ( client::ready && ext::ready ) { + while ( client::ready && uf::ready ) { #if UF_EXCEPTIONS try { #endif @@ -103,19 +109,23 @@ int main(int argc, char** argv){ // auto& thread = uf::thread::fetchWorker(); auto& thread = uf::thread::get("Render"); uf::thread::queue(thread, [&]{ - ext::render(); + //ext::render(); + uf::render(); client::render(); }); client::tick(); - ext::tick(); + //ext::tick(); + uf::tick(); uf::thread::wait( thread ); } else { client::tick(); - ext::tick(); + uf::tick(); + //ext::tick(); - ext::render(); + //ext::render(); + uf::render(); client::render(); } #if UF_EXCEPTIONS @@ -139,7 +149,8 @@ int main(int argc, char** argv){ if ( !client::terminated ) { client::terminated = true; UF_MSG_INFO("Natural termination!"); - ext::terminate(); + //ext::terminate(); + uf::terminate(); client::terminate(); } return 0; diff --git a/client/main.h b/client/main.h index 2d07cad7..0ce017a6 100644 --- a/client/main.h +++ b/client/main.h @@ -1,4 +1,6 @@ #pragma once + +#include #include #include diff --git a/engine/inc/uf/engine/ext.h b/engine/inc/uf/engine/ext.h new file mode 100644 index 00000000..69b4c82f --- /dev/null +++ b/engine/inc/uf/engine/ext.h @@ -0,0 +1,18 @@ +#include +#include +#include +#include + +namespace uf { + extern bool UF_API ready; + extern uf::stl::vector UF_API arguments; + extern uf::Serializer UF_API config; + + extern void UF_API load(); + extern void UF_API load( ext::json::Value& ); + extern void UF_API initialize(); + extern bool UF_API running(); + extern void UF_API tick(); + extern void UF_API render(); + extern void UF_API terminate(); +} \ No newline at end of file diff --git a/engine/inc/uf/ext/ext.h b/engine/inc/uf/ext/ext.h index 67c3360d..c337b962 100644 --- a/engine/inc/uf/ext/ext.h +++ b/engine/inc/uf/ext/ext.h @@ -36,17 +36,8 @@ #define EXT_API EXT_API_IMPORT #endif -#include -#include namespace ext { - extern bool EXT_API ready; - extern uf::stl::vector EXT_API arguments; - extern uf::Serializer EXT_API config; - - extern void EXT_API load(); - extern void EXT_API load( ext::json::Value& ); extern void EXT_API initialize(); - extern bool EXT_API running(); extern void EXT_API tick(); extern void EXT_API render(); extern void EXT_API terminate(); diff --git a/ext/behaviors/audio/bgm/behavior.cpp b/engine/src/engine/ext/audio/bgm/behavior.cpp similarity index 100% rename from ext/behaviors/audio/bgm/behavior.cpp rename to engine/src/engine/ext/audio/bgm/behavior.cpp diff --git a/ext/behaviors/audio/bgm/behavior.h b/engine/src/engine/ext/audio/bgm/behavior.h similarity index 100% rename from ext/behaviors/audio/bgm/behavior.h rename to engine/src/engine/ext/audio/bgm/behavior.h diff --git a/ext/behaviors/audio/emitter/behavior.cpp b/engine/src/engine/ext/audio/emitter/behavior.cpp similarity index 100% rename from ext/behaviors/audio/emitter/behavior.cpp rename to engine/src/engine/ext/audio/emitter/behavior.cpp diff --git a/ext/behaviors/audio/emitter/behavior.h b/engine/src/engine/ext/audio/emitter/behavior.h similarity index 100% rename from ext/behaviors/audio/emitter/behavior.h rename to engine/src/engine/ext/audio/emitter/behavior.h diff --git a/ext/behaviors/baking/behavior.cpp b/engine/src/engine/ext/baking/behavior.cpp similarity index 100% rename from ext/behaviors/baking/behavior.cpp rename to engine/src/engine/ext/baking/behavior.cpp diff --git a/ext/behaviors/baking/behavior.h b/engine/src/engine/ext/baking/behavior.h similarity index 100% rename from ext/behaviors/baking/behavior.h rename to engine/src/engine/ext/baking/behavior.h diff --git a/ext/main.cpp b/engine/src/engine/ext/ext.cpp similarity index 95% rename from ext/main.cpp rename to engine/src/engine/ext/ext.cpp index dc9e6d87..48572ad4 100644 --- a/ext/main.cpp +++ b/engine/src/engine/ext/ext.cpp @@ -1,9 +1,10 @@ -#include "main.h" -#include "ext.h" +#include #include #include #include +#include + #include #include @@ -45,9 +46,9 @@ #include #include -bool ext::ready = false; -uf::stl::vector ext::arguments; -uf::Serializer ext::config; +bool uf::ready = false; +uf::stl::vector uf::arguments; +uf::Serializer uf::config; namespace { struct { @@ -69,7 +70,7 @@ namespace { } total; } times; - auto& json = ext::config; + auto& json = uf::config; struct { struct { @@ -107,10 +108,10 @@ namespace { } sceneTransition; } -void EXT_API ext::load() { - ext::config.readFromFile(uf::io::root+"config.json"); +void UF_API uf::load() { + uf::config.readFromFile(uf::io::root+"config.json"); } -void EXT_API ext::load( ext::json::Value& json ) { +void UF_API uf::load( ext::json::Value& json ) { ::config.engine.gc.enabled = json["engine"]["debug"]["garbage collection"]["enabled"].as(::config.engine.gc.enabled); ::config.engine.gc.every = json["engine"]["debug"]["garbage collection"]["every"].as(::config.engine.gc.every); ::config.engine.gc.mode = json["engine"]["debug"]["garbage collection"]["mode"].as(::config.engine.gc.mode); @@ -306,7 +307,7 @@ void EXT_API ext::load( ext::json::Value& json ) { } } -void EXT_API ext::initialize() { +void UF_API uf::initialize() { /* Setup deferred Main thread */ { uf::thread::get(uf::thread::mainThreadName); } @@ -323,7 +324,7 @@ void EXT_API ext::initialize() { /* Arguments */ { bool modified = false; auto& arguments = ::json["arguments"]; - for ( auto& arg : ext::arguments ) { + for ( auto& arg : uf::arguments ) { // store raw argument int i = arguments.size(); arguments[i] = arg; @@ -354,10 +355,10 @@ void EXT_API ext::initialize() { if ( modified ) UF_MSG_DEBUG("New config: {}", ::json.serialize()); } /* Seed */ { - srand(time(NULL)); + std::srand(std::time(NULL)); } /* Open output file */ { - io.output.open(io.filenames.output); + ::io.output.open(::io.filenames.output); } /* Initialize timers */ { times.sys.start(); @@ -428,7 +429,7 @@ void EXT_API ext::initialize() { // metadata["system"]["config"] = ::json; } - ext::load( ::json ); + uf::load( ::json ); // renderer settings { @@ -724,7 +725,7 @@ void EXT_API ext::initialize() { if ( json["message"].is() ) { UF_MSG_DEBUG( "{}", json["message"].as() ); } - ext::ready = false; + uf::ready = false; }); } @@ -743,11 +744,11 @@ void EXT_API ext::initialize() { }); */ - ext::ready = true; + uf::ready = true; UF_MSG_INFO("EXT took {} seconds to initialize", times.sys.elapsed().asDouble()); } -void EXT_API ext::tick() { +void UF_API uf::tick() { #if 1 if ( ::sceneTransition.phase >= 0 ) { auto target = ::sceneTransition.payload["scene"].as(); @@ -925,7 +926,7 @@ void EXT_API ext::tick() { #endif #endif } -void EXT_API ext::render() { +void UF_API uf::render() { if ( uf::scene::scenes.empty() ) return; if ( ::sceneTransition.phase >= 0 ) { @@ -953,7 +954,7 @@ void EXT_API ext::render() { } #endif } -void EXT_API ext::terminate() { +void UF_API uf::terminate() { /* Kill threads */ { uf::thread::terminate(); } @@ -1025,9 +1026,9 @@ void EXT_API ext::terminate() { } /* Flush input buffer */ { - io.output << io.input << "\n"; - for ( const auto& str : uf::iostream.getHistory() ) io.output << str << "\n"; - io.output << "\nTerminated after " << times.sys.elapsed().asDouble() << " seconds" << "\n"; - io.output.close(); + ::io.output << ::io.input << "\n"; + for ( const auto& str : uf::iostream.getHistory() ) ::io.output << str << "\n"; + ::io.output << "\nTerminated after " << times.sys.elapsed().asDouble() << " seconds" << "\n"; + ::io.output.close(); } } \ No newline at end of file diff --git a/ext/behaviors/gui/behavior.cpp b/engine/src/engine/ext/gui/behavior.cpp similarity index 100% rename from ext/behaviors/gui/behavior.cpp rename to engine/src/engine/ext/gui/behavior.cpp diff --git a/ext/behaviors/gui/behavior.h b/engine/src/engine/ext/gui/behavior.h similarity index 100% rename from ext/behaviors/gui/behavior.h rename to engine/src/engine/ext/gui/behavior.h diff --git a/ext/behaviors/gui/glyph/behavior.cpp b/engine/src/engine/ext/gui/glyph/behavior.cpp similarity index 100% rename from ext/behaviors/gui/glyph/behavior.cpp rename to engine/src/engine/ext/gui/glyph/behavior.cpp diff --git a/ext/behaviors/gui/glyph/behavior.h b/engine/src/engine/ext/gui/glyph/behavior.h similarity index 100% rename from ext/behaviors/gui/glyph/behavior.h rename to engine/src/engine/ext/gui/glyph/behavior.h diff --git a/ext/behaviors/gui/manager/behavior.cpp b/engine/src/engine/ext/gui/manager/behavior.cpp similarity index 95% rename from ext/behaviors/gui/manager/behavior.cpp rename to engine/src/engine/ext/gui/manager/behavior.cpp index ba5394a4..4ccb3970 100644 --- a/ext/behaviors/gui/manager/behavior.cpp +++ b/engine/src/engine/ext/gui/manager/behavior.cpp @@ -32,7 +32,7 @@ void ext::GuiManagerBehavior::initialize( uf::Object& self ) { auto& metadata = this->getComponent(); auto& metadataJson = this->getComponent(); - metadata.size = uf::vector::decode( ext::config["window"]["size"], pod::Vector2f{} ); + metadata.size = uf::vector::decode( uf::config["window"]["size"], pod::Vector2f{} ); this->addHook( "window:Resized", [&](pod::payloads::windowResized& payload){ metadata.size = payload.window.size; } ); diff --git a/ext/behaviors/gui/manager/behavior.h b/engine/src/engine/ext/gui/manager/behavior.h similarity index 90% rename from ext/behaviors/gui/manager/behavior.h rename to engine/src/engine/ext/gui/manager/behavior.h index cfe5433d..607fc1fc 100644 --- a/ext/behaviors/gui/manager/behavior.h +++ b/engine/src/engine/ext/gui/manager/behavior.h @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include #include diff --git a/ext/behaviors/gui/payload.h b/engine/src/engine/ext/gui/payload.h similarity index 100% rename from ext/behaviors/gui/payload.h rename to engine/src/engine/ext/gui/payload.h diff --git a/ext/behaviors/light/behavior.cpp b/engine/src/engine/ext/light/behavior.cpp similarity index 100% rename from ext/behaviors/light/behavior.cpp rename to engine/src/engine/ext/light/behavior.cpp diff --git a/ext/behaviors/light/behavior.h b/engine/src/engine/ext/light/behavior.h similarity index 100% rename from ext/behaviors/light/behavior.h rename to engine/src/engine/ext/light/behavior.h diff --git a/ext/behaviors/player/behavior.cpp b/engine/src/engine/ext/player/behavior.cpp similarity index 96% rename from ext/behaviors/player/behavior.cpp rename to engine/src/engine/ext/player/behavior.cpp index bd398ef9..31140cb4 100644 --- a/ext/behaviors/player/behavior.cpp +++ b/engine/src/engine/ext/player/behavior.cpp @@ -64,7 +64,7 @@ void ext::PlayerBehavior::initialize( uf::Object& self ) { float raidou = (float) size.x / (float) size.y; if ( size.x == 0 || size.y == 0 ) { - size = uf::vector::decode( ext::config["window"]["size"], pod::Vector2ui{} ); + size = uf::vector::decode( uf::config["window"]["size"], pod::Vector2ui{} ); raidou = (float) size.x / (float) size.y; #if 0 this->addHook( "window:Resized", [&, fov, range](pod::payloads::windowResized& payload){ @@ -80,8 +80,8 @@ void ext::PlayerBehavior::initialize( uf::Object& self ) { } // sloppy - metadata.mouse.sensitivity = uf::vector::decode( ext::config["window"]["mouse"]["sensitivity"], metadata.mouse.sensitivity ); - metadata.mouse.smoothing = uf::vector::decode( ext::config["window"]["mouse"]["smoothing"], metadata.mouse.smoothing ); + metadata.mouse.sensitivity = uf::vector::decode( uf::config["window"]["mouse"]["sensitivity"], metadata.mouse.sensitivity ); + metadata.mouse.smoothing = uf::vector::decode( uf::config["window"]["mouse"]["smoothing"], metadata.mouse.smoothing ); this->addHook( "window:Mouse.CursorVisibility", [&](pod::payloads::windowMouseCursorVisibility& payload){ metadata.system.control = !payload.mouse.visible; diff --git a/ext/behaviors/player/behavior.h b/engine/src/engine/ext/player/behavior.h similarity index 100% rename from ext/behaviors/player/behavior.h rename to engine/src/engine/ext/player/behavior.h diff --git a/ext/behaviors/player/model/behavior.cpp b/engine/src/engine/ext/player/model/behavior.cpp similarity index 100% rename from ext/behaviors/player/model/behavior.cpp rename to engine/src/engine/ext/player/model/behavior.cpp diff --git a/ext/behaviors/player/model/behavior.h b/engine/src/engine/ext/player/model/behavior.h similarity index 100% rename from ext/behaviors/player/model/behavior.h rename to engine/src/engine/ext/player/model/behavior.h diff --git a/ext/behaviors/raytrace/behavior.cpp b/engine/src/engine/ext/raytrace/behavior.cpp similarity index 93% rename from ext/behaviors/raytrace/behavior.cpp rename to engine/src/engine/ext/raytrace/behavior.cpp index 087b3397..0f703ffc 100644 --- a/ext/behaviors/raytrace/behavior.cpp +++ b/engine/src/engine/ext/raytrace/behavior.cpp @@ -190,11 +190,11 @@ void ext::RayTraceSceneBehavior::tick( uf::Object& self ) { // auto& scene = uf::scene::getCurrentScene(); auto& sceneMetadataJson = scene.getComponent(); - size_t maxLights = ext::config["engine"]["scenes"]["lights"]["max"].as(512); - size_t maxTextures2D = ext::config["engine"]["scenes"]["textures"]["max"]["2D"].as(512); - size_t maxTexturesCube = ext::config["engine"]["scenes"]["textures"]["max"]["cube"].as(128); - size_t maxTextures3D = ext::config["engine"]["scenes"]["textures"]["max"]["3D"].as(1); - size_t maxCascades = ext::config["engine"]["scenes"]["vxgi"]["cascades"].as(16); + size_t maxLights = uf::config["engine"]["scenes"]["lights"]["max"].as(512); + size_t maxTextures2D = uf::config["engine"]["scenes"]["textures"]["max"]["2D"].as(512); + size_t maxTexturesCube = uf::config["engine"]["scenes"]["textures"]["max"]["cube"].as(128); + size_t maxTextures3D = uf::config["engine"]["scenes"]["textures"]["max"]["3D"].as(1); + size_t maxCascades = uf::config["engine"]["scenes"]["vxgi"]["cascades"].as(16); shader.buffers.emplace_back( storage.buffers.instance.alias() ); shader.buffers.emplace_back( storage.buffers.instanceAddresses.alias() ); @@ -332,7 +332,7 @@ void ext::RayTraceSceneBehavior::Metadata::serialize( uf::Object& self, uf::Seri void ext::RayTraceSceneBehavior::Metadata::deserialize( uf::Object& self, uf::Serializer& serializer ) { // merge vxgi settings with global settings { - const auto& globalSettings = ext::config["engine"]["scenes"]["rt"]; + const auto& globalSettings = uf::config["engine"]["scenes"]["rt"]; ext::json::forEach( globalSettings, [&]( const uf::stl::string& key, const ext::json::Value& value ){ if ( !ext::json::isNull( serializer["rt"][key] ) ) return; serializer["rt"][key] = value; @@ -350,8 +350,8 @@ void ext::RayTraceSceneBehavior::Metadata::deserialize( uf::Object& self, uf::Se /*this->*/renderer.scale = serializer["rt"]["size"].as(/*this->*/renderer.scale); } else if ( ext::json::isArray( serializer["rt"]["size"] ) ) { /*this->*/renderer.size = uf::vector::decode( serializer["rt"]["size"], /*this->*/renderer.size ); - } else if ( ext::config["engine"]["ext"]["vulkan"]["framebuffer"]["size"].is() ) { - /*this->*/renderer.scale = ext::config["engine"]["ext"]["vulkan"]["framebuffer"]["size"].as(/*this->*/renderer.scale); + } else if ( uf::config["engine"]["ext"]["vulkan"]["framebuffer"]["size"].is() ) { + /*this->*/renderer.scale = uf::config["engine"]["ext"]["vulkan"]["framebuffer"]["size"].as(/*this->*/renderer.scale); } /*this->*/renderer.full = serializer["rt"]["full"].as(/*this->*/renderer.full); diff --git a/ext/behaviors/raytrace/behavior.h b/engine/src/engine/ext/raytrace/behavior.h similarity index 100% rename from ext/behaviors/raytrace/behavior.h rename to engine/src/engine/ext/raytrace/behavior.h diff --git a/ext/behaviors/region/behavior.cpp b/engine/src/engine/ext/region/behavior.cpp similarity index 100% rename from ext/behaviors/region/behavior.cpp rename to engine/src/engine/ext/region/behavior.cpp diff --git a/ext/behaviors/region/behavior.h b/engine/src/engine/ext/region/behavior.h similarity index 100% rename from ext/behaviors/region/behavior.h rename to engine/src/engine/ext/region/behavior.h diff --git a/ext/behaviors/region/chunk/behavior.cpp b/engine/src/engine/ext/region/chunk/behavior.cpp similarity index 100% rename from ext/behaviors/region/chunk/behavior.cpp rename to engine/src/engine/ext/region/chunk/behavior.cpp diff --git a/ext/behaviors/region/chunk/behavior.h b/engine/src/engine/ext/region/chunk/behavior.h similarity index 100% rename from ext/behaviors/region/chunk/behavior.h rename to engine/src/engine/ext/region/chunk/behavior.h diff --git a/ext/behaviors/scene/behavior.cpp b/engine/src/engine/ext/scene/behavior.cpp similarity index 96% rename from ext/behaviors/scene/behavior.cpp rename to engine/src/engine/ext/scene/behavior.cpp index f4dfffa1..a37ad502 100644 --- a/ext/behaviors/scene/behavior.cpp +++ b/engine/src/engine/ext/scene/behavior.cpp @@ -32,7 +32,10 @@ #include "../light/behavior.h" #include "../voxelizer/behavior.h" #include "../raytrace/behavior.h" -#include "../../ext.h" + +#include + +//#include "../../ext.h" // #include "../../gui/gui.h" UF_BEHAVIOR_REGISTER_CPP(ext::ExtSceneBehavior) @@ -50,7 +53,7 @@ void ext::ExtSceneBehavior::initialize( uf::Object& self ) { this->addHook( "system:Quit.%UID%", [&](ext::json::Value& payload){ uf::renderer::settings::experimental::dedicatedThread = false; - ext::ready = false; + uf::ready = false; }); this->addHook( "menu:Open", [&](ext::json::Value& payload){ @@ -790,7 +793,7 @@ void ext::ExtSceneBehavior::Metadata::serialize( uf::Object& self, uf::Serialize void ext::ExtSceneBehavior::Metadata::deserialize( uf::Object& self, uf::Serializer& serializer ) { // merge light settings with global settings { - const auto& globalSettings = ext::config["engine"]["scenes"]["lights"]; + const auto& globalSettings = uf::config["engine"]["scenes"]["lights"]; ext::json::forEach( globalSettings, [&]( const uf::stl::string& key, const ext::json::Value& value ){ if ( !ext::json::isNull( serializer["light"][key] ) ) return; serializer["light"][key] = value; @@ -798,7 +801,7 @@ void ext::ExtSceneBehavior::Metadata::deserialize( uf::Object& self, uf::Seriali } // merge bloom settings with global settings { - const auto& globalSettings = ext::config["engine"]["scenes"]["lights"]["bloom"]; + const auto& globalSettings = uf::config["engine"]["scenes"]["lights"]["bloom"]; ext::json::forEach( globalSettings, [&]( const uf::stl::string& key, const ext::json::Value& value ){ if ( !ext::json::isNull( serializer["light"]["bloom"][key] ) ) return; serializer["light"]["bloom"][key] = value; @@ -806,7 +809,7 @@ void ext::ExtSceneBehavior::Metadata::deserialize( uf::Object& self, uf::Seriali } // merge shadows settings with global settings { - const auto& globalSettings = ext::config["engine"]["scenes"]["lights"]["shadows"]; + const auto& globalSettings = uf::config["engine"]["scenes"]["lights"]["shadows"]; ext::json::forEach( globalSettings, [&]( const uf::stl::string& key, const ext::json::Value& value ){ if ( !ext::json::isNull( serializer["light"]["shadows"][key] ) ) return; serializer["light"]["shadows"][key] = value; @@ -814,16 +817,16 @@ void ext::ExtSceneBehavior::Metadata::deserialize( uf::Object& self, uf::Seriali } // merge fog settings with global settings { - const auto& globalSettings = ext::config["engine"]["scenes"]["lights"]["fog"]; + const auto& globalSettings = uf::config["engine"]["scenes"]["lights"]["fog"]; ext::json::forEach( globalSettings, [&]( const uf::stl::string& key, const ext::json::Value& value ){ if ( !ext::json::isNull( serializer["light"]["fog"][key] ) ) return; serializer["light"]["fog"][key] = value; } ); } - /*this->*/max.textures2D = ext::config["engine"]["scenes"]["textures"]["max"]["2D"].as(/*this->*/max.textures2D); - /*this->*/max.texturesCube = ext::config["engine"]["scenes"]["textures"]["max"]["cube"].as(/*this->*/max.texturesCube); - /*this->*/max.textures3D = ext::config["engine"]["scenes"]["textures"]["max"]["3D"].as(/*this->*/max.textures3D); + /*this->*/max.textures2D = uf::config["engine"]["scenes"]["textures"]["max"]["2D"].as(/*this->*/max.textures2D); + /*this->*/max.texturesCube = uf::config["engine"]["scenes"]["textures"]["max"]["cube"].as(/*this->*/max.texturesCube); + /*this->*/max.textures3D = uf::config["engine"]["scenes"]["textures"]["max"]["3D"].as(/*this->*/max.textures3D); /*this->*/shadow.enabled = serializer["light"]["shadows"]["enabled"].as(/*this->*/shadow.enabled); /*this->*/shadow.samples = serializer["light"]["shadows"]["samples"].as(/*this->*/shadow.samples); diff --git a/ext/behaviors/scene/behavior.h b/engine/src/engine/ext/scene/behavior.h similarity index 94% rename from ext/behaviors/scene/behavior.h rename to engine/src/engine/ext/scene/behavior.h index 692d9d37..ff85da89 100644 --- a/ext/behaviors/scene/behavior.h +++ b/engine/src/engine/ext/scene/behavior.h @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include #include #include diff --git a/ext/behaviors/voxelizer/behavior.cpp b/engine/src/engine/ext/voxelizer/behavior.cpp similarity index 96% rename from ext/behaviors/voxelizer/behavior.cpp rename to engine/src/engine/ext/voxelizer/behavior.cpp index 4986edbd..609677d5 100644 --- a/ext/behaviors/voxelizer/behavior.cpp +++ b/engine/src/engine/ext/voxelizer/behavior.cpp @@ -16,7 +16,7 @@ #include "../light/behavior.h" #include "../scene/behavior.h" -#include +#include UF_BEHAVIOR_REGISTER_CPP(ext::VoxelizerSceneBehavior) @@ -112,9 +112,9 @@ void ext::VoxelizerSceneBehavior::initialize( uf::Object& self ) { renderMode.blitter.descriptor.bind.point = VK_PIPELINE_BIND_POINT_COMPUTE; renderMode.blitter.process = true; - size_t maxTextures2D = ext::config["engine"]["scenes"]["textures"]["max"]["2D"].as(512); - size_t maxTexturesCube = ext::config["engine"]["scenes"]["textures"]["max"]["cube"].as(128); - size_t maxTextures3D = ext::config["engine"]["scenes"]["textures"]["max"]["3D"].as(1); + size_t maxTextures2D = uf::config["engine"]["scenes"]["textures"]["max"]["2D"].as(512); + size_t maxTexturesCube = uf::config["engine"]["scenes"]["textures"]["max"]["cube"].as(128); + size_t maxTextures3D = uf::config["engine"]["scenes"]["textures"]["max"]["3D"].as(1); for ( size_t i = 0; i < maxTextures2D; ++i ) renderMode.blitter.material.textures.emplace_back().aliasTexture(uf::renderer::Texture2D::empty); for ( size_t i = 0; i < maxTexturesCube; ++i ) renderMode.blitter.material.textures.emplace_back().aliasTexture(uf::renderer::TextureCube::empty); @@ -318,7 +318,7 @@ void ext::VoxelizerSceneBehavior::Metadata::serialize( uf::Object& self, uf::Ser void ext::VoxelizerSceneBehavior::Metadata::deserialize( uf::Object& self, uf::Serializer& serializer ) { // merge vxgi settings with global settings { - const auto& globalSettings = ext::config["engine"]["scenes"]["vxgi"]; + const auto& globalSettings = uf::config["engine"]["scenes"]["vxgi"]; ext::json::forEach( globalSettings, [&]( const uf::stl::string& key, const ext::json::Value& value ){ if ( !ext::json::isNull( serializer["vxgi"][key] ) ) return; serializer["vxgi"][key] = value; diff --git a/ext/behaviors/voxelizer/behavior.h b/engine/src/engine/ext/voxelizer/behavior.h similarity index 100% rename from ext/behaviors/voxelizer/behavior.h rename to engine/src/engine/ext/voxelizer/behavior.h diff --git a/engine/src/engine/graph/graph.cpp b/engine/src/engine/graph/graph.cpp index 2d47f90a..06bed41c 100644 --- a/engine/src/engine/graph/graph.cpp +++ b/engine/src/engine/graph/graph.cpp @@ -10,7 +10,8 @@ #include #include #include -#include + +#include #if UF_ENV_DREAMCAST #define UF_DEBUG_TIMER_MULTITRACE_START(...) UF_TIMER_MULTITRACE_START(__VA_ARGS__) @@ -440,9 +441,9 @@ void uf::graph::initializeGraphics( pod::Graph& graph, uf::Object& entity, uf::M } { - size_t maxTextures = ext::config["engine"]["scenes"]["textures"]["max"]["2D"].as(512); - size_t maxCubemaps = ext::config["engine"]["scenes"]["textures"]["max"]["cube"].as(128); - size_t maxTextures3D = ext::config["engine"]["scenes"]["textures"]["max"]["3D"].as(128); + size_t maxTextures = uf::config["engine"]["scenes"]["textures"]["max"]["2D"].as(512); + size_t maxCubemaps = uf::config["engine"]["scenes"]["textures"]["max"]["cube"].as(128); + size_t maxTextures3D = uf::config["engine"]["scenes"]["textures"]["max"]["3D"].as(128); auto& shader = graphic.material.getShader("fragment", "baking"); shader.setSpecializationConstants({ diff --git a/engine/src/ext/vulkan/rendermodes/deferred.cpp b/engine/src/ext/vulkan/rendermodes/deferred.cpp index c43d91b9..b8af4468 100644 --- a/engine/src/ext/vulkan/rendermodes/deferred.cpp +++ b/engine/src/ext/vulkan/rendermodes/deferred.cpp @@ -13,7 +13,7 @@ #include #include -#include +#include #define BARYCENTRIC 1 #if BARYCENTRIC @@ -270,11 +270,11 @@ void ext::vulkan::DeferredRenderMode::initialize( Device& device ) { auto& shader = blitter.material.getShader(DEFERRED_MODE, "deferred"); - size_t maxLights = ext::config["engine"]["scenes"]["lights"]["max"].as(512); - size_t maxTextures2D = ext::config["engine"]["scenes"]["textures"]["max"]["2D"].as(512); - size_t maxTexturesCube = ext::config["engine"]["scenes"]["textures"]["max"]["cube"].as(128); - size_t maxTextures3D = ext::config["engine"]["scenes"]["textures"]["max"]["3D"].as(128); - size_t maxCascades = ext::config["engine"]["scenes"]["vxgi"]["cascades"].as(16); + size_t maxLights = uf::config["engine"]["scenes"]["lights"]["max"].as(512); + size_t maxTextures2D = uf::config["engine"]["scenes"]["textures"]["max"]["2D"].as(512); + size_t maxTexturesCube = uf::config["engine"]["scenes"]["textures"]["max"]["cube"].as(128); + size_t maxTextures3D = uf::config["engine"]["scenes"]["textures"]["max"]["3D"].as(128); + size_t maxCascades = uf::config["engine"]["scenes"]["vxgi"]["cascades"].as(16); shader.setSpecializationConstants({ { "TEXTURES", maxTextures2D }, @@ -687,7 +687,7 @@ void ext::vulkan::DeferredRenderMode::createCommandBuffers( const uf::stl::vecto } } } - bool shouldRecord = true; // ( settings::pipelines::rt && !ext::config["engine"]["scenes"]["rt"]["full"].as() ) || !settings::pipelines::rt; + bool shouldRecord = true; // ( settings::pipelines::rt && !uf::config["engine"]["scenes"]["rt"]["full"].as() ) || !settings::pipelines::rt; for (size_t i = 0; i < commands.size(); ++i) { auto commandBuffer = commands[i]; VK_CHECK_RESULT( vkBeginCommandBuffer(commandBuffer, &cmdBufInfo) ); diff --git a/engine/src/ext/vulkan/rendermodes/rendertarget.cpp b/engine/src/ext/vulkan/rendermodes/rendertarget.cpp index 35c06e57..df36881c 100644 --- a/engine/src/ext/vulkan/rendermodes/rendertarget.cpp +++ b/engine/src/ext/vulkan/rendermodes/rendertarget.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include const uf::stl::string ext::vulkan::RenderTargetRenderMode::getType() const { return "RenderTarget"; @@ -322,11 +322,11 @@ void ext::vulkan::RenderTargetRenderMode::initialize( Device& device ) { auto& shader = blitter.material.getShader("compute"); - size_t maxLights = ext::config["engine"]["scenes"]["lights"]["max"].as(512); - size_t maxTextures2D = ext::config["engine"]["scenes"]["textures"]["max"]["2D"].as(512); - size_t maxTexturesCube = ext::config["engine"]["scenes"]["textures"]["max"]["cube"].as(128); - size_t maxTextures3D = ext::config["engine"]["scenes"]["textures"]["max"]["3D"].as(1); - size_t maxCascades = ext::config["engine"]["scenes"]["vxgi"]["cascades"].as(16); + size_t maxLights = uf::config["engine"]["scenes"]["lights"]["max"].as(512); + size_t maxTextures2D = uf::config["engine"]["scenes"]["textures"]["max"]["2D"].as(512); + size_t maxTexturesCube = uf::config["engine"]["scenes"]["textures"]["max"]["cube"].as(128); + size_t maxTextures3D = uf::config["engine"]["scenes"]["textures"]["max"]["3D"].as(1); + size_t maxCascades = uf::config["engine"]["scenes"]["vxgi"]["cascades"].as(16); shader.setSpecializationConstants({ { "TEXTURES", maxTextures2D }, diff --git a/engine/src/utils/io/console.cpp b/engine/src/utils/io/console.cpp index 723e6ac9..d94c41f0 100644 --- a/engine/src/utils/io/console.cpp +++ b/engine/src/utils/io/console.cpp @@ -1,7 +1,8 @@ #include #include #include -#include + +#include #include #include @@ -68,7 +69,7 @@ void uf::console::initialize() { uf::console::registerCommand("json", "Modifies the gamestate by setting a JSON value", [&]( const uf::stl::string& arguments )->uf::stl::string{ auto match = uf::string::match( arguments, "/^(.+?) *= *(.+?)$/" ); if ( match.empty() ) { - uf::Serializer target = ext::config; + uf::Serializer target = uf::config; return ext::json::encode( arguments == "" ? target : target.path( arguments ), { .pretty = true } ); @@ -80,8 +81,8 @@ void uf::console::initialize() { uf::Serializer value; value.deserialize(valueString); - ext::config.path(keyString) = value; - ext::load( ext::config ); + uf::config.path(keyString) = value; + uf::load( uf::config ); return "Value `" + keyString + "` set to `" + ext::json::encode( value ) + "`"; }); diff --git a/ext/ext.h b/ext/ext.h deleted file mode 100644 index 7b9637ef..00000000 --- a/ext/ext.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once \ No newline at end of file diff --git a/ext/main.h b/ext/main.h deleted file mode 100644 index 576267ba..00000000 --- a/ext/main.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -#include - -namespace ext { - -} \ No newline at end of file