#pragma once #include "renderer.h" #include "Object3d.h" class OceanRenderer : public Renderer { public: OceanRenderer(void); ~OceanRenderer(void); virtual void init(); virtual void render(); virtual void OnLostDevice( void* pUserContext ); virtual void OnDestroyDevice( void* pUserContext ); virtual HRESULT OnResetDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext ); virtual bool isLowerThan(Renderer* renderer); void setEffect(ID3DXEffect* effect); private: ID3DXEffect* OceanEffect; D3DXHANDLE ShaderTechHandle; D3DXHANDLE ShaderTechHandleDepth; D3DXHANDLE WorldHandle; D3DXHANDLE WorldViewHandle; D3DXHANDLE WorldViewProjectionHandle; D3DXHANDLE ViewInverseHandle; D3DXHANDLE TimeHandle; D3DXHANDLE RayHandle; D3DXHANDLE FarPlaneMinusNearPlaneHandle; D3DXMATRIX worldViewMat; D3DXMATRIX worldViewProjMat; D3DXMATRIX viewInverseMatrix; float angle; };