#pragma once #include "Mesh.h" #include "Parameters.h" #include "DXTexture.h" #include "ParticleSystem.h" class Explosion { IDirect3DDevice9* pd3dDevice; ID3DXEffect* g_pEffect; IDirect3DTexture9* ColorTexture; CDXTexture* FrameBufferTexture; CDXTexture* ParticleTexture; CDXTexture* HeatTexture; CDXTexture* PhaseTexture; IDirect3DVertexBuffer9* FullScreenQuad; UINT m_ScreenWidth; UINT m_ScreenHeight; int particleTexRatio; int lastRatio; Mesh* mesh; HRESULT hr; // return codes ParticleSystem pSys; void destroyParticleTex(); void createParticleTex(); void renderPhaseTexture(); bool phaseCreated; public: CModelViewerCamera* camera; //!! Parameters* params; D3DXVECTOR3* LightPos; public: Explosion(void); ~Explosion(void); void OnFrameRender( D3DXMATRIXA16& mView, D3DXMATRIXA16& mProj ); void OnCreateDevice( IDirect3DDevice9* pd3dDevice); void OnDestroyDevice(); void OnResetDevice(const D3DSURFACE_DESC* pBackBufferDesc); void OnLostDevice(); void SetWorldViewProj(D3DXMATRIXA16& mWorld, D3DXMATRIXA16& mView, D3DXMATRIXA16& mProj ); void addUiParams(Parameters& p); void slidersChanged(); };