My Project
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Friends | List of all members
ParaEngine::TextureEntity Struct Reference

Which DXT Compression to Use? Obviously, there are some trade-offs between the different formats which make them better or worse for different types of images. More...

#include <TextureEntity.h>

Inheritance diagram for ParaEngine::TextureEntity:
ParaEngine::AssetEntity ParaEngine::IAttributeFields ParaEngine::IObject ParaEngine::CRefCounted ParaEngine::TextureEntityDirectX ParaEngine::TextureEntityOpenGL

Classes

struct  AnimatedTextureInfo
 for animated texture More...
 
struct  TextureInfo
 basic texture information More...
 

Public Types

enum  _SurfaceType {
  RenderTarget = 0, StaticTexture, TextureSequence, SysMemoryTexture,
  BlpTexture, TerrainHighResTexture, CubeTexture, FlashTexture,
  HTMLTexture, TextureSurface, DEPTHSTENCIL
}
 
- Public Types inherited from ParaEngine::AssetEntity
enum  AssetState {
  ASSET_STATE_NORMAL, ASSET_STATE_LOCAL, ASSET_STATE_REMOTE, ASSET_STATE_CACHE,
  ASSET_STATE_SYNC_START, ASSET_STATE_SYNC_SUCCEED, ASSET_STATE_SYNC_FAIL, ASSET_STATE_FAILED_TO_LOAD
}
 the asset state. More...
 
enum  AssetType {
  base =0, texture, mesh, multianimation,
  spritevertex, font, sound, mdx,
  parax, database, effectfile, dllplugin,
  datagrid, cadMesh, image
}
 each asset type has a unique asset type number
 
- Public Types inherited from ParaEngine::IAttributeFields
typedef ParaEngine::weak_ptr< IObject, IAttributeFieldsWeakPtr_type
 
- Public Types inherited from ParaEngine::IObject
typedef ParaEngine::weak_ptr< IObjectWeakPtr_type
 

Public Member Functions

virtual AssetEntity::AssetType GetType ()
 
 TextureEntity (const AssetKey &key)
 
virtual DeviceTexturePtr_type GetTexture ()
 Get the texture for rendering.
 
virtual HRESULT InitDeviceObjects ()
 
virtual HRESULT RestoreDeviceObjects ()
 
virtual HRESULT InvalidateDeviceObjects ()
 
virtual HRESULT DeleteDeviceObjects ()
 
virtual HRESULT LoadFromMemory (const char *buffer, DWORD nFileSize, UINT nMipLevels, D3DFORMAT dwTextureFormat=D3DFMT_UNKNOWN, void **ppTexture=NULL)
 load from memory buffer. More...
 
virtual bool LoadFromImage (ImageEntity *image, D3DFORMAT dwTextureFormat=D3DFMT_UNKNOWN, UINT nMipLevels=0, void **ppTexture=NULL)
 Initializes a texture from an ImageEntity object. More...
 
virtual HRESULT CreateTextureFromFile_Async (void *pContext, RenderDevicePtr pDev=NULL, const char *sFileName=NULL, void **ppTexture=NULL, D3DFORMAT dwTextureFormat=D3DFMT_UNKNOWN, UINT nMipLevels=D3DX_DEFAULT, Color dwColorKey=0)
 this function is mostly used internally. More...
 
bool IsAsyncLoad () const
 whether to async loading the texture. More...
 
void SetAsyncLoad (bool val)
 
virtual bool SetRenderTarget (int nIndex=0)
 
virtual void SetSamplerStateBlocky (bool bIsBlocky)
 whether we will use blocky or non-blocky (anti-aliased) texture
 
virtual bool IsSamplerStateBlocky ()
 
void SetColorKey (Color colorKey)
 
Color GetColorKey ()
 
virtual bool IsLoaded ()
 most assets are loaded asynchronously. More...
 
bool IsPending ()
 whether the asset is being loaded. More...
 
void SetRawData (char *pData, int nSize)
 set raw texture data from which to load the texture. More...
 
char * GetRawData ()
 get raw data
 
int GetRawDataSize ()
 get raw data size
 
bool GiveupRawDataOwnership ()
 give up raw data ownership and reset raw data to empty
 
virtual void SetTextureInfo (const TextureInfo &tInfo)
 reset the texture info. More...
 
virtual const TextureInfoGetTextureInfo ()
 get texture info. More...
 
virtual int32 GetWidth ()
 
virtual int32 GetHeight ()
 
virtual bool IsFlipY ()
 in most cases this is false, where the image origin is at left, top. More...
 
int GetHitCount ()
 
void SetHitCount (int nHitCount)
 
void MakeInvalid ()
 make the current texture an invalid one. More...
 
void Refresh (const char *sFilename=NULL, bool bLazyLoad=false)
 refresh this texture surface with a local file. More...
 
AnimatedTextureInfoGetAnimatedTextureInfo ()
 get the animated texture information struct. More...
 
void SetTextureFPS (float FPS)
 For animated textures. More...
 
void EnableTextureAutoAnimation (bool bEnable)
 For animated textures. More...
 
void SetCurrentFrameNumber (int nFrame)
 For animated textures. More...
 
int GetCurrentFrameNumber ()
 For animated textures. More...
 
int GetFrameCount ()
 For animated textures. More...
 
virtual bool SaveToFile (const char *filename, D3DFORMAT dwFormat, int width, int height, UINT MipLevels=1, DWORD Filter=D3DX_DEFAULT, Color ColorKey=0)
 save any texture to a different texture file format and save with full mipmapping to disk.
 
- Public Member Functions inherited from ParaEngine::AssetEntity
 AssetEntity (const AssetKey &key)
 
 ATTRIBUTE_DEFINE_CLASS (AssetEntity)
 
virtual int InstallFields (CAttributeClass *pClass, bool bOverride)
 this class should be implemented if one wants to add new attribute. More...
 
 ATTRIBUTE_METHOD1 (AssetEntity, GetLocalFileName_s, const char **)
 
 ATTRIBUTE_METHOD1 (AssetEntity, SetLocalFileName_s, const char *)
 
 ATTRIBUTE_METHOD1 (AssetEntity, GetRemoteAssetURL_s, const char **)
 
 ATTRIBUTE_METHOD1 (AssetEntity, IsValid_s, bool *)
 
 ATTRIBUTE_METHOD1 (AssetEntity, IsLoaded_s, bool *)
 
 ATTRIBUTE_METHOD1 (AssetEntity, IsLocked_s, bool *)
 
 ATTRIBUTE_METHOD1 (AssetEntity, IsInitialized_s, bool *)
 
 ATTRIBUTE_METHOD1 (AssetEntity, GetState_s, int *)
 
 ATTRIBUTE_METHOD1 (AssetEntity, SetState_s, int)
 
virtual const std::string & GetIdentifier ()
 
virtual bool AutoSync (bool bForceSync=false, bool bLazyLoading=true)
 call this function to automatically sync with the remote server according to current asset state More...
 
virtual const string & GetLocalFileName ()
 the actual local file name. More...
 
virtual void SetLocalFileName (const char *sFileName)
 
virtual string GetRemoteAssetURL ()
 get the remote server url of this asset. More...
 
virtual CParameterBlockGetParamBlock (bool bCreateIfNotExist=false)
 get effect parameter block with this object. More...
 
bool IsValid ()
 whether this is a valid resource object. More...
 
bool IsInitialized ()
 whether initialized. More...
 
virtual int Release ()
 call this function to safely release this asset. More...
 
AssetKeyGetKey ()
 return the key object. More...
 
AssetState GetState ()
 return the asset state. More...
 
void SetState (AssetState state)
 set the asset state. More...
 
virtual IAttributeFieldsGetAttributeObject ()
 get the attribute object of this asset. More...
 
virtual HRESULT RendererRecreated ()
 callback of listening the event that renderer was recreated on Android/WP8 all opengl related id has already become invalid at this time, no need to release them, just recreate them all in this function.
 
virtual void Cleanup ()
 Clean up additional resources. More...
 
void LoadAsset ()
 load asset. More...
 
void UnloadAsset ()
 unload asset. More...
 
void GarbageCollectMe ()
 if its reference count is zero, unload this asset object. More...
 
bool IsLocked ()
 whether this is a locked resource resource. More...
 
virtual bool Lock (int nMethod=0)
 Lock the object. More...
 
virtual void UnLock ()
 UnLock the object.
 
virtual bool GetBoundingBox (Vector3 *pMin, Vector3 *pMax)
 Get AABB bounding box of the asset object. More...
 
- Public Member Functions inherited from ParaEngine::IAttributeFields
virtual int GetAttributeClassID ()
 attribute class ID should be identical, unless one knows how overriding rules work. More...
 
virtual const char * GetAttributeClassName ()
 a static string, describing the attribute class object's name
 
virtual const char * GetAttributeClassDescription ()
 a static string, describing the attribute class object
 
virtual int GetChildAttributeColumnCount ()
 we support multi-dimensional child object. More...
 
virtual int GetChildAttributeObjectCount (int nColumnIndex=0)
 get the number of child objects (row count) in the given column. More...
 
virtual IAttributeFieldsGetChildAttributeObject (int nRowIndex, int nColumnIndex=0)
 
virtual IAttributeFieldsGetChildAttributeObject (const std::string &sName)
 get attribute by child object. More...
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetName_s, const char **)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, SetName_s, const char *)
 
 ATTRIBUTE_METHOD (IAttributeFields, PrintObject_s)
 
 ATTRIBUTE_METHOD (IAttributeFields, AddRef_s)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetRefCount_s, int *)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, SetTime_s, int)
 
 ATTRIBUTE_METHOD1 (IAttributeFields, GetTime_s, int *)
 
 ATTRIBUTE_METHOD (IAttributeFields, Release_s)
 
virtual void SetIdentifier (const std::string &sID)
 
virtual bool IsModified ()
 whether some of the fields are modified.It is up to the implementation class to provide this functionality if necessary. More...
 
virtual void SetModified (bool bModified)
 set whether any field has been modified. More...
 
virtual bool ValidateFields ()
 validate all fields and return true if validation passed. More...
 
virtual string GetValidationMessage ()
 get the recent validation message due to the most recent call to ValidateFields()
 
virtual bool ResetField (int nFieldID)
 Reset the field to its initial or default value. More...
 
virtual bool InvokeEditor (int nFieldID, const std::string &sParameters)
 Invoke an (external) editor for a given field. More...
 
virtual bool AddChildAttributeObject (IAttributeFields *pChild, int nRowIndex=-1, int nColumnIndex=0)
 add child object. More...
 
virtual void * QueryObjectByName (const std::string &sObjectType)
 convert to object of a given type. More...
 
virtual void * QueryObject (int nObjectType)
 convert to object of a given type. More...
 
virtual int GetTime ()
 get the current local time in case it is animated in milli seconds frames. More...
 
virtual void SetTime (int nTime)
 
virtual CDynamicAttributeFieldGetDynamicField (const std::string &sName)
 Get a dynamic field with a given name. More...
 
virtual CDynamicAttributeFieldGetDynamicField (int nIndex)
 Get a dynamic field with a given index. More...
 
virtual const char * GetDynamicFieldNameByIndex (int nIndex)
 get field name by index
 
virtual int GetDynamicFieldCount ()
 how many dynamic field this object currently have. More...
 
virtual int SetDynamicField (const std::string &sName, const CVariable &value)
 set a dynamic field with a given name. More...
 
virtual int AddDynamicField (const std::string &sName, ATTRIBUTE_FIELDTYPE dwType)
 add dynamic field and return field index
 
virtual void RemoveAllDynamicFields ()
 remove all dynamic fields
 
virtual int SaveDynamicFieldsToString (std::string &output)
 save only text dynamic fields to fieldname = value text strings. More...
 
virtual int LoadDynamicFieldsFromString (const std::string &input)
 load only text dynamic fields from string More...
 
CAttributeClassGetAttributeClass ()
 get the main attribute class object. More...
 
void PrintObject ()
 print the content of this object to a text file at temp/doc/[ClassName].txt. More...
 
- Public Member Functions inherited from ParaEngine::IObject
virtual void Clone (IObject *obj) const
 Clone the object's contains to a pointer. More...
 
virtual IObjectClone () const
 Clone the object's contains and return a pointer to the newly created object. More...
 
virtual bool Equals (const IObject *obj) const
 Compare the object with another object. More...
 
virtual const ITypeGetType () const
 
virtual std::string ToString () const
 
WeakPtr_typeGetWeakReference ()
 get weak reference object. More...
 
virtual int ProcessObjectEvent (const ObjectEvent &event)
 this function is only used to backward compatibility of ParaObject:AddEvent() function. More...
 
- Public Member Functions inherited from ParaEngine::CRefCounted
void addref () const
 add reference count of the object. More...
 
bool delref () const
 decrease reference count of the object. More...
 
int GetRefCount () const
 get the reference count
 
CRefCountedAddToAutoReleasePool ()
 addref and releases the ownership sometime soon automatically (usually at the end of the current frame). More...
 

Static Public Member Functions

static int GetFormatByFileName (const std::string &filename)
 
static void LoadImage (char *sBufMemFile, int sizeBuf, int &width, int &height, byte **ppBuffer, bool bAlpha)
 load image of any format to buffer. More...
 
static bool LoadImageOfFormat (const std::string &sTextureFileName, char *sBufMemFile, int sizeBuf, int &width, int &height, byte **ppBuffer, int *pBytesPerPixel=NULL, int nFormat=-1)
 this function uses FreeImage lib and support more formats. More...
 
static bool LoadImageOfFormatEx (const std::string &sTextureFileName, char *sBufMemFile, int sizeBuf, int &width, int &height, byte **ppBuffer, int *pBytesPerPixel=NULL, int nFormat=-1, ImageExtendInfo *info=nullptr)
 
static TextureEntityCreateTexture (const uint8 *pTexels, int width, int height, int rowLength, int bytesPerPixel, uint32 nMipLevels=0, D3DPOOL dwCreatePool=D3DPOOL_MANAGED, DWORD nFormat=0)
 create a texture entity from memory buffer. More...
 
static TextureEntityCreateTexture (const char *pFileName, uint32 nMipLevels=0, D3DPOOL dwCreatePool=D3DPOOL_MANAGED)
 create a texture entity from file path. More...
 
- Static Public Member Functions inherited from ParaEngine::AssetEntity
static const string & GetAssetServerUrl ()
 get the asset server url. More...
 
static void SetAssetServerUrl (const char *pStr)
 set the asset server url. More...
 
- Static Public Member Functions inherited from ParaEngine::IAttributeFields
static HRESULT GetAttributeClassID_s (IAttributeFields *cls, int *p1)
 
static HRESULT GetAttributeClassName_s (IAttributeFields *cls, const char **p1)
 
static bool OpenWithDefaultEditor (const char *sFilename, bool bWaitOnReturn=false)
 Open a given file with the default registered editor in the game engine. More...
 

Public Attributes

enum ParaEngine::TextureEntity::_SurfaceType SurfaceType
 
union {
   TextureInfo *   m_pTextureInfo
 currently all surface types except the animated texture use this struct
 
   AnimatedTextureInfo *   m_pAnimatedTextureInfo
 only animated texture use this type.
 
}; 
 it may be different struct for different surface type, but all must inherit from TextureInfo virtual base
 
char * m_pRawData
 raw data
 
int32 m_nRawDataSize
 raw data size
 
int32 m_nHitCount
 
Color m_dwColorKey
 
bool m_bAsyncLoad
 whether to async loading the texture. More...
 
- Public Attributes inherited from ParaEngine::AssetEntity
AssetKey m_key
 this is the unique key object. More...
 
bool m_bIsInitialized
 whether this entity is initialized;Entity is by default lazily initialized
 
bool m_bIsValid
 whether this is a valid resource object. More...
 

Static Public Attributes

static const std::string DEFAULT_STATIC_TEXTURE = "Texture/whitedot.png"
 default texture to replaced downloading one. More...
 
static int g_nTextureLOD = 0
 Most detailed level-of-detail value to set for the mipmap chain. More...
 
static bool g_bEnable32bitsTexture = true
 whether we will load files whose name ends with _32bits as 32 bits textures. More...
 

Friends

class CTextureProcessor
 

Additional Inherited Members

- Protected Member Functions inherited from ParaEngine::IAttributeFields
virtual CAttributeClassCreateAttributeClass ()
 initialize fields
 
virtual CDynamicAttributesSetGetDynamicAttributes (bool bCreateIfNotExist=false)
 
- Protected Attributes inherited from ParaEngine::IObject
WeakPtr_type m_weak_reference
 
- Protected Attributes inherited from ParaEngine::CRefCounted
int m_refcount
 

Detailed Description

Which DXT Compression to Use? Obviously, there are some trade-offs between the different formats which make them better or worse for different types of images.

Some general rules of thumb for good use of DXT textures are as follows: If your image has no alpha, use DXT1 compression. Using DXT3/5 will double your image size over DXT1 and not gain anything. If your image has 1-bit (on or off) alpha information, use DXT1 with one-bit alpha. If the DXT1 image quality is too low and you don't mind doubling image size, use DXT3 or DXT5 (which one doesn't matter, they'll give the same results). If your image has smooth gradations of alpha (fading in/out slowly), DXT5 is almost certainly your best bet, as it will give you the most accurate transparency representation. If your image has sharp transitions between multiple alpha levels (one pixel is 100%, the next one is 50%, and another neighbor is 12%), DXT3 is probably your best bet. You may want to compare the alpha results in DXT1, DXT3 and DXT5 compression, however, to make sure.

Member Enumeration Documentation

§ _SurfaceType

Enumerator
RenderTarget 

render target, call SetTextureInfo() to specify size.

if SetTextureInfo() is never called, the back buffer size is used.

StaticTexture 

normal managed texture, with all mip-mapping level created

TextureSequence 

a group of textures, such as xxx_a001.jpg, ..., xxx_a009.jpg

SysMemoryTexture 

texture in memory

BlpTexture 

BLP textures.

TerrainHighResTexture 

detailed terrain texture

CubeTexture 

cube texture for environment mapping, etc.

FlashTexture 

flash textures, such as swf and flv streaming video files, etc.

HTMLTexture 

HTML renderer textures, <html>name:initial page url.

TextureSurface 

a pure texture surface

DEPTHSTENCIL 

depth stencil surface

Member Function Documentation

§ CreateTexture() [1/2]

TextureEntity * TextureEntity::CreateTexture ( const uint8 *  pTexels,
int  width,
int  height,
int  rowLength,
int  bytesPerPixel,
uint32  nMipLevels = 0,
D3DPOOL  dwCreatePool = D3DPOOL_MANAGED,
DWORD  nFormat = 0 
)
static

create a texture entity from memory buffer.

§ CreateTexture() [2/2]

TextureEntity * TextureEntity::CreateTexture ( const char *  pFileName,
uint32  nMipLevels = 0,
D3DPOOL  dwCreatePool = D3DPOOL_MANAGED 
)
static

create a texture entity from file path.

§ CreateTextureFromFile_Async()

HRESULT TextureEntity::CreateTextureFromFile_Async ( void *  pContext,
RenderDevicePtr  pDev = NULL,
const char *  sFileName = NULL,
void **  ppTexture = NULL,
D3DFORMAT  dwTextureFormat = D3DFMT_UNKNOWN,
UINT  nMipLevels = D3DX_DEFAULT,
Color  dwColorKey = 0 
)
virtual

this function is mostly used internally.

this function will return immediately. It will append the texture request to AsyncLoaders's IO queue.

Parameters
pContextthis should be a pointer to CAsyncLoader
pDevif NULL, the default render device is used
sFileNameif NULL, m_asset->GetLocalFileName() is used.
ppTextureif this is NULL, the m_asset->m_pTexture is sued.
dwTextureFormatthe format of the texture, default to D3DFMT_UNKNOWN
nMipLevelsMip levels, default to D3DX_DEFAULT
dwColorKeycolor key. default to 0(disabled). Use COLOR_XRGB(0,0,0) if blank is treated transparent.

§ EnableTextureAutoAnimation()

void TextureEntity::EnableTextureAutoAnimation ( bool  bEnable)

For animated textures.

whether to enable texture animation. this provides a short cut to animated textures

Parameters
bEnabledefault value is true. Set this to false, if one wants to manually animate the texture, such as controlling from the scripting interface.

§ GetAnimatedTextureInfo()

TextureEntity::AnimatedTextureInfo * TextureEntity::GetAnimatedTextureInfo ( )

get the animated texture information struct.

this only return valid pointer if surface type is animated texture.

Returns
NULL if not succeeds.

§ GetCurrentFrameNumber()

int TextureEntity::GetCurrentFrameNumber ( )

For animated textures.

Get the current frame number. this provides a short cut to animated textures

Returns
frame number is returned

§ GetFrameCount()

int TextureEntity::GetFrameCount ( )

For animated textures.

Get the total frames in the animated texture. this provides a short cut to animated textures

Returns
frame number is returned

§ GetTextureInfo()

const TextureEntity::TextureInfo * TextureEntity::GetTextureInfo ( )
virtual

get texture info.

return NULL if the texture has never been set before.

Reimplemented in ParaEngine::TextureEntityDirectX, and ParaEngine::TextureEntityOpenGL.

§ IsAsyncLoad()

bool TextureEntity::IsAsyncLoad ( ) const

whether to async loading the texture.

this is enabled by default.

§ IsFlipY()

bool TextureEntity::IsFlipY ( )
virtual

in most cases this is false, where the image origin is at left, top.

however, in opengl frame buffer, the frame buffer's origin is at left, bottom.

Reimplemented in ParaEngine::TextureEntityOpenGL.

§ IsLoaded()

bool TextureEntity::IsLoaded ( )
virtual

most assets are loaded asynchronously.

This allows us to check if an asset is loaded. For example, we can LoadAsset() for a number of assets that need preloading. and then use a timer to check if they are initialized and remove from the uninialized list.

Reimplemented from ParaEngine::AssetEntity.

Reimplemented in ParaEngine::TextureEntityDirectX.

§ IsPending()

bool TextureEntity::IsPending ( )

whether the asset is being loaded.

§ LoadFromImage()

bool TextureEntity::LoadFromImage ( ImageEntity image,
D3DFORMAT  dwTextureFormat = D3DFMT_UNKNOWN,
UINT  nMipLevels = 0,
void **  ppTexture = NULL 
)
virtual

Initializes a texture from an ImageEntity object.

NOTE: It will not convert the pvr image file.

Parameters
dwTextureFormatif 0, we will use the image file format.

Reimplemented in ParaEngine::TextureEntityOpenGL.

§ LoadFromMemory()

virtual HRESULT ParaEngine::TextureEntity::LoadFromMemory ( const char *  buffer,
DWORD  nFileSize,
UINT  nMipLevels,
D3DFORMAT  dwTextureFormat = D3DFMT_UNKNOWN,
void **  ppTexture = NULL 
)
inlinevirtual

load from memory buffer.

Parameters
ppTextureif NULL, we will save to current asset, if not we will save to this object.

Reimplemented in ParaEngine::TextureEntityDirectX, and ParaEngine::TextureEntityOpenGL.

§ LoadImage()

void TextureEntity::LoadImage ( char *  sBufMemFile,
int  sizeBuf,
int &  width,
int &  height,
byte **  ppBuffer,
bool  bAlpha 
)
static

load image of any format to buffer.

Parameters
sBufMemFilethe memory file buffer.
sizeBufsize of the memory file buffer
width[out]
height[out]
ppBufferbuffer containing the read data. it may be 4 bytes per pixel or 3 bytes per pixel. this function will allocate buffer using new [] operator, the caller is responsible to delete it using delete [] operator.
bAlphaif (bAlpha) D3DFMT_A8R8G8B8 4 bytes per pixel else D3DFMT_R8G8B8 3 bytes per pixel.

§ LoadImageOfFormat()

bool TextureEntity::LoadImageOfFormat ( const std::string &  sTextureFileName,
char *  sBufMemFile,
int  sizeBuf,
int &  width,
int &  height,
byte **  ppBuffer,
int *  pBytesPerPixel = NULL,
int  nFormat = -1 
)
static

this function uses FreeImage lib and support more formats.

and width, height can be any number instead of square of 2.

Parameters
sTextureFileNameonly used for file format deduction.
nFormatdefault to 32bits ARGB. PixelFormat24bppRGB, PixelFormat16bppGrayScale, PixelFormat8bppIndexed, PixelFormat32bppARGB, etc

§ MakeInvalid()

void TextureEntity::MakeInvalid ( )

make the current texture an invalid one.

It will release all resources and change the texture type to static and reference an empty texture path. After calling this function, one will no longer intend to use this entity any more. and other object reference this texture will render a blank image.

§ Refresh()

void TextureEntity::Refresh ( const char *  sFilename = NULL,
bool  bLazyLoad = false 
)
virtual

refresh this texture surface with a local file.

Parameters
sFilenameif NULL or empty the old texture file(sTextureFileName) will be used.
bLazyLoadif true it will be lazy loaded.

Reimplemented from ParaEngine::AssetEntity.

§ SetCurrentFrameNumber()

void TextureEntity::SetCurrentFrameNumber ( int  nFrame)

For animated textures.

set the current frame number. this provides a short cut to animated textures

Parameters
nFrame

§ SetRawData()

void TextureEntity::SetRawData ( char *  pData,
int  nSize 
)

set raw texture data from which to load the texture.

data ownership is transfered to this entity. the caller should never delete the data. instead this entity will delete the data.

§ SetTextureFPS()

void TextureEntity::SetTextureFPS ( float  FPS)

For animated textures.

set the FPS for animation textures. this provides a short cut to animated textures

Parameters
nFPSframes per seconds. default value is 15 FPS

§ SetTextureInfo()

void TextureEntity::SetTextureInfo ( const TextureInfo tInfo)
virtual

reset the texture info.

One do not need to set the texture info if they intend to load texture from file if the texture is already initialized, calling this function will cause the texture be recreated using the new texture information. If the texture is not initialized, calling this function will set the creation parameters E.g. one can call this function to create a render target of arbitrary size.

Member Data Documentation

§ DEFAULT_STATIC_TEXTURE

const std::string ParaEngine::TextureEntity::DEFAULT_STATIC_TEXTURE = "Texture/whitedot.png"
static

default texture to replaced downloading one.

§ g_bEnable32bitsTexture

bool ParaEngine::TextureEntity::g_bEnable32bitsTexture = true
static

whether we will load files whose name ends with _32bits as 32 bits textures.

disabling this will reduce memory usage by 6 times, but the rendered image will not be as sharp. since DXT5 or DXT3 compression is used instead.

§ g_nTextureLOD

int ParaEngine::TextureEntity::g_nTextureLOD = 0
static

Most detailed level-of-detail value to set for the mipmap chain.

Default value is 0 More specifically, if the texture was created with the dimensions of 256x256, setting the most detailed level to 0 indicates that 256 x 256 is the largest mipmap available, setting the most detailed level to 1 indicates that 128 x 128 is the largest mipmap available, and so on, up to the most detailed mip level (the smallest texture size) for the chain.

§ m_bAsyncLoad

bool ParaEngine::TextureEntity::m_bAsyncLoad

whether to async loading the texture.

this is enabled by default.


The documentation for this struct was generated from the following files: