// // // win_lightefects.h // // Declaration of class for pixel shader light effects // // #ifndef _WIN_LIGHTEFFECTS_H_ #define _WIN_LIGHTEFFECTS_H_ class LightEffects { public: LPDIRECT3DCUBETEXTURE9 m_pCubeMap; // Normalization cubemap LPDIRECT3DTEXTURE9 m_pBumpMap; LPDIRECT3DTEXTURE9 m_pSpecularMap; LPDIRECT3DVOLUMETEXTURE9 m_pFalloffMap; DWORD m_dwVertexShaderLight; DWORD m_dwPixelShaderLight; DWORD m_dwVertexShaderSpecular_Dynamic; DWORD m_dwPixelShaderSpecular_Dynamic; DWORD m_dwVertexShaderSpecular_Static; DWORD m_dwPixelShaderSpecular_Static; DWORD m_dwVertexShaderEnvironment; DWORD m_dwVertexShaderBump; DWORD m_dwPixelShaderBump; bool m_bInLightPhase; bool m_bInitialized; public: LightEffects(); virtual ~LightEffects(); bool Initialize(); void ProcessVertices(D3DXVECTOR3* pDirLightDir, D3DXVECTOR3* pPtLightPos); bool RenderDynamicLights(); bool RenderStaticLights(); void RenderSpecular(); bool RenderSpecular_Dynamic(); bool RenderSpecular_Static(); bool RenderEnvironment(); void RenderBump(); bool CreateNormalizationCubeMap( DWORD dwSize, LPDIRECT3DCUBETEXTURE9* ppCubeMap ); void StartLightPhase(); void EndLightPhase(); }; #endif