From ad892dfb4304ea1da7cf936f9e43164eb5955aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Leclercq?= Date: Sat, 12 Mar 2022 16:56:14 +0100 Subject: [PATCH] Assimp: Fix custom stream issues --- plugins/Assimp/CustomStream.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/Assimp/CustomStream.cpp b/plugins/Assimp/CustomStream.cpp index d7ae0db27..2654211ff 100644 --- a/plugins/Assimp/CustomStream.cpp +++ b/plugins/Assimp/CustomStream.cpp @@ -23,7 +23,7 @@ void StreamFlush(aiFile* file) size_t StreamRead(aiFile* file, char* buffer, size_t size, size_t count) { Stream* stream = reinterpret_cast(file->UserData); - return stream->Read(buffer, size * count); + return stream->Read(buffer, size * count) / size; } aiReturn StreamSeek(aiFile* file, size_t offset, aiOrigin origin) @@ -71,12 +71,15 @@ aiFile* StreamOpener(aiFileIO* fileIO, const char* filePath, const char* openMod FileIOUserdata* fileIOUserdata = reinterpret_cast(fileIO->UserData); bool isOriginalStream = (std::strcmp(filePath, fileIOUserdata->originalFilePath) == 0); - if (!isOriginalStream && strstr(filePath, StreamPath) != 0) + if (!isOriginalStream && strstr(filePath, StreamPath) != nullptr) return nullptr; aiUserData stream; if (isOriginalStream) + { stream = reinterpret_cast(fileIOUserdata->originalStream); + fileIOUserdata->originalStream->SetCursorPos(0); + } else { ErrorFlags errFlags(ErrorMode::ThrowExceptionDisabled, true);