assimp: Fix issues reading external files

This commit is contained in:
rdb 2022-11-02 21:10:00 +01:00
parent b254e5b7ba
commit 6e636f5ca0

View File

@ -27,10 +27,11 @@ PandaIOStream(std::istream &stream) : _istream(stream) {
*/ */
size_t PandaIOStream:: size_t PandaIOStream::
FileSize() const { FileSize() const {
_istream.clear();
std::streampos cur = _istream.tellg(); std::streampos cur = _istream.tellg();
_istream.seekg(0, ios::end); _istream.seekg(0, ios::end);
std::streampos end = _istream.tellg(); std::streampos end = _istream.tellg();
_istream.seekg(cur, ios::beg); _istream.seekg(cur);
return end; return end;
} }
@ -47,8 +48,14 @@ Flush() {
*/ */
size_t PandaIOStream:: size_t PandaIOStream::
Read(void *buffer, size_t size, size_t count) { Read(void *buffer, size_t size, size_t count) {
_istream.read((char*) buffer, size * count); _istream.read((char *)buffer, size * count);
return _istream.gcount();
if (_istream.eof()) {
// Gracefully handle EOF.
_istream.clear(ios::eofbit);
}
return _istream.gcount() / size;
} }
/** /**