mirror of
https://github.com/holub/mame
synced 2025-06-25 05:44:23 +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.clear();
|
||||||
m_available_chains.push_back(chain_desc("none", ""));
|
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();
|
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)
|
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";
|
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;
|
bx::CrtFileReader reader;
|
||||||
if (!bx::open(&reader, path.c_str()))
|
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)) {
|
if (full_name.length() < 5 || (full_name.compare(full_name.length() - 5, 5, ".json") != 0)) {
|
||||||
full_name = full_name + ".json";
|
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;
|
bx::CrtFileReader reader;
|
||||||
if (!bx::open(&reader, path.c_str()))
|
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)
|
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())
|
switch (bgfx::getRendererType())
|
||||||
{
|
{
|
||||||
case bgfx::RendererType::Noop:
|
case bgfx::RendererType::Noop:
|
||||||
case bgfx::RendererType::Direct3D9:
|
case bgfx::RendererType::Direct3D9:
|
||||||
shader_path = m_options.bgfx_path() + std::string("/shaders/dx9/");
|
shader_path += "dx9";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case bgfx::RendererType::Direct3D11:
|
case bgfx::RendererType::Direct3D11:
|
||||||
case bgfx::RendererType::Direct3D12:
|
case bgfx::RendererType::Direct3D12:
|
||||||
shader_path = m_options.bgfx_path() + std::string("/shaders/dx11/");
|
shader_path += "dx11";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case bgfx::RendererType::Gnm:
|
case bgfx::RendererType::Gnm:
|
||||||
shader_path = m_options.bgfx_path() + std::string("/shaders/pssl/");
|
shader_path += "pssl";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case bgfx::RendererType::Metal:
|
case bgfx::RendererType::Metal:
|
||||||
shader_path = m_options.bgfx_path() + std::string("/shaders/metal/");
|
shader_path += "metal";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case bgfx::RendererType::OpenGL:
|
case bgfx::RendererType::OpenGL:
|
||||||
shader_path = m_options.bgfx_path() + std::string("/shaders/glsl/");
|
shader_path += "glsl";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case bgfx::RendererType::OpenGLES:
|
case bgfx::RendererType::OpenGLES:
|
||||||
shader_path = m_options.bgfx_path() + std::string("/shaders/essl/");
|
shader_path += "essl";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case bgfx::RendererType::Vulkan:
|
case bgfx::RendererType::Vulkan:
|
||||||
shader_path = m_options.bgfx_path() + std::string("/shaders/spirv/");
|
shader_path += "spirv";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
fatalerror("Unknown BGFX renderer type %d", bgfx::getRendererType());
|
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");
|
const bgfx::Memory* mem = load_mem(shader_path + name + ".bin");
|
||||||
if (mem != nullptr)
|
if (mem != nullptr)
|
||||||
|
Loading…
Reference in New Issue
Block a user