Exemple #1
0
void CSimpleGlowEmitter::RenderParticles(CParticleRenderIterator *pIterator)
{
    unsigned char viewMask = CurrentViewMask();
    if (!WasTestedInView(CurrentViewMask()))
    {
        pixelvis_queryparams_t params;
        params.Init(GetSortOrigin());

        float visible = PixelVisibility_FractionVisible(params, &m_queryHandle);
        if (visible == 0.0f)
        {
            if ((gpGlobals->curtime - m_startTime) <= 0.1f)
                return;
            SetVisibleInView(viewMask, false);
        }
        else
        {
            SetVisibleInView(viewMask, true);
        }

        SetTestedInView(viewMask, true);
    }
    if (!IsVisibleInView(viewMask))
        return;

    BaseClass::RenderParticles(pIterator);
}
bool CNewParticleEffect::RecalculateBoundingBox()
{
	BloatBoundsUsingControlPoint();
	if ( m_MaxBounds.x < m_MinBounds.x )
	{
		m_MaxBounds = m_MinBounds = GetSortOrigin();
		return false;
	}

	return true;
}