mirror of
https://github.com/blawar/GLideN64.git
synced 2024-06-30 08:24:05 +00:00
commit
2bd852508c
|
@ -560,7 +560,11 @@ TxFileStorage::TxFileStorage(uint32 options,
|
|||
void TxFileStorage::buildFullPath()
|
||||
{
|
||||
char cbuf[MAX_PATH * 2];
|
||||
#ifdef RELATIVE_PATHS
|
||||
tx_wstring filename = _filename;
|
||||
#else
|
||||
tx_wstring filename = _cachePath + OSAL_DIR_SEPARATOR_STR + _filename;
|
||||
#endif
|
||||
wcstombs(cbuf, filename.c_str(), MAX_PATH * 2);
|
||||
_fullPath = cbuf;
|
||||
}
|
||||
|
|
|
@ -50,6 +50,12 @@ struct Checksum
|
|||
operator uint64() {
|
||||
return _checksum;
|
||||
}
|
||||
bool operator ==(const Checksum& rhs) {
|
||||
return _checksum == rhs._checksum;
|
||||
}
|
||||
bool operator !=(const Checksum& rhs) {
|
||||
return _checksum != rhs._checksum;
|
||||
}
|
||||
};
|
||||
|
||||
class TxCacheImpl;
|
||||
|
|
|
@ -38,6 +38,11 @@
|
|||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
#define SWAP32(data) \
|
||||
( (((data) >> 24) & 0x000000FF) | (((data) >> 8) & 0x0000FF00) | \
|
||||
(((data) << 8) & 0x00FF0000) | (((data) << 24) & 0xFF000000) )
|
||||
|
||||
|
||||
/*
|
||||
* Utilities
|
||||
******************************************************************************/
|
||||
|
@ -140,6 +145,7 @@ TxUtil::checksum64(uint8 *src, int width, int height, int size, int rowStride, u
|
|||
* (unsigned short)(rdp.tiles[tile].format << 8 | rdp.tiles[tile].size),
|
||||
* bpl);
|
||||
*/
|
||||
|
||||
uint32
|
||||
TxUtil::RiceCRC32(const uint8* src, int width, int height, int size, int rowStride)
|
||||
{
|
||||
|
@ -193,6 +199,11 @@ loop1:
|
|||
while (x >= 0)
|
||||
{
|
||||
esi = *(uint32*)(src + x);
|
||||
|
||||
#ifdef NATIVE
|
||||
esi = SWAP32(esi);
|
||||
#endif
|
||||
|
||||
esi ^= x;
|
||||
|
||||
crc32Ret = (crc32Ret << 4) + ((crc32Ret >> 28) & 15);
|
||||
|
@ -215,17 +226,18 @@ loop1:
|
|||
static
|
||||
uint8 CalculateMaxCI8b(const uint8* src, uint32 width, uint32 height, uint32 rowStride)
|
||||
{
|
||||
uint8 val = 0;
|
||||
uint8 max = 0;
|
||||
|
||||
for (uint32 y = 0; y < height; ++y) {
|
||||
const uint8 * buf = src + rowStride * y;
|
||||
for (uint32 x = 0; x < width; ++x) {
|
||||
if (buf[x] > val)
|
||||
val = buf[x];
|
||||
if (val == 0xFF)
|
||||
if (buf[x] > max)
|
||||
max = buf[x];
|
||||
if (max == 0xFF)
|
||||
return 0xFF;
|
||||
}
|
||||
}
|
||||
return val;
|
||||
return max;
|
||||
}
|
||||
|
||||
static
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
static u64 g_originalWidth = START_WIDTH;//Size set by the end-user
|
||||
static u64 g_width = START_WIDTH;//Current size
|
||||
static u64 g_height = START_HEIGHT;
|
||||
static int highres_enabled = 0;//1 if HD texture mode is enabled
|
||||
static bool highres_hts = true;
|
||||
|
||||
extern "C" {
|
||||
u64 gfx_width()
|
||||
|
@ -139,6 +141,24 @@ extern "C" {
|
|||
RDRAMSize = (word)-1;
|
||||
|
||||
api().RomOpen(romName);
|
||||
|
||||
config.textureFilter.txHiresEnable = highres_enabled;
|
||||
wsprintf(config.textureFilter.txCachePath, L".");
|
||||
config.textureFilter.txHiresTextureFileStorage = highres_hts ? 1 : 0;
|
||||
}
|
||||
|
||||
void gfx_switch_to_htc(bool enable) {
|
||||
highres_hts = !enable;
|
||||
config.textureFilter.txHiresTextureFileStorage = enable ? 0 : 1;
|
||||
}
|
||||
|
||||
bool gfx_is_highres_enabled() {
|
||||
highres_enabled = 1;
|
||||
return config.textureFilter.txHiresEnable;
|
||||
}
|
||||
|
||||
void gfx_highres_enable(bool enable) {
|
||||
config.textureFilter.txHiresEnable = enable;
|
||||
}
|
||||
|
||||
void gfx_force_43(bool enable) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user