public void UnloadContent()
        {
            effectCache2d.UnLoad();
            BokuGame.Release(ref effect2d);
            BokuGame.Release(ref effect3d);

            SharedEmitterManager.UnloadContent();

            BaseSpriteEmitter.UnloadContent();

            ExplosionEmitter.UnloadContent();  // Remove the static texture instance.
            FlowerEmitter.UnloadContent();     // Remove the static texture instance.
            HeartEmitter.UnloadContent();      // Remove the static texture instance.
            SmokeEmitter.UnloadContent();      // Remove the static texture instance.
            StarEmitter.UnloadContent();
            SteamEmitter.UnloadContent();
            SwearEmitter.UnloadContent();
            WreathEmitter.UnloadContent();

            BeamExplosionEmitter.UnloadContent();
            BeamSmokeEmitter.UnloadContent();
            ScanExplosionEmitter.UnloadContent();
            ScanSmokeEmitter.UnloadContent();
            RoverScanExplosionEmitter.UnloadContent();
            RoverScanSmokeEmitter.UnloadContent();
            InspectExplosionEmitter.UnloadContent();
            InspectSmokeEmitter.UnloadContent();
            FanEmitter.UnloadContent();
            InkEmitter.UnloadContent();
        }   // end of ParticleSystemManager UnloadContent()
        }   // end of ParticleSystemManager UnloadContent()

        public void DeviceReset(GraphicsDevice device)
        {
            SharedEmitterManager.DeviceReset(device);

            BaseSpriteEmitter.DeviceReset(device);

            ExplosionEmitter.DeviceReset(device);
            FlowerEmitter.DeviceReset(device);
            HeartEmitter.DeviceReset(device);
            SmokeEmitter.DeviceReset(device);
            StarEmitter.DeviceReset(device);
            SteamEmitter.DeviceReset(device);
            SwearEmitter.DeviceReset(device);
            WreathEmitter.DeviceReset(device);

            BeamExplosionEmitter.DeviceReset(device);
            BeamSmokeEmitter.DeviceReset(device);
            ScanExplosionEmitter.DeviceReset(device);
            ScanSmokeEmitter.DeviceReset(device);
            RoverScanExplosionEmitter.DeviceReset(device);
            RoverScanSmokeEmitter.DeviceReset(device);
            InspectExplosionEmitter.DeviceReset(device);
            InspectSmokeEmitter.DeviceReset(device);
            FanEmitter.DeviceReset(device);
            InkEmitter.DeviceReset(device);
        }
        }   // end of ParticleSystemManager ClearAllEmitters()

        public void LoadContent(bool immediate)
        {
            if (effect2d == null)
            {
                effect2d = BokuGame.Load <Effect>(BokuGame.Settings.MediaPath + @"Shaders\Particle2D");
                effectCache2d.Load(effect2d);
            }

            if (effect3d == null)
            {
                effect3d = BokuGame.Load <Effect>(BokuGame.Settings.MediaPath + @"Shaders\Particle3D");
                ShaderGlobals.RegisterEffect("Particel3D", effect3d);
                effectCache3d.Load(effect3d);
            }

            SharedEmitterManager.LoadContent(immediate);

            BaseSpriteEmitter.LoadContent(immediate);

            ExplosionEmitter.LoadContent(immediate);
            FlowerEmitter.LoadContent(immediate);
            HeartEmitter.LoadContent(immediate);
            SmokeEmitter.LoadContent(immediate);
            StarEmitter.LoadContent(immediate);
            SteamEmitter.LoadContent(immediate);
            SwearEmitter.LoadContent(immediate);
            WreathEmitter.LoadContent(immediate);
            BeamExplosionEmitter.LoadContent(immediate);
            BeamSmokeEmitter.LoadContent(immediate);
            ScanExplosionEmitter.LoadContent(immediate);
            ScanSmokeEmitter.LoadContent(immediate);
            RoverScanExplosionEmitter.LoadContent(immediate);
            RoverScanSmokeEmitter.LoadContent(immediate);
            InspectExplosionEmitter.LoadContent(immediate);
            InspectSmokeEmitter.LoadContent(immediate);
            FanEmitter.LoadContent(immediate);
            InkEmitter.LoadContent(immediate);
        }   // end of ParticleSystemManager LoadContent()