You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
1.7 KiB
82 lines
1.7 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//
|
||
|
//=============================================================================//
|
||
|
// FIXME: Should we just pass the Particle draw members directly as
|
||
|
// arguments to IParticleEffect::SimulateAndRender?
|
||
|
|
||
|
// This file defines and implements the ParticleDraw class, which is used
|
||
|
// by ParticleEffects to render particles. It simply stores render + simulation
|
||
|
// state
|
||
|
//
|
||
|
|
||
|
#ifndef PARTICLEDRAW_H
|
||
|
#define PARTICLEDRAW_H
|
||
|
|
||
|
|
||
|
class IMaterial;
|
||
|
class CMeshBuilder;
|
||
|
class CParticleSubTexture;
|
||
|
|
||
|
|
||
|
class ParticleDraw
|
||
|
{
|
||
|
friend class CParticleEffectBinding;
|
||
|
|
||
|
public:
|
||
|
|
||
|
ParticleDraw();
|
||
|
|
||
|
void Init( CMeshBuilder *pMeshBuilder, IMaterial *pMaterial, float fTimeDelta );
|
||
|
|
||
|
// Time delta..
|
||
|
float GetTimeDelta() const;
|
||
|
|
||
|
// Get the material being used (mostly useful for getting the tcoord padding).
|
||
|
//IMaterial* GetPMaterial();
|
||
|
|
||
|
// This can return NULL if the particle system is only being simulated.
|
||
|
CMeshBuilder* GetMeshBuilder();
|
||
|
|
||
|
CParticleSubTexture *m_pSubTexture;
|
||
|
|
||
|
private:
|
||
|
CMeshBuilder *m_pMeshBuilder;
|
||
|
IMaterial *m_pMaterial;
|
||
|
float m_fTimeDelta;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
// ------------------------------------------------------------------------- //
|
||
|
// Inlines
|
||
|
// ------------------------------------------------------------------------- //
|
||
|
|
||
|
inline ParticleDraw::ParticleDraw()
|
||
|
{
|
||
|
m_pMaterial = 0;
|
||
|
}
|
||
|
|
||
|
inline void ParticleDraw::Init( CMeshBuilder *pMeshBuilder, IMaterial *pMaterial, float fTimeDelta )
|
||
|
{
|
||
|
m_pMeshBuilder = pMeshBuilder;
|
||
|
m_pMaterial = pMaterial;
|
||
|
m_fTimeDelta = fTimeDelta;
|
||
|
}
|
||
|
|
||
|
inline float ParticleDraw::GetTimeDelta() const
|
||
|
{
|
||
|
return m_fTimeDelta;
|
||
|
}
|
||
|
|
||
|
inline CMeshBuilder* ParticleDraw::GetMeshBuilder()
|
||
|
{
|
||
|
return m_pMeshBuilder;
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
|