Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
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.

50 lines
1.3 KiB

5 years ago
//========= Copyright 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;
}