mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-28 15:53:55 -04:00
assimp: Fix issues reading external files
This commit is contained in:
parent
b254e5b7ba
commit
6e636f5ca0
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user