Public Member Functions | |
| iMaterial (const tString &asName, iLowLevelGraphics *apLowLevelGraphics, cImageManager *apImageManager, cTextureManager *apTextureManager, cRenderer2D *apRenderer, cGpuProgramManager *apProgramManager, eMaterialPicture aPicture, cRenderer3D *apRenderer3D) | |
| bool | reload () |
| void | unload () |
| void | destroy () |
| virtual void | Compile ()=0 |
| virtual void | Update (float afTimeStep) |
| virtual iGpuProgram * | getGpuProgram (const eMaterialRenderType aType, const int alPass, iLight3D *apLight) |
| virtual iMaterialProgramSetup * | getGpuProgramSetup (const eMaterialRenderType aType, const int alPass, iLight3D *apLight) |
| virtual iGpuProgram * | GetVertexProgram (eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual bool | VertexProgramUsesLight (eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual bool | VertexProgramUsesEye (eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual iMaterialProgramSetup * | GetVertexProgramSetup (eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual iGpuProgram * | GetFragmentProgram (eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual iMaterialProgramSetup * | GetFragmentProgramSetup (eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual eMaterialAlphaMode | GetAlphaMode (eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual eMaterialBlendMode | GetBlendMode (eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual eMaterialChannelMode | GetChannelMode (eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual iTexture * | GetTexture (int alUnit, eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual eMaterialBlendMode | GetTextureBlend (int alUnit, eMaterialRenderType aType, int alPass, iLight3D *apLight) |
| virtual int | GetNumOfPasses (eMaterialRenderType aType, iLight3D *apLight) |
| virtual bool | UsesType (eMaterialRenderType aType) |
| bool | HasAlpha () |
| void | SetHasAlpha (bool abX) |
| bool | GetDepthTest () |
| void | SetDepthTest (bool abX) |
| float | GetValue () |
| void | SetValue (float afX) |
| virtual bool | LoadData (TiXmlElement *apRootElem) |
| virtual bool | StartRendering (eMaterialRenderType aType, iCamera *apCam, iLight *pLight)=0 |
| virtual void | EndRendering (eMaterialRenderType mType)=0 |
| virtual tVtxBatchFlag | GetBatchFlags (eMaterialRenderType mType)=0 |
| virtual bool | NextPass (eMaterialRenderType mType)=0 |
| virtual bool | HasMultiplePasses (eMaterialRenderType mType)=0 |
| virtual eMaterialType | GetType (eMaterialRenderType mType)=0 |
| virtual void | EditVertexes (eMaterialRenderType mType, iCamera *apCam, iLight *pLight, tVertexVec *apVtxVec, cVector3f *apTransform, unsigned int alIndexAdd)=0 |
| iTexture * | GetTexture (eMaterialTexture aType) |
| cRect2f | GetTextureOffset (eMaterialTexture aType) |
| void | SetTexture (iTexture *apTex, eMaterialTexture aType) |
| void | SetImage (cResourceImage *apImg, eMaterialTexture aType) |
| cResourceImage * | GetImage (eMaterialTexture aType) |
| void | SetProgram (iGpuProgram *apProgram, eGpuProgramType aType, unsigned int alNum) |
| iGpuProgram * | GetProgram (eGpuProgramType aType, unsigned int alNum) |
| virtual bool | IsTransperant () |
| virtual bool | IsGlowing () |
| virtual bool | UsesLights () |
| virtual tTextureTypeList | GetTextureTypes () |
| void | SetId (int alId) |
| int | GetId () |
| virtual iGpuProgram * | getRefractionProgram () |
| virtual bool | GetRefractionUsesDiffuse () |
| virtual eMaterialTexture | GetRefractionDiffuseTexture () |
| virtual bool | GetRefractionUsesEye () |
| virtual bool | GetRefractionUsesTime () |
| virtual bool | GetRefractionSkipsStandardTrans () |
| const tString & | GetPhysicsMaterial () |
| void | SetPhysicsMaterial (const tString &asName) |
Public Member Functions inherited from hpl::iResourceBase | |
| iResourceBase (tString asName, unsigned long alPrio) | |
| tString | GetName () |
| unsigned long | GetHandle () |
| void | SetHandle (unsigned long alHandle) |
| tString | GetFilePath () |
| unsigned long | GetTime () |
| unsigned long | GetPrio () |
| unsigned long | GetSize () |
| void | SetLogDestruction (bool abX) |
| unsigned int | GetUserCount () |
| void | IncUserCount () |
| void | DecUserCount () |
| bool | HasUsers () |
Static Public Member Functions | |
| static void | SetQuality (eMaterialQuality aQuality) |
| static eMaterialQuality | GetQuality () |
Static Public Member Functions inherited from hpl::iResourceBase | |
| static bool | GetLogCreateAndDelete () |
| static void | SetLogCreateAndDelete (bool abX) |
Protected Attributes | |
| iLowLevelGraphics * | mpLowLevelGraphics |
| cImageManager * | mpImageManager |
| cTextureManager * | mpTextureManager |
| cRenderer2D * | mpRenderer |
| cRenderer3D * | mpRenderer3D |
| cRenderSettings * | mpRenderSettings |
| cGpuProgramManager * | mpProgramManager |
| bool | mbIsTransperant |
| bool | mbIsGlowing |
| bool | mbUsesLights |
| bool | mbHasAlpha |
| bool | mbDepthTest |
| float | mfValue |
| int | mlId |
| tString | msPhysicsMaterial |
| tTextureVec | mvTexture |
| tResourceImageVec | mvImage |
| eMaterialType | mType |
| eMaterialPicture | mPicture |
| iGpuProgram * | mpProgram [2][(5)] |
| int | mlPassCount |
Protected Attributes inherited from hpl::iResourceBase | |
| unsigned int | mlPrio |
| unsigned long | mlTime |
| unsigned long | mlSize |
| unsigned int | mlUserCount |
| unsigned long | mlHandle |
| tString | msName |
| tString | msFilePath |
| bool | mbLogDestruction |
Static Protected Attributes | |
| static eMaterialQuality | mQuality |
Static Protected Attributes inherited from hpl::iResourceBase | |
| static bool | mbLogCreateAndDelete |
|
inlinevirtual |
virtual bool Reload()=0;
Implements hpl::iResourceBase.
|
inlinevirtual |
Free most the memory, save info to get started again.
Implements hpl::iResourceBase.
|
inlinevirtual |
Free all memory.
Implements hpl::iResourceBase.
|
pure virtual |
Here the set up should be done like setting texture units, blend mode, etc
| mType | |
| apCam | |
| *pLight |
Implemented in hpl::iMaterial_BaseLight, hpl::cMaterial_EnvMap_Reflect, hpl::cMaterial_Water, hpl::iMaterial_Fallback01_BaseLight, hpl::iMaterial_Fallback02_BaseLight, hpl::cMaterial_Additive, hpl::cMaterial_Alpha, hpl::cMaterial_Modulative, hpl::cMaterial_ModulativeX2, hpl::cMaterial_Flat, hpl::cMaterial_BumpSpec2D, hpl::cMaterial_Diffuse2D, hpl::cMaterial_DiffuseAdditive2D, hpl::cMaterial_DiffuseAlpha2D, hpl::cMaterial_FontNormal, and hpl::cMaterial_Smoke2D.
|
pure virtual |
Here all stuff should be set back to normal, like unbinding gpu programs
| mType |
Implemented in hpl::iMaterial_BaseLight, hpl::cMaterial_EnvMap_Reflect, hpl::cMaterial_Water, hpl::iMaterial_Fallback01_BaseLight, hpl::iMaterial_Fallback02_BaseLight, hpl::cMaterial_Additive, hpl::cMaterial_Alpha, hpl::cMaterial_Modulative, hpl::cMaterial_ModulativeX2, hpl::cMaterial_Flat, hpl::cMaterial_BumpSpec2D, hpl::cMaterial_Diffuse2D, hpl::cMaterial_DiffuseAdditive2D, hpl::cMaterial_DiffuseAlpha2D, hpl::cMaterial_FontNormal, and hpl::cMaterial_Smoke2D.
|
pure virtual |
Return the data types needed for rendering.
| mType |
Implemented in hpl::iMaterial_BaseLight, hpl::cMaterial_EnvMap_Reflect, hpl::cMaterial_Water, hpl::iMaterial_Fallback01_BaseLight, hpl::iMaterial_Fallback02_BaseLight, hpl::cMaterial_Additive, hpl::cMaterial_Alpha, hpl::cMaterial_Modulative, hpl::cMaterial_ModulativeX2, hpl::cMaterial_Flat, hpl::cMaterial_BumpSpec2D, hpl::cMaterial_Diffuse2D, hpl::cMaterial_DiffuseAdditive2D, hpl::cMaterial_DiffuseAlpha2D, hpl::cMaterial_FontNormal, and hpl::cMaterial_Smoke2D.
|
pure virtual |
Set new states and return true for another pass
| mType |
Implemented in hpl::iMaterial_BaseLight, hpl::cMaterial_EnvMap_Reflect, hpl::cMaterial_Water, hpl::iMaterial_Fallback01_BaseLight, hpl::iMaterial_Fallback02_BaseLight, hpl::cMaterial_Additive, hpl::cMaterial_Alpha, hpl::cMaterial_Modulative, hpl::cMaterial_ModulativeX2, hpl::cMaterial_Flat, hpl::cMaterial_BumpSpec2D, hpl::cMaterial_Diffuse2D, hpl::cMaterial_DiffuseAdditive2D, hpl::cMaterial_DiffuseAlpha2D, hpl::cMaterial_FontNormal, and hpl::cMaterial_Smoke2D.
|
pure virtual |
return true if the program has multple passes
| mType |
Implemented in hpl::iMaterial_BaseLight, hpl::cMaterial_EnvMap_Reflect, hpl::cMaterial_Water, hpl::iMaterial_Fallback01_BaseLight, hpl::iMaterial_Fallback02_BaseLight, hpl::cMaterial_Additive, hpl::cMaterial_Alpha, hpl::cMaterial_Modulative, hpl::cMaterial_ModulativeX2, hpl::cMaterial_Flat, hpl::cMaterial_BumpSpec2D, hpl::cMaterial_Diffuse2D, hpl::cMaterial_DiffuseAdditive2D, hpl::cMaterial_DiffuseAlpha2D, hpl::cMaterial_FontNormal, and hpl::cMaterial_Smoke2D.
|
pure virtual |
Get type
| mType |
Implemented in hpl::iMaterial_BaseLight, hpl::cMaterial_EnvMap_Reflect, hpl::cMaterial_Water, hpl::iMaterial_Fallback01_BaseLight, hpl::iMaterial_Fallback02_BaseLight, hpl::cMaterial_Additive, hpl::cMaterial_Alpha, hpl::cMaterial_Modulative, hpl::cMaterial_ModulativeX2, hpl::cMaterial_Flat, hpl::cMaterial_BumpSpec2D, hpl::cMaterial_DiffuseAdditive2D, hpl::cMaterial_Diffuse2D, hpl::cMaterial_DiffuseAlpha2D, hpl::cMaterial_FontNormal, and hpl::cMaterial_Smoke2D.
|
inlinevirtual |
return true if the material is transparent
|
inlinevirtual |
return true if the material has a light pass
|
inline |
The type of the material
| alId |