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; }