From 14928de34dcc830112ba6362ebbf32ee80ba4f6b Mon Sep 17 00:00:00 2001 From: Silverlan Date: Mon, 11 Nov 2024 12:03:17 +0100 Subject: [PATCH] feat: render api extensions can now be defined in "cfg/render_api.udm" --- build_scripts/build.py | 2 +- build_scripts/scripts/external_libs.py | 2 +- build_scripts/scripts/modules.py | 2 +- core/client/src/c_engine.cpp | 17 +++++++++++++++++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/build_scripts/build.py b/build_scripts/build.py index c066ec441..9be1ef4ad 100644 --- a/build_scripts/build.py +++ b/build_scripts/build.py @@ -820,7 +820,7 @@ def execbuildscript(filepath): if with_essential_client_modules: add_pragma_module( name="pr_prosper_vulkan", - commitSha="9a7475a881d006e421f4c729f7009c140a5e5866", + commitSha="9071ef182a9286369922fab76232267208027a93", repositoryUrl="https://github.com/Silverlan/pr_prosper_vulkan.git" ) diff --git a/build_scripts/scripts/external_libs.py b/build_scripts/scripts/external_libs.py index 4b53bed4f..135ba7dfc 100644 --- a/build_scripts/scripts/external_libs.py +++ b/build_scripts/scripts/external_libs.py @@ -16,7 +16,7 @@ get_submodule("mathutil","https://github.com/Silverlan/mathutil.git","d4025469e9cf2a05a6ef27793b1047308e4b105e") get_submodule("networkmanager","https://github.com/Silverlan/networkmanager.git","981bc5809c1a768267ddace778205e1be0262730") get_submodule("panima","https://github.com/Silverlan/panima.git","06916dd30cde319f31b1eee25cfed7dea8f14630") -get_submodule("prosper","https://github.com/Silverlan/prosper.git","e2ccfe966cdd28a57069384471e3f0dbb8f277a2") +get_submodule("prosper","https://github.com/Silverlan/prosper.git","0e1415ded54800e826c78341a62c555ef53692c2") get_submodule("sharedutils","https://github.com/Silverlan/sharedutils.git","3d466de081fd77ee8af172422e2aa0b44a608788") get_submodule("util_bsp","https://github.com/Silverlan/util_bsp.git","2d912cceaaa59199a86431aa9d194e922b2ebea4") get_submodule("util_formatted_text","https://github.com/Silverlan/util_formatted_text.git","c473a2bdc1ad84ef52d391226d6983ef3076958e") diff --git a/build_scripts/scripts/modules.py b/build_scripts/scripts/modules.py index 2964c9187..25f6bd632 100644 --- a/build_scripts/scripts/modules.py +++ b/build_scripts/scripts/modules.py @@ -12,6 +12,6 @@ get_submodule("pr_audio_dummy","https://github.com/Silverlan/pr_audio_dummy.git","1a806a1a7b2283bd8551d07e4f1d680499f68b90") get_submodule("pr_curl","https://github.com/Silverlan/pr_curl.git","974c67cc76710809a9595fcfbc4167554799cd7f") get_submodule("pr_prosper_opengl","https://github.com/Silverlan/pr_prosper_opengl.git","d73bf6dea11b1a79d5dc4715e224aa4cb15d0d48") -get_submodule("pr_prosper_vulkan","https://github.com/Silverlan/pr_prosper_vulkan.git","9a7475a881d006e421f4c729f7009c140a5e5866") +get_submodule("pr_prosper_vulkan","https://github.com/Silverlan/pr_prosper_vulkan.git","9071ef182a9286369922fab76232267208027a93") os.chdir(curDir) diff --git a/core/client/src/c_engine.cpp b/core/client/src/c_engine.cpp index 2c20137a8..a8304e44a 100644 --- a/core/client/src/c_engine.cpp +++ b/core/client/src/c_engine.cpp @@ -719,6 +719,23 @@ bool CEngine::Initialize(int argc, char *argv[]) contextCreateInfo.width = 1280; contextCreateInfo.height = 1024; contextCreateInfo.windowless = g_windowless; + + auto renderApiData = udm::Data::Load("cfg/render_api.udm"); + if(renderApiData) { + auto &renderAPI = GetRenderAPI(); + auto data = renderApiData->GetAssetData().GetData(); + for(auto &pair : data["all"]["extensions"].ElIt()) { + auto availability = prosper::IPrContext::ExtensionAvailability::EnableIfAvailable; + udm::to_enum_value(pair.property, availability); + contextCreateInfo.extensions[std::string {pair.key}] = availability; + } + for(auto &pair : data[renderAPI]["extensions"].ElIt()) { + auto availability = prosper::IPrContext::ExtensionAvailability::EnableIfAvailable; + udm::to_enum_value(pair.property, availability); + contextCreateInfo.extensions[std::string {pair.key}] = availability; + } + } + if(windowRes) { std::vector vals; ustring::explode(*windowRes, "x", vals);