Beispiel #1
0
        public MainForm()
        {
            SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.Opaque, true);
            WindowState     = FormWindowState.Maximized;
            FormBorderStyle = FormBorderStyle.None;
            Click          += new EventHandler(MainForm_Click);
            FormClosing    += new FormClosingEventHandler(MainForm_FormClosing);
            Cursor.Hide();

            if (Environment.ProcessorCount == 1)
            {
                XDevice = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, new PresentParameters()
                {
                    SwapEffect = SwapEffect.Discard, Windowed = true
                });
            }
            else
            {
                XDevice = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing | CreateFlags.MultiThreaded, new PresentParameters()
                {
                    SwapEffect = SwapEffect.Discard, Windowed = true
                });
            }
            XDevice.RenderState.Lighting         = false;
            XDevice.RenderState.AlphaBlendEnable = true;
            XDevice.RenderState.SourceBlend      = Microsoft.DirectX.Direct3D.Blend.SourceAlpha;
            XDevice.RenderState.DestinationBlend = Microsoft.DirectX.Direct3D.Blend.InvSourceAlpha;
            XDevice.SamplerState[0].MinFilter    = TextureFilter.Anisotropic;
            XDevice.SamplerState[0].MagFilter    = TextureFilter.Anisotropic;

            XRandom = new Random();

            XTimer          = new Timer();
            XTimer.Interval = 1000 / Settings.Default.FPS;
            XTimer.Tick    += new EventHandler(XTimer_Tick);
            XTimer.Start();

            XSprite = new Sprite(XDevice);

            Bitmap B = new Bitmap(1, 1);

            B.SetPixel(0, 0, Color.White);
            FadeTexture        = new Texture(XDevice, B, Usage.None, Pool.Managed);
            FadeColor          = Color.FromArgb(10, Color.Black);
            FadeTimer          = new Timer();
            FadeTimer.Interval = Settings.Default.FadeOutInterval * 1000;
            FadeTimer.Tick    += new EventHandler(FadeTimer_Tick);
            FadeTimer.Start();

            Particle.Init(XDevice);
            Particle.AddControlPoints(Settings.Default.ParticleControlCount);
            Particle.AddParticles(Settings.Default.ParticleCount);

            IH = new InfoHUD.InfoHUD(XDevice);
        }
Beispiel #2
0
 void MainForm_FormClosing(object sender, FormClosingEventArgs e)
 {
     Particle.ClearParticles();
     IH.Dispose();
     IH = null;
 }