#pragma once //Water용 ViewPort #include "SViewPort.h" #include #include class K3DVertexBuffer; class KMeshPrimitive; //class SShadowViewPort; class KTextureManager; class SWaterViewPort : public SViewPort { public: SWaterViewPort( bool bClearColorBuffer = true, bool bClearDepthBuffer = true ); virtual ~SWaterViewPort(); virtual void Initilaize( K3DRenderDevice *dev, const KViewportStruct &viewarea, float nearClip, float farClip ); virtual void SetCamera( const K3DCamera *cam ); virtual float GetVertexAspect() const { return (float)m_fVertexAspectForWater; } virtual void Register( K3DPrimitive *pr, DWORD flag ); virtual void ClearRegisteredList(); virtual void Render( bool bClearRegister = true, bool bSetRenderTarget = true ); float GetWaterHeight() { return m_fWaterHeight; } K3DTexture* GetWaterBump() { return m_spWaterBumpTexture; } K3DTexture* GetWaterReflection() { return m_spWaterReflectionTexture; } void SetHQWaterHeight(float val) { m_fHQWaterHeight = val; } float GetHqWaterHeight() { return m_fHQWaterHeight; } #ifndef NDEBUG void SetDebugMode( bool bDebugMode ) { m_bDebugMode = bDebugMode; } #endif void SetWaterQuality(int nQuality); int GetWaterQuality() { return m_nWaterQuality; } //void SetGameViewport(SViewPort* pViewport) { m_pGameViewport = pViewport; } protected: #ifndef NDEBUG bool m_bDebugMode; #endif float m_fVertexAspectForWater; ///< 렌더 타겟이 사용될 곳의 vertex aspect K3DTextureSPtr m_spWaterBumpTexture; ///< 물 텍스처 K3DRenderTargetSPtr m_spWaterReflectionTexture; ///< 비치는 환경 텍스처 int m_nWaterQuality; float m_fHQWaterHeight; //SViewPort* m_pGameViewport; };