mirror of
https://github.com/libretro/ppsspp.git
synced 2024-11-30 03:40:32 +00:00
Merge pull request #6755 from unknownbrackets/clut-fix
Convert all CLUT entries ever loaded
This commit is contained in:
commit
cb2f50bf98
@ -63,7 +63,7 @@
|
|||||||
|
|
||||||
extern int g_iNumVideos;
|
extern int g_iNumVideos;
|
||||||
|
|
||||||
TextureCache::TextureCache() : clearCacheNextFrame_(false), lowMemoryMode_(false), clutBuf_(NULL), texelsScaledThisFrame_(0) {
|
TextureCache::TextureCache() : clearCacheNextFrame_(false), lowMemoryMode_(false), clutBuf_(NULL), clutMaxBytes_(0), texelsScaledThisFrame_(0) {
|
||||||
timesInvalidatedAllThisFrame_ = 0;
|
timesInvalidatedAllThisFrame_ = 0;
|
||||||
lastBoundTexture = -1;
|
lastBoundTexture = -1;
|
||||||
decimationCounter_ = TEXCACHE_DECIMATION_INTERVAL;
|
decimationCounter_ = TEXCACHE_DECIMATION_INTERVAL;
|
||||||
@ -909,6 +909,7 @@ void TextureCache::LoadClut() {
|
|||||||
}
|
}
|
||||||
// Reload the clut next time.
|
// Reload the clut next time.
|
||||||
clutLastFormat_ = 0xFFFFFFFF;
|
clutLastFormat_ = 0xFFFFFFFF;
|
||||||
|
clutMaxBytes_ = std::max(clutMaxBytes_, clutTotalBytes_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TextureCache::UpdateCurrentClut() {
|
void TextureCache::UpdateCurrentClut() {
|
||||||
@ -923,7 +924,8 @@ void TextureCache::UpdateCurrentClut() {
|
|||||||
|
|
||||||
// Avoid a copy when we don't need to convert colors.
|
// Avoid a copy when we don't need to convert colors.
|
||||||
if (UseBGRA8888() || clutFormat != GE_CMODE_32BIT_ABGR8888) {
|
if (UseBGRA8888() || clutFormat != GE_CMODE_32BIT_ABGR8888) {
|
||||||
ConvertColors(clutBufConverted_, clutBufRaw_, getClutDestFormat(clutFormat), clutExtendedBytes / sizeof(u16));
|
const int numColors = (clutMaxBytes_ + clutBaseBytes) / (clutFormat == GE_CMODE_32BIT_ABGR8888 ? sizeof(u32) : sizeof(u16));
|
||||||
|
ConvertColors(clutBufConverted_, clutBufRaw_, getClutDestFormat(clutFormat), numColors);
|
||||||
clutBuf_ = clutBufConverted_;
|
clutBuf_ = clutBufConverted_;
|
||||||
} else {
|
} else {
|
||||||
clutBuf_ = clutBufRaw_;
|
clutBuf_ = clutBufRaw_;
|
||||||
|
@ -226,6 +226,7 @@ private:
|
|||||||
u32 *clutBuf_;
|
u32 *clutBuf_;
|
||||||
u32 clutHash_;
|
u32 clutHash_;
|
||||||
u32 clutTotalBytes_;
|
u32 clutTotalBytes_;
|
||||||
|
u32 clutMaxBytes_;
|
||||||
// True if the clut is just alpha values in the same order (RGBA4444-bit only.)
|
// True if the clut is just alpha values in the same order (RGBA4444-bit only.)
|
||||||
bool clutAlphaLinear_;
|
bool clutAlphaLinear_;
|
||||||
u16 clutAlphaLinearColor_;
|
u16 clutAlphaLinearColor_;
|
||||||
|
Loading…
Reference in New Issue
Block a user