sqwarmed/sdk_src/game/client/particlesphererenderer.cpp

50 lines
1.4 KiB
C++

//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#include "cbase.h"
#include "ParticleSphereRenderer.h"
#include "materialsystem/IMaterialVar.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
CParticleSphereRenderer::CParticleSphereRenderer()
{
m_vBaseColor.Init();
memset( &m_AmbientLight, 0, sizeof( m_AmbientLight ) );
memset( &m_DirectionalLight, 0, sizeof( m_DirectionalLight ) );
m_bUsingPixelShaders = false;
m_iLastTickStartRenderCalled = -1;
m_pParticleMgr = NULL;
}
void CParticleSphereRenderer::Init( CParticleMgr *pParticleMgr, IMaterial *pMaterial )
{
m_pParticleMgr = pParticleMgr;
// Figure out how we need to draw.
bool bFound = false;
IMaterialVar *pVar = pMaterial->FindVar( "$USINGPIXELSHADER", &bFound, false );
if( bFound && pVar && pVar->GetIntValue() )
m_bUsingPixelShaders = true;
else
m_bUsingPixelShaders = false;
}
void CParticleSphereRenderer::StartRender( VMatrix &effectMatrix )
{
// We're about to be rendered.. set our directional lighting parameters for this particle system.
if ( m_pParticleMgr )
{
m_pParticleMgr->SetDirectionalLightInfo( m_DirectionalLight );
}
m_iLastTickStartRenderCalled = gpGlobals->tickcount;
}