Skip to content

Commit

Permalink
Don't crash if some shaders are missing
Browse files Browse the repository at this point in the history
Use DX10 path always and just return nullptr
  • Loading branch information
Xottab-DUTY committed May 5, 2019
1 parent 790f403 commit c7dec85
Showing 1 changed file with 4 additions and 22 deletions.
26 changes: 4 additions & 22 deletions src/Layers/xrRender/ResourceManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,26 +55,14 @@ IBlender* CResourceManager::_GetBlender(LPCSTR Name)

LPSTR N = LPSTR(Name);
map_Blender::iterator I = m_blenders.find(N);
#ifdef _EDITOR
if (I == m_blenders.end())
return 0;
#else
// TODO: DX10: When all shaders are ready switch to common path
#if defined(USE_DX10) || defined(USE_DX11)
if (I == m_blenders.end())
{
Msg("DX10: Shader '%s' not found in library.", Name);
return 0;
}
#endif

if (I == m_blenders.end())
{
xrDebug::Fatal(DEBUG_INFO, "Shader '%s' not found in library.", Name);
Msg("! Shader '%s' not found in library.", Name);
return nullptr;
}
#endif
else
return I->second;

return I->second;
}

IBlender* CResourceManager::_FindBlender(LPCSTR Name)
Expand Down Expand Up @@ -274,16 +262,10 @@ Shader* CResourceManager::_cpp_Create(LPCSTR s_shader, LPCSTR s_textures, LPCSTR
{
if (!GEnv.isDedicatedServer)
{
// TODO: DX10: When all shaders are ready switch to common path
#if defined(USE_DX10) || defined(USE_DX11)
IBlender* pBlender = _GetBlender(s_shader ? s_shader : "null");
if (!pBlender)
return nullptr;
return _cpp_Create(pBlender, s_shader, s_textures, s_constants, s_matrices);
#else // USE_DX10
return _cpp_Create(_GetBlender(s_shader ? s_shader : "null"), s_shader, s_textures, s_constants, s_matrices);
#endif // USE_DX10
//#else
}
return nullptr;
}
Expand Down

0 comments on commit c7dec85

Please sign in to comment.