2022-11-20 23:11:54 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "../EterLib/GrpScreen.h"
|
|
|
|
|
|
|
|
class CSnowParticle;
|
|
|
|
|
|
|
|
class CSnowEnvironment : public CScreen
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
CSnowEnvironment();
|
|
|
|
virtual ~CSnowEnvironment();
|
|
|
|
|
|
|
|
bool Create();
|
|
|
|
void Destroy();
|
|
|
|
|
|
|
|
void Enable();
|
|
|
|
void Disable();
|
|
|
|
|
|
|
|
void Update(const D3DXVECTOR3 & c_rv3Pos);
|
|
|
|
void Deform();
|
|
|
|
void Render();
|
|
|
|
|
|
|
|
protected:
|
|
|
|
void __Initialize();
|
|
|
|
bool __CreateBlurTexture();
|
|
|
|
bool __CreateGeometry();
|
|
|
|
void __BeginBlur();
|
|
|
|
void __ApplyBlur();
|
|
|
|
|
|
|
|
protected:
|
2024-03-28 22:27:09 +02:00
|
|
|
LPDIRECT3DSURFACE9 m_lpOldSurface;
|
|
|
|
LPDIRECT3DSURFACE9 m_lpOldDepthStencilSurface;
|
2022-11-20 23:11:54 +02:00
|
|
|
|
2024-03-28 22:27:09 +02:00
|
|
|
LPDIRECT3DTEXTURE9 m_lpSnowTexture;
|
|
|
|
LPDIRECT3DSURFACE9 m_lpSnowRenderTargetSurface;
|
|
|
|
LPDIRECT3DSURFACE9 m_lpSnowDepthSurface;
|
2022-11-20 23:11:54 +02:00
|
|
|
|
2024-03-28 22:27:09 +02:00
|
|
|
LPDIRECT3DTEXTURE9 m_lpAccumTexture;
|
|
|
|
LPDIRECT3DSURFACE9 m_lpAccumRenderTargetSurface;
|
|
|
|
LPDIRECT3DSURFACE9 m_lpAccumDepthSurface;
|
2022-11-20 23:11:54 +02:00
|
|
|
|
2024-03-28 22:27:09 +02:00
|
|
|
LPDIRECT3DVERTEXBUFFER9 m_pVB;
|
|
|
|
LPDIRECT3DINDEXBUFFER9 m_pIB;
|
2022-11-20 23:11:54 +02:00
|
|
|
|
|
|
|
D3DXVECTOR3 m_v3Center;
|
|
|
|
|
|
|
|
WORD m_wBlurTextureSize;
|
|
|
|
CGraphicImageInstance * m_pImageInstance;
|
|
|
|
std::vector<CSnowParticle*> m_kVct_pkParticleSnow;
|
|
|
|
|
|
|
|
DWORD m_dwParticleMaxNum;
|
|
|
|
BOOL m_bBlurEnable;
|
|
|
|
|
|
|
|
BOOL m_bSnowEnable;
|
|
|
|
};
|