fix and simplify
This commit is contained in:
@@ -25,17 +25,25 @@ void RageTextureID::Init()
|
||||
bHotPinkColorKey = false;
|
||||
}
|
||||
|
||||
bool RageTextureID::equal(const RageTextureID &rhs) const
|
||||
bool RageTextureID::operator<(const RageTextureID &rhs) const
|
||||
{
|
||||
if(filename != rhs.filename) return false;
|
||||
if(iMaxSize != rhs.iMaxSize) return false;
|
||||
if(iMipMaps != rhs.iMipMaps) return false;
|
||||
if(iAlphaBits != rhs.iAlphaBits) return false;
|
||||
if(iColorDepth != rhs.iColorDepth) return false;
|
||||
if(bDither != rhs.bDither) return false;
|
||||
if(bStretch != rhs.bStretch) return false;
|
||||
if(bHotPinkColorKey != rhs.bHotPinkColorKey) return false;
|
||||
return true;
|
||||
if(filename < rhs.filename) return true;
|
||||
if(filename > rhs.filename) return false;
|
||||
if(iMaxSize < rhs.iMaxSize) return true;
|
||||
if(iMaxSize > rhs.iMaxSize) return false;
|
||||
if(iMipMaps < rhs.iMipMaps) return true;
|
||||
if(iMipMaps > rhs.iMipMaps) return false;
|
||||
if(iAlphaBits < rhs.iAlphaBits) return true;
|
||||
if(iAlphaBits > rhs.iAlphaBits) return false;
|
||||
if(iColorDepth < rhs.iColorDepth) return true;
|
||||
if(iColorDepth > rhs.iColorDepth) return false;
|
||||
if(bDither < rhs.bDither) return true;
|
||||
if(bDither > rhs.bDither) return false;
|
||||
if(bStretch < rhs.bStretch) return true;
|
||||
if(bStretch > rhs.bStretch) return false;
|
||||
if(bHotPinkColorKey < rhs.bHotPinkColorKey) return true;
|
||||
if(bHotPinkColorKey > rhs.bHotPinkColorKey) return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -31,10 +31,7 @@ struct RageTextureID
|
||||
bool bStretch;
|
||||
bool bHotPinkColorKey; /* #FF00FF */
|
||||
|
||||
/* Define an ordering so this can be used in a set<>. This defines a partial
|
||||
* ordering; use equal() to see if they're equal. */
|
||||
bool operator< (const RageTextureID &rhs) const { return filename < rhs.filename; }
|
||||
bool equal(const RageTextureID &rhs) const;
|
||||
bool operator< (const RageTextureID &rhs) const;
|
||||
|
||||
void Init();
|
||||
|
||||
|
||||
@@ -76,15 +76,9 @@ RageTexture* RageTextureManager::LoadTexture( RageTextureID ID )
|
||||
std::map<RageTextureID, RageTexture*>::iterator p = m_mapPathToTexture.find(ID);
|
||||
while(p != m_mapPathToTexture.end())
|
||||
{
|
||||
if(p->first.equal(ID)) {
|
||||
/* Found the texture. Just increase the refcount and return it. */
|
||||
p->second->m_iRefCount++;
|
||||
return p->second;
|
||||
}
|
||||
|
||||
/* short circuit */
|
||||
if(p->first.filename > ID.filename) break;
|
||||
p++;
|
||||
/* Found the texture. Just increase the refcount and return it. */
|
||||
p->second->m_iRefCount++;
|
||||
return p->second;
|
||||
}
|
||||
|
||||
// the texture is not already loaded. Load it.
|
||||
|
||||
Reference in New Issue
Block a user