Esempio n. 1
0
        public static VRageRender.MyBillboard AddBillboardParticle(MyAnimatedParticle particle, VRageRender.MyBillboard effectBillboard, bool sort)
        {
            //MyBillboard billboard = m_preallocatedParticleBillboards.Allocate();
            //VRageRender.MyBillboard billboard = new VRageRender.MyBillboard();
            VRageRender.MyBillboard billboard = VRageRender.MyRenderProxy.BillboardsPoolWrite.Allocate();
            if (billboard != null)
            {
                MyTransparentGeometry.StartParticleProfilingBlock("item.Value.Draw");
                if (particle.Draw(billboard) == true)
                {
                    if (!sort)
                    {
                        effectBillboard.ContainedBillboards.Add(billboard);
                    }

                    MyPerformanceCounter.PerCameraDrawWrite.NewParticlesCount++;
                }

                billboard.CustomViewProjection = -1;

                MyTransparentGeometry.EndParticleProfilingBlock();
            }

            return(billboard);
        }
Esempio n. 2
0
 public static void DeallocateAnimatedParticle(MyAnimatedParticle particle)
 {
     m_animatedParticles.Deallocate(particle);
 }