Assimp: Fix custom stream issues
This commit is contained in:
parent
82a01a8203
commit
ad892dfb43
|
|
@ -23,7 +23,7 @@ void StreamFlush(aiFile* file)
|
||||||
size_t StreamRead(aiFile* file, char* buffer, size_t size, size_t count)
|
size_t StreamRead(aiFile* file, char* buffer, size_t size, size_t count)
|
||||||
{
|
{
|
||||||
Stream* stream = reinterpret_cast<Stream*>(file->UserData);
|
Stream* stream = reinterpret_cast<Stream*>(file->UserData);
|
||||||
return stream->Read(buffer, size * count);
|
return stream->Read(buffer, size * count) / size;
|
||||||
}
|
}
|
||||||
|
|
||||||
aiReturn StreamSeek(aiFile* file, size_t offset, aiOrigin origin)
|
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<FileIOUserdata*>(fileIO->UserData);
|
FileIOUserdata* fileIOUserdata = reinterpret_cast<FileIOUserdata*>(fileIO->UserData);
|
||||||
|
|
||||||
bool isOriginalStream = (std::strcmp(filePath, fileIOUserdata->originalFilePath) == 0);
|
bool isOriginalStream = (std::strcmp(filePath, fileIOUserdata->originalFilePath) == 0);
|
||||||
if (!isOriginalStream && strstr(filePath, StreamPath) != 0)
|
if (!isOriginalStream && strstr(filePath, StreamPath) != nullptr)
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
aiUserData stream;
|
aiUserData stream;
|
||||||
if (isOriginalStream)
|
if (isOriginalStream)
|
||||||
|
{
|
||||||
stream = reinterpret_cast<aiUserData>(fileIOUserdata->originalStream);
|
stream = reinterpret_cast<aiUserData>(fileIOUserdata->originalStream);
|
||||||
|
fileIOUserdata->originalStream->SetCursorPos(0);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ErrorFlags errFlags(ErrorMode::ThrowExceptionDisabled, true);
|
ErrorFlags errFlags(ErrorMode::ThrowExceptionDisabled, true);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue