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

texture entity. More...

#include <TextureEntityOpenGL.h>

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

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 TextureInfoGetTextureInfo ()
 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...
 
- Public Member Functions inherited from ParaEngine::TextureEntity
 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...
 
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 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 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 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::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...
 

Protected Attributes

union {
   GLWrapper::Texture2D *   m_texture
 
   GLWrapper::Texture2D **   m_pTextureSequence
 
}; 
 
uint32 m_nSamplerState
 0 for anti-aliased, 1 for blocky texture. More...
 
- Protected Attributes inherited from ParaEngine::IObject
WeakPtr_type m_weak_reference
 
- Protected Attributes inherited from ParaEngine::CRefCounted
int m_refcount
 

Friends

class CRenderTarget
 

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

Detailed Description

texture entity.

Member Function Documentation

§ CreateTexture() [1/2]

static TextureEntity* ParaEngine::TextureEntityOpenGL::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]

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

create a texture entity from file path.

§ GetTextureInfo()

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

get texture info.

return NULL if the texture has never been set before.

Reimplemented from ParaEngine::TextureEntity.

§ IsFlipY()

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

§ LoadFromImage()

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

§ LoadFromMemory()

virtual HRESULT ParaEngine::TextureEntityOpenGL::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::TextureEntityOpenGL::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()

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

Member Data Documentation

§ m_nSamplerState

uint32 ParaEngine::TextureEntityOpenGL::m_nSamplerState
protected

0 for anti-aliased, 1 for blocky texture.


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