2008-07-12 17:40:22 +00:00
|
|
|
#ifndef _TEXTURECACHE_H
|
|
|
|
#define _TEXTURECACHE_H
|
|
|
|
|
|
|
|
|
|
|
|
#include <map>
|
|
|
|
|
|
|
|
#include "D3DBase.h"
|
|
|
|
|
|
|
|
class TextureCache
|
|
|
|
{
|
|
|
|
struct TCacheEntry
|
|
|
|
{
|
|
|
|
LPDIRECT3DTEXTURE9 texture;
|
|
|
|
u32 addr;
|
|
|
|
u32 hash;
|
|
|
|
u32 paletteHash;
|
|
|
|
u32 hashoffset;
|
|
|
|
u32 oldpixel;
|
|
|
|
bool isRenderTarget;
|
|
|
|
bool isNonPow2;
|
|
|
|
int frameCount;
|
|
|
|
int w,h,fmt;
|
|
|
|
TCacheEntry()
|
|
|
|
{
|
|
|
|
texture=0;
|
|
|
|
isRenderTarget=0;
|
|
|
|
hash=0;
|
|
|
|
}
|
|
|
|
void Destroy();
|
|
|
|
};
|
|
|
|
|
|
|
|
|
2008-09-01 22:48:56 +00:00
|
|
|
typedef std::map<u32,TCacheEntry> TexCache;
|
2008-07-12 17:40:22 +00:00
|
|
|
|
|
|
|
static u8 *temp;
|
|
|
|
static TexCache textures;
|
|
|
|
|
|
|
|
public:
|
|
|
|
static void Init();
|
|
|
|
static void Cleanup();
|
|
|
|
static void Shutdown();
|
|
|
|
static void Invalidate();
|
2008-09-01 22:48:56 +00:00
|
|
|
static void Load(int stage, u32 address, int width, int height, int format, int tlutaddr, int tlutfmt);
|
|
|
|
static void CopyEFBToRenderTarget(u32 address, RECT *source);
|
2008-07-12 17:40:22 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|