My Project
|
texture entity. More...
#include <TextureEntityOpenGL.h>
Public Member Functions | |
virtual AssetEntity::AssetType | GetType () |
TextureEntityOpenGL (const AssetKey &key) | |
TextureEntityOpenGL (GLWrapper::Texture2D *texture) | |
virtual HRESULT | InitDeviceObjects () |
virtual HRESULT | RestoreDeviceObjects () |
virtual HRESULT | InvalidateDeviceObjects () |
virtual HRESULT | DeleteDeviceObjects () |
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 bool | LoadFromImage (ImageEntity *image, D3DFORMAT dwTextureFormat=D3DFMT_UNKNOWN, UINT nMipLevels=0, void **ppTexture=NULL) |
Initializes a texture from an ImageEntity object. More... | |
virtual HRESULT | LoadFromMemory (const char *buffer, DWORD nFileSize, UINT nMipLevels, D3DFORMAT dwTextureFormat=D3DFMT_UNKNOWN, void **ppTexture=NULL) |
load from memory buffer. More... | |
virtual void | SetSamplerStateBlocky (bool bIsBlocky) |
whether we will use blocky or non-blocky (anti-aliased) texture | |
virtual bool | IsSamplerStateBlocky () |
virtual int32 | GetWidth () |
virtual int32 | GetHeight () |
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 | SetAliasTexParameters () |
void | SetInnerTexture (GLWrapper::Texture2D *texture) |
virtual DeviceTexturePtr_type | GetTexture () |
Get the texture for rendering. | |
virtual const TextureInfo * | GetTextureInfo () |
get texture info. More... | |
GLWrapper::Texture2D * | CreateTextureFromFile_Serial (const std::string &sFileName) |
virtual bool | IsFlipY () |
in most cases this is false, where the image origin is at left, top. More... | |
![]() | |
TextureEntity (const AssetKey &key) | |
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) |
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... | |
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... | |
AnimatedTextureInfo * | GetAnimatedTextureInfo () |
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... | |
![]() | |
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 CParameterBlock * | GetParamBlock (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... | |
AssetKey & | GetKey () |
return the key object. More... | |
AssetState | GetState () |
return the asset state. More... | |
void | SetState (AssetState state) |
set the asset state. More... | |
virtual IAttributeFields * | GetAttributeObject () |
get the attribute object of this asset. More... | |
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... | |
![]() | |
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 IAttributeFields * | GetChildAttributeObject (int nRowIndex, int nColumnIndex=0) |
virtual IAttributeFields * | GetChildAttributeObject (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 CDynamicAttributeField * | GetDynamicField (const std::string &sName) |
Get a dynamic field with a given name. More... | |
virtual CDynamicAttributeField * | GetDynamicField (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... | |
CAttributeClass * | GetAttributeClass () |
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... | |
![]() | |
virtual void | Clone (IObject *obj) const |
Clone the object's contains to a pointer. More... | |
virtual IObject * | Clone () 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 IType * | GetType () const |
virtual std::string | ToString () const |
WeakPtr_type & | GetWeakReference () |
get weak reference object. More... | |
virtual int | ProcessObjectEvent (const ObjectEvent &event) |
this function is only used to backward compatibility of ParaObject:AddEvent() function. More... | |
![]() | |
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 | |
CRefCounted * | AddToAutoReleasePool () |
addref and releases the ownership sometime soon automatically (usually at the end of the current frame). More... | |
Static Public Member Functions | |
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 TextureEntity * | CreateTexture (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 TextureEntity * | CreateTexture (const char *pFileName, uint32 nMipLevels=0, D3DPOOL dwCreatePool=D3DPOOL_MANAGED) |
create a texture entity from file path. More... | |
![]() | |
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 TextureEntity * | CreateTexture (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 TextureEntity * | CreateTexture (const char *pFileName, uint32 nMipLevels=0, D3DPOOL dwCreatePool=D3DPOOL_MANAGED) |
create a texture entity from file path. More... | |
![]() | |
static const string & | GetAssetServerUrl () |
get the asset server url. More... | |
static void | SetAssetServerUrl (const char *pStr) |
set the asset server url. More... | |
![]() | |
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... | |
Protected Attributes | |
union { | |
GLWrapper::Texture2D * m_texture | |
GLWrapper::Texture2D ** m_pTextureSequence | |
}; | |
uint32 | m_nSamplerState |
0 for anti-aliased, 1 for blocky texture. More... | |
![]() | |
WeakPtr_type | m_weak_reference |
![]() | |
int | m_refcount |
Friends | |
class | CRenderTarget |
Additional Inherited Members | |
![]() | |
enum | _SurfaceType { RenderTarget = 0, StaticTexture, TextureSequence, SysMemoryTexture, BlpTexture, TerrainHighResTexture, CubeTexture, FlashTexture, HTMLTexture, TextureSurface, DEPTHSTENCIL } |
![]() | |
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 | |
![]() | |
typedef ParaEngine::weak_ptr< IObject, IAttributeFields > | WeakPtr_type |
![]() | |
typedef ParaEngine::weak_ptr< IObject > | WeakPtr_type |
![]() | |
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... | |
![]() | |
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 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... | |
![]() | |
virtual CAttributeClass * | CreateAttributeClass () |
initialize fields | |
virtual CDynamicAttributesSet * | GetDynamicAttributes (bool bCreateIfNotExist=false) |
texture entity.
|
static |
create a texture entity from memory buffer.
|
static |
create a texture entity from file path.
|
virtual |
get texture info.
return NULL if the texture has never been set before.
Reimplemented from ParaEngine::TextureEntity.
|
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 from ParaEngine::TextureEntity.
|
virtual |
Initializes a texture from an ImageEntity object.
NOTE: It will not convert the pvr image file.
dwTextureFormat | if 0, we will use the image file format. |
Reimplemented from ParaEngine::TextureEntity.
|
virtual |
load from memory buffer.
ppTexture | if NULL, we will save to current asset, if not we will save to this object. |
Reimplemented from ParaEngine::TextureEntity.
|
static |
load image of any format to buffer.
sBufMemFile | the memory file buffer. |
sizeBuf | size of the memory file buffer |
width | [out] |
height | [out] |
ppBuffer | buffer 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. |
bAlpha | if (bAlpha) D3DFMT_A8R8G8B8 4 bytes per pixel else D3DFMT_R8G8B8 3 bytes per pixel. |
|
static |
this function uses FreeImage lib and support more formats.
and width, height can be any number instead of square of 2.
sTextureFileName | only used for file format deduction. |
nFormat | default to 32bits ARGB. PixelFormat24bppRGB, PixelFormat16bppGrayScale, PixelFormat8bppIndexed, PixelFormat32bppARGB, etc |
|
protected |
0 for anti-aliased, 1 for blocky texture.