Represents an .mtl instance that can be applied to geometry in the scene. More...
#include 
| Public Member Functions | |
| virtual bool | IsValid () const =0 | 
| virtual void | AddRef ()=0 | 
| virtual void | Release ()=0 | 
| virtual int | GetNumRefs ()=0 | 
| virtual IMaterialHelpers & | GetMaterialHelpers ()=0 | 
| virtual IMaterialManager * | GetMaterialManager ()=0 | 
| virtual void | SetName (const char *pName)=0 | 
| Set material name, (Do not use this directly, to change material name use I3DEngine::RenameMatInfo method). | |
| virtual const char * | GetName () const =0 | 
| Returns material name. | |
| virtual void | SetFlags (int flags)=0 | 
| virtual int | GetFlags () const =0 | 
| virtual bool | IsDefault () const =0 | 
| Returns true if this is the default material. | |
| virtual int | GetSurfaceTypeId () const =0 | 
| virtual void | SetSurfaceType (const char *sSurfaceTypeName)=0 | 
| Assign a different surface type to this material. | |
| virtual ISurfaceType * | GetSurfaceType ()=0 | 
| virtual void | SetMatTemplate (const char *sMatTemplate)=0 | 
| Assign a different surface type to this material. | |
| virtual IMaterial * | GetMatTemplate ()=0 | 
| virtual void | SetShaderItem (const SShaderItem &_ShaderItem)=0 | 
| Shader item. | |
| virtual void | IncrementModificationId ()=0 | 
| Used to detect the cases when dependent permanent render objects have to be updated. | |
| virtual void | AssignShaderItem (const SShaderItem &_ShaderItem)=0 | 
| EF_LoadShaderItem return value with RefCount = 1, so if you'll use SetShaderItem after EF_LoadShaderItem use Assign function. | |
| virtual SShaderItem & | GetShaderItem ()=0 | 
| virtual const SShaderItem & | GetShaderItem () const =0 | 
| virtual SShaderItem & | GetShaderItem (int nSubMtlSlot)=0 | 
| virtual const SShaderItem & | GetShaderItem (int nSubMtlSlot) const =0 | 
| virtual bool | IsStreamedIn (const int nMinPrecacheRoundIds[MAX_STREAM_PREDICTION_ZONES], IRenderMesh *pRenderMesh) const =0 | 
| Returns true if streamed in. | |
| virtual bool | IsStreamedIn (const int nMinPrecacheRoundIds[MAX_STREAM_PREDICTION_ZONES]) const =0 | 
| virtual void | SetSubMtlCount (int numSubMtl)=0 | 
| virtual int | GetSubMtlCount ()=0 | 
| Returns number of child sub materials holded by this material. | |
| virtual IMaterial * | GetSubMtl (int nSlot)=0 | 
| Return sub material at specified index. | |
| virtual void | SetSubMtl (int nSlot, IMaterial *pMtl)=0 | 
| virtual void | SetLayerCount (uint32 nCount)=0 | 
| Returns number of layers in this material. | |
| virtual uint32 | GetLayerCount () const =0 | 
| Returns number of layers in this material. | |
| virtual void | SetLayer (uint32 nSlot, IMaterialLayer *pLayer)=0 | 
| Set layer at slot id (### MUST ALOCATE SLOTS FIRST ### USING SetLayerCount). | |
| virtual const IMaterialLayer * | GetLayer (uint8 nLayersMask, uint8 nLayersUsageMask) const =0 | 
| Return active layer. | |
| virtual const IMaterialLayer * | GetLayer (uint32 nSlot) const =0 | 
| Return layer at slot id. | |
| virtual IMaterialLayer * | CreateLayer ()=0 | 
| Create a new layer. | |
| virtual IMaterial * | GetSafeSubMtl (int nSlot)=0 | 
| virtual int | FillSurfaceTypeIds (int pSurfaceIdsTable[])=0 | 
| virtual void | SetUserData (void *pUserData)=0 | 
| Set user data used to link with the Editor. | |
| virtual void * | GetUserData () const =0 | 
| virtual bool | SetGetMaterialParamFloat (const char *sParamName, float &v, bool bGet)=0 | 
| virtual bool | SetGetMaterialParamVec3 (const char *sParamName, Vec3 &v, bool bGet)=0 | 
| virtual void | SetTexture (int textureId, int textureSlot=EFTT_DIFFUSE)=0 | 
| virtual void | SetSubTexture (int textureId, int subMaterialSlot, int textureSlot=EFTT_DIFFUSE)=0 | 
| virtual void | SetCamera (CCamera &cam)=0 | 
| Set Optional Camera for material (Used for monitors that look thru camera). | |
| virtual void | GetMemoryUsage (ICrySizer *pSizer) const =0 | 
| virtual size_t | GetResourceMemoryUsage (ICrySizer *pSizer)=0 | 
| virtual const char * | GetLoadingCallstack ()=0 | 
| Trace leaking materials by callstack. | |
| virtual void | RequestTexturesLoading (const float fMipFactor)=0 | 
| Requests texture streamer to start loading textures asynchronously. | |
| virtual void | ForceTexturesLoading (const float fMipFactor)=0 | 
| Force texture streamer to start and finish loading textures asynchronously but within one frame, disregarding mesh visibility etc. | |
| virtual void | ForceTexturesLoading (const int iScreenTexels)=0 | 
| virtual void | PrecacheMaterial (const float fEntDistance, struct IRenderMesh *pRenderMesh, bool bFullUpdate, bool bDrawNear=false)=0 | 
| virtual int | GetTextureMemoryUsage (ICrySizer *pSizer, int nMatID=-1)=0 | 
| virtual void | SetMaterialLinkName (const char *name)=0 | 
| virtual const char * | GetMaterialLinkName () const =0 | 
| virtual void | SetKeepLowResSysCopyForDiffTex ()=0 | 
| virtual CryCriticalSection & | GetSubMaterialResizeLock ()=0 | 
| virtual void | ActivateDynamicTextureSources (bool activate)=0 | 
| Public Attributes | |
| uint8 | m_ucDefautMappingAxis | 
| Default texture mapping. | |
| float | m_fDefautMappingScale | 
Represents an .mtl instance that can be applied to geometry in the scene.
| 
 | pure virtual | 
Fill an array of integeres representing surface ids of the sub materials or the material itself.
| pSurfaceIdsTable | Pointer to the array of int with size enough to hold MAX_SUB_MATERIALS surface type ids. | 
| 
 | pure virtual | 
Always get a valid material. If not multi material return this material. If Multi material return Default material if wrong id.
| 
 | pure virtual | 
Returns shader item for correct sub material or for single material. Even if this is not sub material or nSubMtlSlot is invalid, it will return valid renderable shader item.
| 
 | pure virtual | 
Estimates texture memory usage for this material. When nMatID is not negative only caluclate for one sub-material.
| 
 | pure virtual | 
Material flags.
| 
 | pure virtual | 
Set & retrieve a material link name. This value by itself is not used by the material system per-se and hence has no real effect However it is used on a higher level to tie related materials together, e.g. by procedural breakable glass to determine which material to switch to.
| 
 | pure virtual | 
Assign material to the sub mtl slot. Must first allocate slots using SetSubMtlCount.
| 
 | pure virtual | 
Sub-material access. Sets number of child sub materials holded by this material.