33#include <srTexture.hpp>
58class TextureFileClass :
public srClassSupport<TextureFileClass,srTexture,false,ID_TEXTURE_FILE_CLASS>
62 TextureFileClass(
const char * filename);
63 virtual ~TextureFileClass(
void);
67 TextureFileClass(
const TextureFileClass & src);
68 TextureFileClass & TextureFileClass::operator = (
const TextureFileClass &that);
71 virtual srClass* vInstance(
void) {
WWASSERT(0);
return W3DNEW TextureFileClass(
""); }
74 virtual FrameHandle getTextureFrameHandle(
void);
75 virtual void getMipmapData(MultiRequest& m);
78 virtual void invalidate(
void);
80 virtual void setupDefaultValues (
void);
83 const char * Get_File_Name(
void) {
return FileName; }
85 void Apply_New_Surface();
88 static void Switch_Mipmaping_Debug();
89 static int Get_Total_Locked_Surface_Size();
90 static int Get_Total_Texture_Size();
91 static int Get_Total_Non_Reduced_Texture_Size();
92 static int Get_Total_Locked_Surface_Count();
93 static int Get_Total_Texture_Count();
94 static StringClass List_Missing_Files();
95 int Get_Texture_Size()
const {
return TextureSize; }
96 int Get_Non_Reduced_Texture_Size()
const {
return NonReducedTextureSize; }
97 int Get_Locked_Surface_Size()
const {
return LockedSurfaceSize; }
98 int Get_Current_Reduction_Factor()
const {
return CurrentReductionFactor; }
99 int Get_File_Error()
const {
return file_error; }
105 void Request_Reduction(
float reduction_factor);
114 void Process_Reduction(
void);
117 void Enable_Reduction(
bool b);
121 static void _Reset_Time_Stamp(
void) { _CurrentTimeStamp++; }
124 static void _Set_Switch_Threshold(
float switch_threshold);
125 static float _Get_Switch_Threshold(
void);
128 struct TextureLoaderInfoStruct {
129 srColorSurfaceIFace* new_surface;
130 TextureFileClass* succ;
132 unsigned int reduction_factor;
133 TextureLoaderInfoStruct() : succ(0), new_surface(0), loading(
false), reduction_factor(0U) {}
134 } texture_loader_info;
137 int ID()
const {
return id; }
138 void Set_Texture_Flash(
bool b);
139 bool Get_Texture_Flash()
const;
140 static TextureFileClass* Get_Texture(
int id);
141 static void Update_Texture_Flash();
145 void Load_Temp_Surface(
void);
146 void Release_Temp_Surface(
void);
147 void Load_Locked_Surface();
148 void static Fill_Multi_Request_From_Surface(MultiRequest& m, srColorSurfaceIFace* surface);
151 srColorSurfaceIFace * LockedSurface;
152 unsigned int LockedSurfaceReductionFactor;
154 TextureFileClass * Succ;
157 int LockedSurfaceSize;
159 int NonReducedTextureSize;
168 bool ReductionEnabled;
172 unsigned int CurrentReductionFactor;
177 float DesiredReductionFactor;
182 static unsigned int _CurrentTimeStamp;
183 unsigned int TimeStampOfLastRequestReductionCall;
184 unsigned int TimeStampOfLastProcessReductionCall;
194 static float _SwitchThreshold;
200 FrameHandle TextureFrameHandle;
204 srColorSurfaceIFace* TempSurfacePtr;
209 srColorSurfaceIFace* flash_store_surface;