mirror of
https://github.com/holub/mame
synced 2025-06-23 21:06:38 +03:00
do variable substitution in bgfx_path #2201
This commit is contained in:
parent
b2fda77d30
commit
2e14f39a07
@ -61,7 +61,9 @@ void chain_manager::refresh_available_chains()
|
||||
m_available_chains.clear();
|
||||
m_available_chains.push_back(chain_desc("none", ""));
|
||||
|
||||
find_available_chains(std::string(m_options.bgfx_path()) + "/chains", "");
|
||||
std::string chains_path;
|
||||
osd_subst_env(chains_path, util::string_format("%s" PATH_SEPARATOR "chains", m_options.bgfx_path()));
|
||||
find_available_chains(chains_path, "");
|
||||
|
||||
destroy_unloaded_chains();
|
||||
}
|
||||
@ -133,11 +135,13 @@ void chain_manager::find_available_chains(std::string root, std::string path)
|
||||
|
||||
bgfx_chain* chain_manager::load_chain(std::string name, uint32_t screen_index)
|
||||
{
|
||||
if (name.length() < 5 || (name.compare(name.length() - 5, 5, ".json")!= 0))
|
||||
if (name.length() < 5 || (name.compare(name.length() - 5, 5, ".json") != 0))
|
||||
{
|
||||
name = name + ".json";
|
||||
}
|
||||
std::string path = std::string(m_options.bgfx_path()) + "/chains/" + name;
|
||||
std::string path;
|
||||
osd_subst_env(path, util::string_format("%s" PATH_SEPARATOR "chains" PATH_SEPARATOR, m_options.bgfx_path()));
|
||||
path += name;
|
||||
|
||||
bx::CrtFileReader reader;
|
||||
if (!bx::open(&reader, path.c_str()))
|
||||
|
@ -51,7 +51,9 @@ bgfx_effect* effect_manager::load_effect(std::string name)
|
||||
if (full_name.length() < 5 || (full_name.compare(full_name.length() - 5, 5, ".json") != 0)) {
|
||||
full_name = full_name + ".json";
|
||||
}
|
||||
std::string path = std::string(m_options.bgfx_path()) + "/effects/" + full_name;
|
||||
std::string path;
|
||||
osd_subst_env(path, util::string_format("%s" PATH_SEPARATOR "effects" PATH_SEPARATOR, m_options.bgfx_path()));
|
||||
path += full_name;
|
||||
|
||||
bx::CrtFileReader reader;
|
||||
if (!bx::open(&reader, path.c_str()))
|
||||
|
@ -41,42 +41,45 @@ bgfx::ShaderHandle shader_manager::shader(std::string name)
|
||||
|
||||
bgfx::ShaderHandle shader_manager::load_shader(std::string name)
|
||||
{
|
||||
std::string shader_path;
|
||||
std::string shader_path(m_options.bgfx_path());
|
||||
shader_path += PATH_SEPARATOR "shaders" PATH_SEPARATOR;
|
||||
switch (bgfx::getRendererType())
|
||||
{
|
||||
case bgfx::RendererType::Noop:
|
||||
case bgfx::RendererType::Direct3D9:
|
||||
shader_path = m_options.bgfx_path() + std::string("/shaders/dx9/");
|
||||
shader_path += "dx9";
|
||||
break;
|
||||
|
||||
case bgfx::RendererType::Direct3D11:
|
||||
case bgfx::RendererType::Direct3D12:
|
||||
shader_path = m_options.bgfx_path() + std::string("/shaders/dx11/");
|
||||
shader_path += "dx11";
|
||||
break;
|
||||
|
||||
case bgfx::RendererType::Gnm:
|
||||
shader_path = m_options.bgfx_path() + std::string("/shaders/pssl/");
|
||||
shader_path += "pssl";
|
||||
break;
|
||||
|
||||
case bgfx::RendererType::Metal:
|
||||
shader_path = m_options.bgfx_path() + std::string("/shaders/metal/");
|
||||
shader_path += "metal";
|
||||
break;
|
||||
|
||||
case bgfx::RendererType::OpenGL:
|
||||
shader_path = m_options.bgfx_path() + std::string("/shaders/glsl/");
|
||||
shader_path += "glsl";
|
||||
break;
|
||||
|
||||
case bgfx::RendererType::OpenGLES:
|
||||
shader_path = m_options.bgfx_path() + std::string("/shaders/essl/");
|
||||
shader_path += "essl";
|
||||
break;
|
||||
|
||||
case bgfx::RendererType::Vulkan:
|
||||
shader_path = m_options.bgfx_path() + std::string("/shaders/spirv/");
|
||||
shader_path += "spirv";
|
||||
break;
|
||||
|
||||
default:
|
||||
fatalerror("Unknown BGFX renderer type %d", bgfx::getRendererType());
|
||||
}
|
||||
shader_path += PATH_SEPARATOR;
|
||||
osd_subst_env(shader_path, shader_path);
|
||||
|
||||
const bgfx::Memory* mem = load_mem(shader_path + name + ".bin");
|
||||
if (mem != nullptr)
|
||||
|
Loading…
Reference in New Issue
Block a user