1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-04 10:03:36 +00:00

Fix TxFileStorage initialization when cache compression disabled.

Fixed Textures do not load from uncompressed HTS files #2120
This commit is contained in:
Sergey Lipskiy 2019-11-04 21:49:48 +07:00
parent f3b83d2c8b
commit 09764fead7

View File

@ -64,7 +64,7 @@ public:
class TxMemoryCache : public TxCacheImpl
{
public:
TxMemoryCache(uint32 & _options, uint64 cacheLimit, dispInfoFuncExt callback);
TxMemoryCache(uint32 _options, uint64 cacheLimit, dispInfoFuncExt callback);
~TxMemoryCache();
bool add(Checksum checksum, GHQTexInfo *info, int dataSize = 0) override;
@ -103,7 +103,7 @@ private:
uint32 _gzdestLen = 0;
};
TxMemoryCache::TxMemoryCache(uint32 & options,
TxMemoryCache::TxMemoryCache(uint32 options,
uint64 cacheLimit,
dispInfoFuncExt callback)
: _options(options)
@ -481,7 +481,7 @@ void TxMemoryCache::clear()
class TxFileStorage : public TxCacheImpl
{
public:
TxFileStorage(uint32 & _options, const wchar_t *cachePath, dispInfoFuncExt callback);
TxFileStorage(uint32 _options, const wchar_t *cachePath, dispInfoFuncExt callback);
~TxFileStorage() = default;
bool add(Checksum checksum, GHQTexInfo *info, int dataSize = 0) override;
@ -531,7 +531,7 @@ private:
const int TxFileStorage::_fakeConfig = -1;
const int64 TxFileStorage::_initialPos = sizeof(int64) + sizeof(int);
TxFileStorage::TxFileStorage(uint32 & options,
TxFileStorage::TxFileStorage(uint32 options,
const wchar_t *cachePath,
dispInfoFuncExt callback)
: _options(options)
@ -541,8 +541,6 @@ TxFileStorage::TxFileStorage(uint32 & options,
if (cachePath)
_cachePath.assign(cachePath);
/* zlib memory buffers to (de)compress hires textures */
if (_options & (GZ_TEXCACHE | GZ_HIRESTEXCACHE)) {
_gzdest0 = TxMemBuf::getInstance()->get(0);
_gzdest1 = TxMemBuf::getInstance()->get(1);
_gzdestLen = (TxMemBuf::getInstance()->size_of(0) < TxMemBuf::getInstance()->size_of(1)) ?
@ -554,7 +552,6 @@ TxFileStorage::TxFileStorage(uint32 & options,
_gzdest1 = nullptr;
_gzdestLen = 0;
}
}
}
#define FWRITE(a) _outfile.write((char*)(&a), sizeof(a))
@ -654,6 +651,9 @@ bool TxFileStorage::readData(GHQTexInfo & info)
if (dataSize == 0)
return false;
if (_gzdest0 == nullptr)
return false;
_infile.read((char*)_gzdest0, dataSize);
if (!_infile.good())
return false;