65 lines
1.7 KiB
C++
65 lines
1.7 KiB
C++
|
|
|
|
#pragma once
|
|
|
|
//Water용 ViewPort
|
|
|
|
#include "SViewPort.h"
|
|
#include <toolkit/XFlag.h>
|
|
#include <dump/XException.h>
|
|
|
|
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;
|
|
}; |