in Source/Core/ShaderConductor.cpp [209:235]
HRESULT STDMETHODCALLTYPE LoadSource(LPCWSTR fileName, IDxcBlob** includeSource) override
{
if ((fileName[0] == L'.') && (fileName[1] == L'/'))
{
fileName += 2;
}
std::string utf8FileName;
if (!Unicode::UTF16ToUTF8String(fileName, &utf8FileName))
{
return E_FAIL;
}
Blob source;
try
{
source = m_loadCallback(utf8FileName.c_str());
}
catch (...)
{
return E_FAIL;
}
*includeSource = nullptr;
return Dxcompiler::Instance().Library()->CreateBlobWithEncodingOnHeapCopy(source.Data(), source.Size(), CP_UTF8,
reinterpret_cast<IDxcBlobEncoding**>(includeSource));
}