59 TextureFileCache(
const char *fileprefix);
60 virtual ~TextureFileCache();
62 virtual void Reset_File();
65 int Texture_Exists(
const char *fname);
70 srColorSurfaceIFace *Load_Original_Texture_Surface(
const char *texturename);
73 bool Save_Texture(
const char *texturename, srTextureIFace::MultiRequest& mreq, srColorSurfaceIFace& origsurface);
76 bool Load_Texture(
const char *texturename, srTextureIFace::MultiRequest& mreq);
80 bool Validate_Texture(
const char* texturename);
83 srColorSurfaceIFace *Get_Surface(
const char *texturename,
unsigned int reduce_factor);
89 TCF_VERSION = 20000814,
107 struct TextureBlockHeader
110 unsigned long FileTime;
125 srColorSurfaceIFace::PixelFormat SourcePixelFormat;
128 srColorSurfaceIFace::PixelFormat PixelFormat;
130 TextureBlockHeader():NumMipMaps(-1),SourceWidth(-1),SourceHeight(-1),LargestWidth(-1),LargestHeight(-1) {}
134 struct OffsetTableType
136 OffsetTableType() : Offset(0), Size (0) {}
147 MAX_CACHED_SURFACES = srTextureIFace::MAX_LOD,
155 char *CurrentTexture;
158 TagBlockHandle *TextureHandle;
161 TextureBlockHeader Header;
164 OffsetTableType *Offsets;
167 srColorSurface * CachedSurfaces[MAX_CACHED_SURFACES];
170 int NumCachedTextures;
182 void Add_Cached_Surface(srColorSurface *surface);
183 srColorSurface *Find_Cached_Surface(
int size);
184 srColorSurface *Find_Smallest_Cached_Surface();
186 int Texture_Size(
int lod) {
188 assert(lod < Header.NumMipMaps);
189 return(Offsets[lod].Size);
192 int Compressed_Texture_Size(
int lod) {
194 assert(lod < Header.NumMipMaps);
195 return(Offsets[lod + 1].Offset - Offsets[lod].Offset);
198 bool Open_Texture_Handle(
const char *texturename);
199 void Close_Texture_Handle();
201 void Read_Texture(
int offsetidx, srColorSurface *surface);
202 srColorSurfaceIFace *Create_First_Texture_As_Surface(srColorSurfaceIFace *surftype);
204 static char *_Create_File_Name(
const char *fileprefix);
205 static char *_FileNamePtr;
TextureClass * Load_Texture(ChunkLoadClass &cload)
void Save_Texture(TextureClass *texture, ChunkSaveClass &csave)