diff --git a/src/ShaderGen/MaterialFileLoader.cpp b/src/ShaderGen/MaterialFileLoader.cpp index a81ebd03..922f44a1 100644 --- a/src/ShaderGen/MaterialFileLoader.cpp +++ b/src/ShaderGen/MaterialFileLoader.cpp @@ -637,7 +637,7 @@ namespace AccumMemoryManager ubo_memory; hgl::Map ubo_codes_map; - AccumMemoryManager::Block *GetUBOCodes(const OSString &filename) + AccumMemoryManager::Block *LoadUBO2Block(const OSString &filename) { AccumMemoryManager::Block *block; @@ -654,9 +654,13 @@ namespace const int64 size=fa.GetSize(); - block=ubo_memory.Acquire(size); + block=ubo_memory.Acquire(size+1); - fa.Read(ubo_memory.Access(block),size); + char *ptr=(char *)ubo_memory.Access(block); + + fa.Read(ptr,size); + + ptr[size]=0; ubo_codes_map.Add(filename,block); @@ -664,6 +668,13 @@ namespace } }//namespace +const char *GetUBOCodes(const AccumMemoryManager::Block *block) +{ + if(!block)return nullptr; + + return (const char *)ubo_memory.Access(block); +} + MaterialFileData *LoadMaterialDataFromFile(const AnsiString &mtl_filename) { const OSString mtl_osfn=filesystem::FixFilename(ToOSString(mtl_filename+".mtl")); @@ -705,7 +716,7 @@ MaterialFileData *LoadMaterialDataFromFile(const AnsiString &mtl_filename) else ubo_os_full_filename=filesystem::MergeFilename(mtl_path,ubo_os_fn); - ud.block=GetUBOCodes(ubo_os_full_filename); + ud.block=LoadUBO2Block(ubo_os_full_filename); } return mfd;