59struct IDirect3DBaseTexture8;
60struct IDirect3DTexture8;
61struct IDirect3DCubeTexture8;
62struct IDirect3DVolumeTexture8;
66class LoaderThreadClass;
101 bool rendertarget=
false,
115 unsigned Get_ID()
const {
return texture_id; }
185 virtual void Apply_New_Surface(IDirect3DBaseTexture8* tex,
bool initialized,
bool disable_auto_invalidation =
false)=0;
196 virtual void Apply(
unsigned int stage)=0;
239 IDirect3DBaseTexture8 *D3DTexture;
285 bool rendertarget=
false,
286 bool allow_reduction=
true
295 const char *full_path=
NULL,
298 bool allow_compression=
true,
299 bool allow_reduction=
true
318 bool rendertarget=
false,
320 bool allow_reduction=
true
329 virtual void Apply_New_Surface(IDirect3DBaseTexture8* tex,
bool initialized,
bool disable_auto_invalidation =
false);
340 virtual void Apply(
unsigned int stage);
374 virtual void Apply_New_Surface(IDirect3DBaseTexture8* tex,
bool initialized,
bool disable_auto_invalidation =
false);
376 virtual void Apply(
unsigned int stage);
397 bool rendertarget=
false,
398 bool allow_reduction=
true
407 const char *full_path=
NULL,
410 bool allow_compression=
true,
411 bool allow_reduction=
true
423 virtual void Apply_New_Surface(IDirect3DBaseTexture8* tex,
bool initialized,
bool disable_auto_invalidation =
false);
443 bool rendertarget=
false,
444 bool allow_reduction=
true
453 const char *full_path=
NULL,
456 bool allow_compression=
true,
457 bool allow_reduction=
true
469 virtual void Apply_New_Surface(IDirect3DBaseTexture8* tex,
bool initialized,
bool disable_auto_invalidation =
false);
#define W3DMPO_GLUE(ARGCLASS)
virtual TexAssetType Get_Asset_Type() const
virtual void Apply_New_Surface(IDirect3DBaseTexture8 *tex, bool initialized, bool disable_auto_invalidation=false)
Apply new surface to texture.
CubeTextureClass(IDirect3DBaseTexture8 *d3d_texture)
CubeTextureClass(SurfaceClass *surface, MipCountType mip_level_count=MIP_LEVELS_ALL)
virtual CubeTextureClass * As_CubeTextureClass()
CubeTextureClass(unsigned width, unsigned height, WW3DFormat format, MipCountType mip_level_count=MIP_LEVELS_ALL, PoolType pool=POOL_MANAGED, bool rendertarget=false, bool allow_reduction=true)
bool Is_Missing_Texture()
Is missing texture.
unsigned Get_Reduction() const
Get reduction mip levels.
static int _Get_Total_Procedural_Texture_Count()
Get total procedural texture count.
IDirect3DTexture8 * Peek_D3D_Texture() const
friend class DX8TextureTrackerClass
bool Is_Procedural() const
static int _Get_Total_Procedural_Texture_Size()
Get total procedural texture size.
friend class VolumeTextureLoadTaskClass
static int _Get_Total_Texture_Size()
Get total texture size.
MipCountType MipLevelCount
unsigned int Get_Priority(void)
Get priority.
IDirect3DVolumeTexture8 * Peek_D3D_VolumeTexture() const
unsigned int Set_Priority(unsigned int priority)
Set priority.
const StringClass & Get_Texture_Name(void) const
virtual CubeTextureClass * As_CubeTextureClass()
static void Apply_Null(unsigned int stage)
Apply NULL texture state.
IDirect3DBaseTexture8 * Peek_D3D_Base_Texture() const
Returns a pointer to the d3d texture.
void Set_D3D_Base_Texture(IDirect3DBaseTexture8 *tex)
Set the d3d texture pointer. Handles ref counts properly.
virtual void Apply(unsigned int stage)=0
virtual TexAssetType Get_Asset_Type() const =0
static void Invalidate_Old_Unused_Textures(unsigned inactive_time_override)
Invalidate old unused textures.
bool Is_Reducible() const
const StringClass & Get_Full_Path(void) const
friend class CubeTextureLoadTaskClass
void Set_HSV_Shift(const Vector3 &hsv_shift)
void Invalidate()
Invalidate this texture.
void Set_Full_Path(const char *path)
static int _Get_Total_Lightmap_Texture_Size()
Get total lightmap texture size.
static int _Get_Total_Texture_Count()
Get total texture count.
virtual ~TextureBaseClass()
Base texture class destructor.
void Set_Texture_Name(const char *name)
Set texture name.
unsigned LastInactivationSyncTime
bool IsCompressionAllowed
friend class TextureLoader
bool Is_Compression_Allowed() const
void Poke_Texture(IDirect3DBaseTexture8 *tex)
static int _Get_Total_Lightmap_Texture_Count()
Get total light map texture count.
virtual VolumeTextureClass * As_VolumeTextureClass()
void Set_Inactivation_Time(unsigned time)
const Vector3 & Get_HSV_Shift()
unsigned InactivationTime
virtual TextureClass * As_TextureClass()
TextureBaseClass(unsigned width, unsigned height, MipCountType mip_level_count=MIP_LEVELS_ALL, PoolType pool=POOL_MANAGED, bool rendertarget=false, bool reducible=true)
friend class DX8ZTextureTrackerClass
unsigned int Get_Mip_Level_Count(void) const
virtual unsigned Get_Texture_Memory_Usage() const =0
void Load_Locked_Surface()
Load locked surface.
bool Is_Initialized() const
static int _Get_Total_Locked_Surface_Size()
Get total locked surface size.
static int _Get_Total_Locked_Surface_Count()
Get total locked surface count.
PoolType Get_Pool() const
int Get_Inactivation_Time() const
virtual void Apply_New_Surface(IDirect3DBaseTexture8 *tex, bool initialized, bool disable_auto_invalidation=false)=0
IDirect3DCubeTexture8 * Peek_D3D_CubeTexture() const
friend class TextureLoadTaskClass
friend class LoaderThreadClass
unsigned ExtendedInactivationTime
TextureFilterClass Filter
virtual TexAssetType Get_Asset_Type() const
IDirect3DSurface8 * Get_D3D_Surface_Level(unsigned int level=0)
Get D3D surface from mip level.
TextureClass(unsigned width, unsigned height, MipCountType mip_level_count=MIP_LEVELS_ALL, PoolType pool=POOL_MANAGED, bool rendertarget=false, WW3DFormat format=WW3D_FORMAT_UNKNOWN, bool allow_reduction=true)
virtual unsigned Get_Texture_Memory_Usage() const
Get texture memory usage.
WW3DFormat Get_Texture_Format() const
void Get_Level_Description(SurfaceClass::SurfaceDescription &desc, unsigned int level=0)
Get surface description for a mip level.
virtual TextureClass * As_TextureClass()
SurfaceClass * Get_Surface_Level(unsigned int level=0)
Get surface from mip level.
TextureClass(unsigned width, unsigned height, WW3DFormat format, MipCountType mip_level_count=MIP_LEVELS_ALL, PoolType pool=POOL_MANAGED, bool rendertarget=false, bool allow_reduction=true)
virtual void Init()
Initialise the texture.
TextureFilterClass & Get_Filter()
virtual void Apply(unsigned int stage)
Apply texture states.
virtual void Apply_New_Surface(IDirect3DBaseTexture8 *tex, bool initialized, bool disable_auto_invalidation=false)
Apply new surface to texture.
VolumeTextureClass(unsigned width, unsigned height, unsigned depth, WW3DFormat format, MipCountType mip_level_count=MIP_LEVELS_ALL, PoolType pool=POOL_MANAGED, bool rendertarget=false, bool allow_reduction=true)
VolumeTextureClass(SurfaceClass *surface, MipCountType mip_level_count=MIP_LEVELS_ALL)
virtual VolumeTextureClass * As_VolumeTextureClass()
VolumeTextureClass(IDirect3DBaseTexture8 *d3d_texture)
virtual void Apply_New_Surface(IDirect3DBaseTexture8 *tex, bool initialized, bool disable_auto_invalidation=false)
Apply new surface to texture.
virtual TexAssetType Get_Asset_Type() const
virtual void Apply_New_Surface(IDirect3DBaseTexture8 *tex, bool initialized, bool disable_auto_invalidation=false)
Apply new surface to texture.
virtual unsigned Get_Texture_Memory_Usage() const
Get texture memory usage.
IDirect3DSurface8 * Get_D3D_Surface_Level(unsigned int level=0)
Get D3D surface from mip level.
virtual void Apply(unsigned int stage)
Apply depth stencil texture.
virtual TexAssetType Get_Asset_Type() const
WW3DZFormat Get_Texture_Format() const
ZTextureClass(unsigned width, unsigned height, WW3DZFormat zformat, MipCountType mip_level_count=MIP_LEVELS_ALL, PoolType pool=POOL_MANAGED)
TextureClass * Load_Texture(ChunkLoadClass &cload)
void Save_Texture(TextureClass *texture, ChunkSaveClass &csave)