28 #ifndef HPL_MATERIAL_BASE_LIGHT_H 29 #define HPL_MATERIAL_BASE_LIGHT_H 31 #include "hpl1/engine/graphics/GPUProgram.h" 32 #include "hpl1/engine/graphics/Material.h" 33 #include "hpl1/engine/scene/Light3D.h" 35 enum eBaseLightProgram {
36 eBaseLightProgram_Point1 = 0,
37 eBaseLightProgram_Point2 = 1,
38 eBaseLightProgram_Point3 = 2,
39 eBaseLightProgram_Spot1 = 3,
40 eBaseLightProgram_Spot2 = 4,
41 eBaseLightProgram_Spot3 = 5,
42 eBaseLightProgram_LastEnum = 6
55 const tString &asLightFragmentProgram,
60 eMaterialPicture aPicture,
cRenderer3D *apRenderer3D);
66 bool UsesType(eMaterialRenderType aType);
68 iGpuProgram *getGpuProgram(
const eMaterialRenderType aType,
const int alPass,
iLight3D *apLight);
71 bool VertexProgramUsesLight(eMaterialRenderType aType,
int alPass,
iLight3D *apLight);
72 bool VertexProgramUsesEye(eMaterialRenderType aType,
int alPass,
iLight3D *apLight);
74 eMaterialAlphaMode GetAlphaMode(eMaterialRenderType aType,
int alPass,
iLight3D *apLight);
75 eMaterialBlendMode GetBlendMode(eMaterialRenderType aType,
int alPass,
iLight3D *apLight);
76 eMaterialChannelMode GetChannelMode(eMaterialRenderType aType,
int alPass,
iLight3D *apLight);
78 iTexture *GetTexture(
int alUnit, eMaterialRenderType aType,
int alPass,
iLight3D *apLight);
79 eMaterialBlendMode GetTextureBlend(
int alUnit, eMaterialRenderType aType,
int alPass,
iLight3D *apLight);
81 int GetNumOfPasses(eMaterialRenderType aType,
iLight3D *apLight);
89 bool NextPass(eMaterialRenderType aType) {
return false; }
91 eMaterialType
GetType(eMaterialRenderType aType) {
return eMaterialType_Diffuse; }
92 void EditVertexes(eMaterialRenderType aType,
iCamera *apCam,
iLight *pLight,
99 bool mbUsesTwoPassSpot;
104 bool mbUseColorSpecular;
114 #endif // HPL_MATERIAL_BASE_LIGHT_H
void EndRendering(eMaterialRenderType aType)
Definition: Material_BaseLight.h:87
Definition: Renderer3D.h:77
Definition: Light3D.h:117
Definition: GpuProgramManager.h:39
Definition: Material.h:181
eMaterialType GetType(eMaterialRenderType aType)
Definition: Material_BaseLight.h:91
Definition: Material_BaseLight.h:52
Definition: Renderer2D.h:79
Definition: Renderer3D.h:139
bool StartRendering(eMaterialRenderType aType, iCamera *apCam, iLight *pLight)
Definition: Material_BaseLight.h:86
Definition: Material_BaseLight.h:47
Definition: TextureManager.h:47
bool NextPass(eMaterialRenderType aType)
Definition: Material_BaseLight.h:89
Definition: ImageManager.h:48
Definition: Material.h:203
bool HasMultiplePasses(eMaterialRenderType aType)
Definition: Material_BaseLight.h:90
Definition: LowLevelGraphics.h:200
Definition: GPUProgram.h:62
tVtxBatchFlag GetBatchFlags(eMaterialRenderType aType)
Definition: Material_BaseLight.h:88