Files
itgmania212121/stepmania/src/RageTextureManager.h
T

63 lines
1.8 KiB
C++
Raw Normal View History

2002-11-16 07:36:02 +00:00
#ifndef RAGE_TEXTURE_MANAGER_H
#define RAGE_TEXTURE_MANAGER_H
/*
-----------------------------------------------------------------------------
2002-05-19 01:59:48 +00:00
Class: RageTextureManager
Desc: Interface for loading and releasing textures.
2002-05-19 01:59:48 +00:00
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
Chris Danford
-----------------------------------------------------------------------------
*/
2001-11-03 10:52:42 +00:00
#include "RageTexture.h"
2002-09-07 08:20:10 +00:00
#include <map>
2001-11-03 10:52:42 +00:00
//-----------------------------------------------------------------------------
// RageTextureManager Class Declarations
//-----------------------------------------------------------------------------
class RageTextureManager
{
public:
2003-04-18 23:55:20 +00:00
RageTextureManager();
2003-02-14 06:50:39 +00:00
void Update( float fDeltaTime );
2001-11-03 10:52:42 +00:00
~RageTextureManager();
RageTexture* LoadTexture( RageTextureID ID );
2003-04-18 23:55:20 +00:00
void CacheTexture( RageTextureID ID );
void UnloadTexture( RageTexture *t );
2002-04-28 20:42:32 +00:00
void ReloadAll();
2001-11-03 10:52:42 +00:00
2003-04-18 23:55:20 +00:00
bool SetPrefs( int iTextureColorDepth, bool bDelayedDelete, int iMaxTextureResolution );
2002-09-18 20:42:33 +00:00
int GetTextureColorDepth() { return m_iTextureColorDepth; };
2003-04-18 23:55:20 +00:00
bool GetDelayedDelete() { return m_bDelayedDelete; };
2003-01-11 20:15:00 +00:00
int GetMaxTextureResolution() { return m_iMaxTextureResolution; };
2003-04-18 23:55:20 +00:00
// call this between Screens
void DeleteCachedTextures() { GarbageCollect(cached_textures); }
// call this on switch theme
void DoDelayedDelete() { GarbageCollect(delayed_delete); }
void InvalidateTextures();
2003-04-24 19:51:27 +00:00
void RageTextureManager::DiagnosticOutput() const;
2001-11-03 10:52:42 +00:00
protected:
2003-04-18 23:55:20 +00:00
void DeleteTexture( RageTexture *t );
enum GCType { cached_textures, delayed_delete };
void GarbageCollect( GCType type );
2002-09-18 20:42:33 +00:00
int m_iTextureColorDepth;
2003-04-18 23:55:20 +00:00
bool m_bDelayedDelete;
2003-01-11 20:15:00 +00:00
int m_iMaxTextureResolution;
2001-11-03 10:52:42 +00:00
std::map<RageTextureID, RageTexture*> m_mapPathToTexture;
2001-11-03 10:52:42 +00:00
};
2002-05-19 01:59:48 +00:00
extern RageTextureManager* TEXTUREMAN; // global and accessable from anywhere in our program
2002-11-16 07:36:02 +00:00
#endif