My Project
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
ParaEngine::TextureEntityDirectX Struct Reference

Texture Entity distinguish one template from other The following type are all supported by texture entity. More...

#include <TextureEntityDirectX.h>

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

Public Member Functions

virtual AssetEntity::AssetType GetType ()
 
 TextureEntityDirectX (const AssetKey &key)
 
virtual HRESULT InitDeviceObjects ()
 
virtual HRESULT RestoreDeviceObjects ()
 
virtual HRESULT InvalidateDeviceObjects ()
 
virtual HRESULT DeleteDeviceObjects ()
 
virtual bool SetRenderTarget (int nIndex=0)
 
virtual HRESULT LoadFromMemory (const char *buffer, DWORD nFileSize, UINT nMipLevels, D3DFORMAT dwTextureFormat=D3DFMT_UNKNOWN, void **ppTexture=NULL)
 load from memory buffer. More...
 
virtual bool IsLoaded ()
 most assets are loaded asynchronously. More...
 
int GetFrameCount ()
 For animated textures. More...
 
virtual const TextureInfoGetTextureInfo ()
 get texture info. More...
 
virtual DeviceTexturePtr_type GetTexture ()
 Get the texture for rendering.
 
void SetTexture (LPDIRECT3DTEXTURE9 pSrcTexture)
 the internal texture managed. More...
 
void CreateTexture (LPDIRECT3DTEXTURE9 pSrcTexture, D3DFORMAT dwFormat=D3DFMT_DXT3, int width=256, int height=256, UINT MipLevels=0)
 Copy pSrcTexture's surface to the current texture. More...
 
HRESULT CreateTextureFromFile_Serial (RenderDevicePtr pDev=NULL, const char *sFileName=NULL, IDirect3DTexture9 **ppTexture=NULL, D3DFORMAT dwTextureFormat=D3DFMT_UNKNOWN, UINT nMipLevels=D3DX_DEFAULT, Color dwColorKey=0)
 this function is mostly used internally. 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.
 
void SetSurface (LPDIRECT3DSURFACE9 pSurface)
 secretly, change the m_pSurface
 
LPDIRECT3DSURFACE9 GetSurface ()
 Get the surface.
 
D3DFORMAT GetD3DFormat ()
 get d3d format
 
- Public Member Functions inherited from ParaEngine::TextureEntity
 TextureEntity (const AssetKey &key)
 
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 void SetSamplerStateBlocky (bool bIsBlocky)
 whether we will use blocky or non-blocky (anti-aliased) texture
 
virtual bool IsSamplerStateBlocky ()
 
void SetColorKey (Color colorKey)
 
Color GetColorKey ()
 
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 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...
 
- 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 void GetFormatAndMipLevelFromFileName (const string &filename, D3DFORMAT *pdwTextureFormat, UINT *pnMipLevels)
 determine the texture format and mip level from file name. More...
 
static void GetFormatAndMipLevelFromFileNameEx (const string &filename, D3DFORMAT *pdwTextureFormat, UINT *pnMipLevels)
 determine the texture format and mip level from file name. More...
 
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 bool StretchRect (TextureEntityDirectX *pSrcTexture, TextureEntityDirectX *pDestTexture)
 Copy render target content from one surface to another. More...
 
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)
 
- Static Public Member Functions inherited from ParaEngine::TextureEntity
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

union {
   LPDIRECT3DTEXTURE9   m_pTexture
 static texture
 
   LPDIRECT3DCUBETEXTURE9   m_pCubeTexture
 cube texture
 
   LPDIRECT3DSURFACE9   m_pSurface
 RenderTarget.
 
   LPDIRECT3DTEXTURE9 *   m_pTextureSequence
 animated texture sequence
 
}; 
 
- Public Attributes inherited from ParaEngine::TextureEntity
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...
 

Additional Inherited Members

- Public Types inherited from ParaEngine::TextureEntity
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
 
- Static Public Attributes inherited from ParaEngine::TextureEntity
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...
 
- 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

Texture Entity distinguish one template from other The following type are all supported by texture entity.

Member Function Documentation

§ CreateTexture() [1/2]

void ParaEngine::TextureEntityDirectX::CreateTexture ( LPDIRECT3DTEXTURE9  pSrcTexture,
D3DFORMAT  dwFormat = D3DFMT_DXT3,
int  width = 256,
int  height = 256,
UINT  MipLevels = 0 
)

Copy pSrcTexture's surface to the current texture.

the current texture must be created with TextureEntity::StaticTexture in order to use this function. it will delete existing texture if any and create using the pSrcTexture. this function is mostly used to dynamically compose textures for some avatars, please see ParaXAnimInstance.cpp for more information.

Parameters
pSrcTextureit can be any texture, such as a render target.

§ CreateTexture() [2/2]

static TextureEntity* ParaEngine::TextureEntityDirectX::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.

§ CreateTextureFromFile_Serial()

HRESULT ParaEngine::TextureEntityDirectX::CreateTextureFromFile_Serial ( RenderDevicePtr  pDev = NULL,
const char *  sFileName = NULL,
IDirect3DTexture9 **  ppTexture = NULL,
D3DFORMAT  dwTextureFormat = D3DFMT_UNKNOWN,
UINT  nMipLevels = D3DX_DEFAULT,
Color  dwColorKey = 0 
)

this function is mostly used internally.

It will load the texture from disk, unpack it and create the texture. when this function returns, the texture will be already loaded to device pool.

Parameters
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.

§ GetFormatAndMipLevelFromFileName()

static void ParaEngine::TextureEntityDirectX::GetFormatAndMipLevelFromFileName ( const string &  filename,
D3DFORMAT *  pdwTextureFormat,
UINT *  pnMipLevels 
)
static

determine the texture format and mip level from file name.

the texture is usually static texture. the rules are below: if file extension is "dds", both format and mip levels are loaded from the file. if file extension is "png" and file name ends with "_32bits", format is D3DFMT_A8R8G8B8, mip level is 1. if file extension is "png" and file name does not ends with "_32bits", format is DXT3, complete mip level chain is created. if file extension is "png" and file path contains "blocks", we will use 32bits texture and full mipmap levels. if filename further contains "leaves" it will only has 1 mip level. in all other cases, such as "tga", format is D3DFMT_UNKNOWN and mip level is D3DX_DEFAULT.

§ GetFormatAndMipLevelFromFileNameEx()

static void ParaEngine::TextureEntityDirectX::GetFormatAndMipLevelFromFileNameEx ( const string &  filename,
D3DFORMAT *  pdwTextureFormat,
UINT *  pnMipLevels 
)
static

determine the texture format and mip level from file name.

the texture is usually static texture. the rules are below: if file extension is "dds", both format and mip levels are loaded from the file. if file extension is "png" and file name CONTAINS "_32bits", format is D3DFMT_A8R8G8B8, mip level is 1. if file extension is "png" and file name does not CONTAINS "_32bits", format is DXT3, complete mip level chain is created. in all other cases, such as "tga", format is D3DFMT_UNKNOWN and mip level is D3DX_DEFAULT.

§ GetFrameCount()

int ParaEngine::TextureEntityDirectX::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()

virtual const TextureInfo* ParaEngine::TextureEntityDirectX::GetTextureInfo ( )
virtual

get texture info.

return NULL if the texture has never been set before.

Reimplemented from ParaEngine::TextureEntity.

§ IsLoaded()

virtual bool ParaEngine::TextureEntityDirectX::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::TextureEntity.

§ LoadFromMemory()

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

load from memory buffer.

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

Reimplemented from ParaEngine::TextureEntity.

§ LoadImage()

static void ParaEngine::TextureEntityDirectX::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 reponsible to delete it using delete [] operator.
bAlphaif (bAlpha) D3DFMT_A8R8G8B8 4 bytes per pixel else D3DFMT_R8G8B8 3 bytes per pixel.

§ LoadImageOfFormat()

static bool ParaEngine::TextureEntityDirectX::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

§ SetTexture()

void ParaEngine::TextureEntityDirectX::SetTexture ( LPDIRECT3DTEXTURE9  pSrcTexture)

the internal texture managed.

it will add reference to pSrcTexture

§ StretchRect()

static bool ParaEngine::TextureEntityDirectX::StretchRect ( TextureEntityDirectX pSrcTexture,
TextureEntityDirectX pDestTexture 
)
static

Copy render target content from one surface to another.

they may be of different resolution


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