/// <summary>
        /// Draws the Icon Background Texture
        /// </summary>
        /// <param name="InitSprite">Indicates whether to initialize the Sprite object or not (if it's already initialized)</param>
        /// <param name="Size">Size of the destination rectangle</param>
        /// <param name="Center">Point of the center of the background</param>
        public void DrawIconBg(bool InitSprite, Size Size, Point Center)
        {
            try
            {
                if (Global.Configuration.Images.IconBackgroundImagePath != "" && IconBg != null)
                {
                    if (InitSprite)
                    {
                        SpritePainter.Begin(SpriteFlags.AlphaBlend);
                    }

                    SpritePainter.Draw2D(IconBg.Texture,
                                         Rectangle.Empty,
                                         //new Size(IconBgDesc.Width,IconBgDesc.Height),
                                         new SizeF(Size.Width, Size.Height),
                                         new Point(Center.X - Size.Width / 2, Center.Y - Size.Height / 2),
                                         Color.FromArgb(Global.Configuration.Appearance.IconBackgroundAlpha, Color.White).ToArgb());

                    if (InitSprite)
                    {
                        SpritePainter.End();
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message + "\n" + ex.StackTrace);
                if (InitSprite)
                {
                    SpritePainter.End();
                }
            }
        }
Example #2
0
        public static void SetBlend(bool value, float rate = 1F)
        {
            if (value == Blending)
            {
                return;
            }
            Blending = value;
            Sprite.Flush();

            Sprite.End();
            if (Blending)
            {
                Sprite.Begin(SpriteFlags.DoNotSaveState);
                Device.RenderState.AlphaBlendEnable = true;
                Device.RenderState.SourceBlend      = Blend.BlendFactor;
                Device.RenderState.DestinationBlend = Blend.One;
                Device.RenderState.BlendFactor      = Color.FromArgb((byte)(255 * rate), (byte)(255 * rate),
                                                                     (byte)(255 * rate), (byte)(255 * rate));
            }
            else
            {
                Sprite.Begin(SpriteFlags.AlphaBlend);
            }

            Device.SetRenderTarget(0, CurrentSurface);
        }
Example #3
0
 private void DrawSmallText(string text, PointF pos, Color color)
 {
     sprite.Begin(SpriteFlags.AlphaBlend);
     {
         smallFont.DrawText(sprite, text, new Point((int)pos.X, (int)pos.Y), color);
     }
     sprite.End();
 }
Example #4
0
 public void Begin()
 {
     device.SetRenderTarget(0, offScreenSurface);
     device.BeginScene();
     sprite.Begin(SpriteFlags.AlphaBlend);
     device.SetSamplerState(0, SamplerStageStates.MagFilter, true);
     device.SetSamplerState(0, SamplerStageStates.MinFilter, true);
 }
Example #5
0
        public void DrawIcon(Canvas canvas, float x, float y)
        {
            _sprite.Begin(this.Flags);

            _sprite.Transform = Matrix.Scaling(Scaling.X, Scaling.Y, Scaling.Z) *
                                Matrix.Translation(x, y, 0);

            _sprite.Draw(_texture, Vector3.Empty, Vector3.Empty, Color.White.ToArgb());

            _sprite.End();
        }
Example #6
0
 public void BatchDraw(SpriteFlags flags)
 {
     _sprite_resource.Begin(flags);
     lock (this)
     {
         foreach (AGT_SpriteResource t in _texture_list.Values)
         {
             t.DrawRelative(_sprite_resource, Scale, X, Y, 0, Color.White.ToArgb());
         }
     }
     _sprite_resource.End();
 }
Example #7
0
        public void Draw()
        {
            if (IsGameOpen())
            {
                stateManager.IsDrawing = true;

                deviceManager.Device.Clear(ClearFlags.Target, Color.RoyalBlue, 0, 0);
                deviceManager.Device.BeginScene();

                Sprite s = new Sprite(deviceManager.Device);
                s.Begin(SpriteFlags.AlphaBlend);

                // Draw Current Map
                if (game != null)
                {
                    game.Draw(s);
                }

                s.End();
                s.Dispose();

                deviceManager.Device.EndScene();

                if (IsGameOpen())
                {
                    deviceManager.Device.Present();
                }

                stateManager.IsDrawing = false;
            }
        }
Example #8
0
        public static void Draw()
        {
            if (instances == null || instances.Count == 0)
            {
                return;
            }

            Game.Device.Rasterizer.State = rs;
            spriteDrawer.Begin(SpriteFlags.SaveState);

            foreach (KeyValuePair <String, CustomSpriteInstance> entry in instances)
            {
                CustomSpriteInstance i = instances[entry.Key];
                if (i.enabled == false)
                {
                    continue;
                }

                if (i.blendMode == SpriteBlendMode.Additive)
                {
                    Game.Device.OutputMerger.BlendState = bsAdditive;
                }
                else
                {
                    Game.Device.OutputMerger.BlendState = bsAlphaBlend;
                }
                spriteDrawer.DrawImmediate(new CustomSpriteInstance[] { i });
            }

            spriteDrawer.End();
        }
Example #9
0
        public void DibujarEscena()
        {
            counter++;
            if (counter >= 0)
            {
                //plaza.Dibujar();
                //cielo.Dibujar();
                //flag.Draw();

                DebugMode.WriteCamaraPos(200, 200);
                //Collision.DrawColissions();
                road.Draw2();
                //
                star.Draw();
                AsteroidGenerator.DrawAsteroids();
                SpcShipGenerator.Draw();
                spaceShip.Dibujar();
                camara.Draw();
            }

            //
            Sprite.Begin();

            Sprite.DrawText(20, 20, "Press mouse left button to move forward", Glut.GLUT_BITMAP_HELVETICA_18);

            Sprite.DrawText(20, 50, "Press escape to exit", Glut.GLUT_BITMAP_HELVETICA_18);

            Sprite.End();
        }
Example #10
0
        /// <summary>
        ///
        /// </summary>
        protected virtual void Idle()
        {
            SlimDX.Direct3D9.Device device = Device;

            device.BeginScene();

            // reset the depth buffer to 1.0 and the render target to black
            device.Clear(ClearFlags.Target | ClearFlags.ZBuffer,
                         new Color4(0, 0, 0), 1.0f, 0);

            // prepare for drawing sprites. We need transparency and z-order
            Sprite.Begin(SpriteFlags.AlphaBlend
                         | SpriteFlags.SortDepthBackToFront);

            OnRender(new RenderEventArgs(this, Device));

            System.Diagnostics.Debug.Assert(device != null);

            // aaaannnd.... done!
            Sprite.End();

            // painting done ...
            device.EndScene();

            // ... so show the result on screen
            device.Present();

            OnIdleEvent(new EventArgs());
        }
Example #11
0
        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            if (device.Disposed)
            {
                return;
            }

            // Get elapsed time to calculate FPS
            ElapsedTime = DXUtil.Timer(DirectXTimer.GetElapsedTime);
            device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.CornflowerBlue, 1.0f, 0);

            device.BeginScene();

            Draw();

            // Drawing multiple lines of text on the same sprite is more efficient
            using (Sprite s = new Sprite(device))
            {
                s.Begin(SpriteFlags.AlphaBlend);
                int y = 5;
                font.DrawText(s, string.Format("FPS: {0}", ((int)(1f / ElapsedTime)).ToString()), new Rectangle(4, y, 0, 0), DrawTextFormat.NoClip, Color.FromArgb(64, 255, 255, 255));
                y += 22;
                font.DrawText(s, string.Format("Ambient light: {0}%", (int)(ambient * 100)), new Rectangle(4, y, 0, 0), DrawTextFormat.NoClip, Color.FromArgb(64, 255, 255, 255));
                s.End();
            }

            device.EndScene();

            device.Present();

            // The onPaint event must be called again
            this.Invalidate();
        }
Example #12
0
        static void Drawing_OnEndScene(EventArgs args)
        {
            try
            {
                foreach (var existingSlide in ExistingSlide)
                {
                    if (S == null || S.IsDisposed)
                    {
                        return;
                    }
                    const float percentScale = 2;
                    S.Begin();
                    var slide = existingSlide;

                    foreach (var mPos in from enemy in Enemies2
                             select Drawing.WorldToScreen(slide.Position) into serverPos
                             let playerServerPos = Drawing.WorldToScreen(Player.Position)
                                                   select new Size((int)(serverPos[0] - 62 * 0.3f), (int)(serverPos[1] - 62 * 0.3f)))
                    {
                        DirectXDrawer.DrawSprite(S, wButton,
                                                 mPos.ScaleSize(percentScale, new Vector2(mPos.Width, mPos.Height)),
                                                 new[] { 0.3f * percentScale, 0.3f * percentScale });
                    }
                    S.End();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                if (ex.GetType() == typeof(SharpDXException))
                {
                    Game.PrintChat("An error occured. Please re-load LeBlanc app.");
                }
            }
        }
Example #13
0
        /// <summary>
        /// Called when it is time to draw a frame.
        /// </summary>
        public override void Draw()
        {
            // Clears the background
            Display.ClearBuffers();

            // Aplly a rotation
            Matrix4 mvp = Matrix4.CreateRotationY(Yaw) * ModelViewMatrix * ProjectionMatrix;

            Display.Shader = Shader;

            // Uniforms
            Shader.SetUniform("modelview", mvp);
            Shader.SetUniform("DiffuseMaterial", new float[] { 0.0f, 0.75f, 0.75f });
            Shader.SetUniform("LightPosition", new float[] { 0.25f, 0.25f, -1.0f });
            Shader.SetUniform("AmbientMaterial", new float[] { 0.04f, 0.04f, 0.04f });
            Shader.SetUniform("SpecularMaterial", new float[] { 0.5f, 0.5f, 0.5f });
            Shader.SetUniform("Shininess", 50.0f);

            if (swap)
            {
                Torus.Draw();
            }
            else
            {
                Trefoil.Draw();
            }

            // Some dummy text
            Sprite.Begin();
            Sprite.DrawString(Font, new Vector2(50, 25), Color.White, "Here's an example of draw buffers.");
            Sprite.DrawString(Font, new Vector2(50, 50), Color.White, "Press space key to  swap mesh.");
            Sprite.End();
        }
Example #14
0
        public override void Render(Device device)
        {
            if (Initialized)
            {
                // Draw the Panel
                Background.Begin(SpriteFlags.AlphaBlend);
                if (IsClicked)
                {
                    Background.Draw(Clicked, new Rectangle(0, 0, Size.Width, Size.Height), Vector3.Empty, new Vector3((int)(Position.X + (Parent != null ? Parent.Position.X : 0)), (int)(Position.Y + (Parent != null ? Parent.Position.Y : 0)), 0), BitConverter.ToInt32(new byte[] { 0xFF, 0xFF, 0xFF, (byte)Opacity }, 0));
                }
                else if (IsMouseOver)
                {
                    Background.Draw(Hover, new Rectangle(0, 0, Size.Width, Size.Height), Vector3.Empty, new Vector3((int)(Position.X + (Parent != null ? Parent.Position.X : 0)), (int)(Position.Y + (Parent != null ? Parent.Position.Y : 0)), 0), BitConverter.ToInt32(new byte[] { 0xFF, 0xFF, 0xFF, (byte)Opacity }, 0));
                }
                else
                {
                    Background.Draw(Normal, new Rectangle(0, 0, Size.Width, Size.Height), Vector3.Empty, new Vector3((int)(Position.X + (Parent != null ? Parent.Position.X : 0)), (int)(Position.Y + (Parent != null ? Parent.Position.Y : 0)), 0), BitConverter.ToInt32(new byte[] { 0xFF, 0xFF, 0xFF, (byte)Opacity }, 0));
                }

                // Center and Draw Text
                int y = ((150 - (Text.Length * 2)) / 2) - 19;
                font.DrawText(Background, Text, new Point((int)(Position.X + (Parent != null ? Parent.Position.X : 0)) + y, (int)(Position.Y + (Parent != null ? Parent.Position.Y : 0)) + 3), Color.Black);
                Background.End();
            }
        }
Example #15
0
        } // AtualizarCamera()

        // [---
        public void Renderizar()
        {
            // Limpa os dispositivos e os buffers de apoio
            device.Clear(ClearFlags.Target | ClearFlags.ZBuffer,
                         Color.CornflowerBlue, 1.0f, 0);

            device.BeginScene();
            // (...) Todo o código de desenhar vai aqui

            // Atualiza a câmera
            AtualizarCamera();
            AtualizarLuz();

            radar.Begin(SpriteFlags.None);
            radar.Draw(texturaAlvo, new Rectangle(0, 0, superficie_ntam, superficie_ntam),
                       new Vector3(0, 0, 0), new Vector3(10, 10, 1.0f), Color.White);
            radar.End();

            posicao = new Vector3(-50.0f, 0.2f, -200.0f);
            rotacao = new Vector3(0, 0, 0);
            g_props = new Propriedades3D(posicao, rotacao);
            desenharObjeto(objeto3D, g_props);

            device.EndScene();

            // Apresenta a cena renderizada na tela
            device.Present();

            // Libera a janela para processar outros eventos
            Application.DoEvents();
        } // Renderizar()
Example #16
0
        public void Run()
        {
            Device device;
            SwapChain swapChain;
            RenderTargetView renderTarget;

            EmptyWindow.CreateDeviceSwapChainAndRenderTarget(mForm, out device, out swapChain, out renderTarget);

            // buffer size 1 .. 4096 (0 defaults to 4096)
            var sprite = new Sprite(device, 10);
            var font = new Font(device, 20, "ARIAL");

            Application.Idle +=
                delegate
                {
                    device.ClearRenderTargetView(renderTarget, new Color4(1, 0, 0));

                    var rectangle = new Rectangle(10, 10, 400, 300);
                    sprite.Begin(SpriteFlags.None);
                    font.Draw(sprite, "Hello from SlimDX", rectangle, FontDrawFlags.Left,
                        (uint)Color.Yellow.ToArgb());
                    sprite.End();

                    swapChain.Present(0, PresentFlags.None);

                    Application.DoEvents();
                };

            Application.Run(mForm);
        }
        protected override void OnPaint(PaintEventArgs pe)
        {
            if ((this.m_FormRenderFrame.Device != null) && (this.m_FormRenderFrame.Texture != null) && (this.Visible) && (this.WindowState != FormWindowState.Minimized)) {
            try {
              this.m_FormRenderFrame.Device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1F, 0);

              SurfaceDescription surfaceDescription = this.m_FormRenderFrame.Texture.GetLevelDescription(0);
              Size size = new Size(surfaceDescription.Width, surfaceDescription.Height);

              Size targetSize = new Size(Math.Max(1, (Int32)((Single)size.Width * this.m_ZoomFactor)), Math.Max(1, (Int32)((Single)size.Height * this.m_ZoomFactor)));
              if (this.Size != targetSize) {
            this.Size = targetSize;
              }

              this.m_FormRenderFrame.Device.BeginScene();

              Sprite sprite = new Sprite(this.m_FormRenderFrame.Device);
              sprite.Begin(SpriteFlags.None);
              sprite.Draw2D(this.m_FormRenderFrame.Texture, new Rectangle(new Point(0, 0), size), new SizeF(((Single)size.Width * this.m_ZoomFactor), ((Single)size.Height * this.m_ZoomFactor)), new PointF(0F, 0F), Color.FromArgb(255, 255, 255, 255));
              sprite.End();
              sprite.Dispose();

              this.m_FormRenderFrame.Device.EndScene();
              this.m_FormRenderFrame.Device.Present();
            } catch {
            }
              }
        }
Example #18
0
        /// <summary>
        /// The render method to draw this widget on the screen.
        ///
        /// Called on the GUI thread.
        /// </summary>
        /// <param name="drawArgs">The drawing arguments passed from the WW GUI thread.</param>
        public void Render(DrawArgs drawArgs)
        {
            if (!this.m_isInitialized)
            {
                this.Initialize(drawArgs);
            }

            if ((m_visible) && (m_enabled))
            {
                // Draw the interior background
                WidgetUtilities.DrawBox(
                    this.AbsoluteLocation.X,
                    this.AbsoluteLocation.Y,
                    m_size.Width,
                    m_size.Height,
                    0.0f,
                    m_BackgroundColor.ToArgb(),
                    drawArgs.device);

                m_sprite.Begin(SpriteFlags.AlphaBlend);
                m_sprite.Transform  = Matrix.Scaling(this.XScale, this.YScale, 0);
                m_sprite.Transform *= Matrix.Translation(AbsoluteLocation.X + m_size.Width / 2, AbsoluteLocation.Y + m_size.Height / 2, 0);
                m_sprite.Draw(m_iconTexture.Texture,
                              new Vector3(m_iconTexture.Width >> 1, m_iconTexture.Height >> 1, 0),
                              Vector3.Empty,
                              m_normalColor);
                m_sprite.Transform = Matrix.Identity;
                m_sprite.End();

                UpdateCrosshair(drawArgs);
            }
        }
Example #19
0
 /// <summary>
 /// Begins the draw operation.
 /// </summary>
 public void Begin()
 {
     _direct3D9Device.BeginScene();
     _direct3D9Device.Clear(ClearFlags.Target, DirectXHelper.ConvertColor(_graphicsDevice.ClearColor), 0, 0);
     _sprite.Transform = Matrix.Identity;
     _sprite.Begin(SpriteFlags.AlphaBlend);
 }
Example #20
0
        private void DrawFullscreenQuad(Texture texture)
        {
            _sprite.Begin(SpriteFlags.None);

            //begin the shader effect, only need 1 pass
            if (_effect != null)
            {
                _effect.Begin();
                _effect.BeginPass(0);
            }

            _sprite.Draw(texture, Colors.White.ToColor4());

            /*Rectangle dest = new Rectangle(0, 0, Dims, Dims);
             * VertexTransformedPositionTexture[] vertices = new VertexTransformedPositionTexture[4];
             * vertices[0] = new VertexTransformedPositionTexture(new Point4D(dest.Left - 0.5f, dest.Top - 0.5f, 0, 1), new Point2D(0, 0));
             * vertices[1] = new VertexTransformedPositionTexture(new Point4D(dest.Right - 0.5f, dest.Top - 0.5f, 0, 1), new Point2D(1, 0));
             * vertices[2] = new VertexTransformedPositionTexture(new Point4D(dest.Right - 0.5f, dest.Bottom - 0.5f, 0, 1), new Point2D(0, 1));
             * vertices[3] = new VertexTransformedPositionTexture(new Point4D(dest.Right - 0.5f, dest.Bottom - 0.5f, 0, 1), new Point2D(1, 1));
             * _graphics.DrawIndexedUserPrimitives(PrimitiveType.TriangleStrip, 0, 4, 2, new[] { 0, 1, 2, 3},
             *      Format.Index32, vertices, VertexTransformedPositionTexture.SizeInBytes);*/

            if (_effect != null)
            {
                _effect.EndPass();
                _effect.End();
            }

            _sprite.End();
        }
Example #21
0
        /// <summary>
        ///  进行游戏图像渲染帧中的渲染操作
        /// </summary>
        public void Draw()
        {
            RenderTarget defRt = renderSys.GetRenderTarget(0);

            if (currentGame == null)
            {
                renderSys.Clear(ClearFlags.Target | ClearFlags.DepthBuffer, ColorValue.Transparent, 1, 0);
            }
            else
            {
                currentGame.Render();
            }

            if (menu != null)
            {
                menu.Render();
            }

            renderSys.SetRenderTarget(0, defRt);


            sprite.Begin();

            if (currentGame != null)
            {
                currentGame.Render(sprite);
            }
            if (menu != null)
            {
                menu.Render(sprite);
            }

            sprite.End();
        }
Example #22
0
        public void Render()
        {
            sprite.Begin(SpriteFlags.None);
            MdxRender.Device.RenderState.AlphaBlendEnable   = true;
            MdxRender.Device.RenderState.AlphaTestEnable    = false;
            MdxRender.Device.RenderState.ZBufferWriteEnable = false;
            MdxRender.Device.RenderState.BlendOperation     = BlendOperation.Add;
            MdxRender.Device.RenderState.SourceBlend        = Blend.SourceColor;
            MdxRender.Device.RenderState.DestinationBlend   = Blend.One;

            for (int i = 0; i < lensFlareValues.Reflections.Count; i++)
            {
                Texture texture = bitmaps[lensFlareValues.Reflections[i].BitmapIndex.Value] as Texture;
                if (texture == null)
                {
                    continue;
                }
                int color = new ColorValue(lensFlareValues.Reflections[i].TintColor.R, lensFlareValues.Reflections[i].TintColor.G, lensFlareValues.Reflections[i].TintColor.B, lensFlareValues.Reflections[i].TintColor.A).ToArgb();

                Vector3 position = Vector3.Project(new Vector3(0.0f, 0.0f, 0.0f), MdxRender.Device.Viewport, MdxRender.Device.Transform.Projection, MdxRender.Camera.GetViewMatrix(), MdxRender.Device.Transform.World);
                sprite.Draw(texture, new Vector3((float)(bitmaps.BitmapValues.Bitmaps[lensFlareValues.Reflections[i].BitmapIndex.Value].Width.Value / 2), (float)(bitmaps.BitmapValues.Bitmaps[lensFlareValues.Reflections[i].BitmapIndex.Value].Height.Value / 2), 0.0f), new Vector3(position.X, position.Y, 0.0f), color);
            }

            sprite.End();
        }
 public void Render()
 {
     Sprite.Begin(SpriteFlags.AlphaBlend | SpriteFlags.SortDepthFrontToBack);
     Sprite.Transform = TransformationMatrix.ToMatrix();
     Sprite.Draw(Texture.D3dTexture, SrcRect, TGCVector3.Empty, TGCVector3.Empty, Color);
     Sprite.End();
 }
Example #24
0
 void XTimer_Tick(object sender, EventArgs e)
 {
     XDevice.BeginScene();
     XSprite.Begin(SpriteFlags.AlphaBlend);
     if (FadeState == 0)
     {
         XSprite.Draw2D(FadeTexture, new Rectangle(0, 0, 1, 1), new SizeF(XDevice.DisplayMode.Width, XDevice.DisplayMode.Height), Point.Empty, FadeColor);
         Particle.DrawParticles();
     }
     else
     {
         Particle.DrawParticles();
         XSprite.Draw2D(FadeTexture, new Rectangle(0, 0, 1, 1), new SizeF(XDevice.DisplayMode.Width, XDevice.DisplayMode.Height), Point.Empty, Color.FromArgb(FadeState, Color.Black));
         if (FadeState == 255)
         {
             Particle.ClearParticles();
             Particle.AddControlPoints(Settings.Default.ParticleControlCount);
             Particle.AddParticles(Settings.Default.ParticleCount);
             FadeState = 0;
             FadeTimer.Start();
         }
         else
         {
             FadeState += FADE_STEP;
             if (FadeState > 255)
             {
                 FadeState = 255;
             }
         }
     }
     XSprite.End();
     IH.Draw();
     XDevice.EndScene();
     XDevice.Present();
 }
Example #25
0
        public void DrawOverlay(Texture targetTexture)
        {
            if (targetTexture == null || _combinedOsdSurface == null)
            {
                return;
            }

            try
            {
                lock (_syncObj)
                {
                    // TemporaryRenderTarget changes RenderTarget to texture and restores settings when done (Dispose)
                    using (new TemporaryRenderTarget(targetTexture))
                    {
                        _sprite.Begin();
                        _sprite.Draw(_combinedOsdTexture, new ColorBGRA(255, 255, 255, 255) /* White */);
                        _sprite.End();
                    }
                }
            }
            catch (Exception ex)
            {
                BluRayPlayerBuilder.LogError(ex.ToString());
            }
        }
        protected override void OnPaint(PaintEventArgs pe)
        {
            if ((this.m_FormRenderFrame.Device != null) && (this.m_FormRenderFrame.Texture != null) && (this.Visible) && (this.WindowState != FormWindowState.Minimized))
            {
                try {
                    this.m_FormRenderFrame.Device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1F, 0);

                    SurfaceDescription surfaceDescription = this.m_FormRenderFrame.Texture.GetLevelDescription(0);
                    Size size = new Size(surfaceDescription.Width, surfaceDescription.Height);

                    Size targetSize = new Size(Math.Max(1, (Int32)((Single)size.Width * this.m_ZoomFactor)), Math.Max(1, (Int32)((Single)size.Height * this.m_ZoomFactor)));
                    if (this.Size != targetSize)
                    {
                        this.Size = targetSize;
                    }

                    this.m_FormRenderFrame.Device.BeginScene();

                    Sprite sprite = new Sprite(this.m_FormRenderFrame.Device);
                    sprite.Begin(SpriteFlags.None);
                    sprite.Draw2D(this.m_FormRenderFrame.Texture, new Rectangle(new Point(0, 0), size), new SizeF(((Single)size.Width * this.m_ZoomFactor), ((Single)size.Height * this.m_ZoomFactor)), new PointF(0F, 0F), Color.FromArgb(255, 255, 255, 255));
                    sprite.End();
                    sprite.Dispose();

                    this.m_FormRenderFrame.Device.EndScene();
                    this.m_FormRenderFrame.Device.Present();
                } catch {
                }
            }
        }
Example #27
0
 /// <summary>
 /// Begin the sprite rendering
 /// </summary>
 public void Begin()
 {
     if (textSprite != null)
     {
         textSprite.Begin(SpriteFlags.AlphaBlend | SpriteFlags.SortTexture);
     }
 }
Example #28
0
        /// <summary>
        /// Renders the Screenshot
        /// </summary>
        /// <param name="InitSprite">Tells the render method if it should Begin() the Sprite object or not</param>
        public void Render(bool InitSprite)
        {
            try
            {
                // only draw if ready
                if (CanDraw)
                {
                    // init if needed
                    if (InitSprite)
                    {
                        SpritePainter.Begin(SpriteFlags.AlphaBlend);
                    }

                    // draw
                    SpritePainter.Draw2D(ScreenCapture.Texture,
                                         Rectangle.Empty,
                                         new SizeF(ScreenCapture.Description.Width, ScreenCapture.Description.Height),
                                         new Point(0, 0),
                                         Color.FromArgb(Alpha, Color.White));

                    // stop if needed
                    if (InitSprite)
                    {
                        SpritePainter.End();
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message + "\n" + ex.StackTrace);
            }
        }
Example #29
0
 private void Render()
 {
     device.Clear(ClearFlags.Target, Color.CornflowerBlue, 0, 1);
     device.BeginScene();
     using (Sprite s = new Sprite(device))
     {
         s.Begin(SpriteFlags.AlphaBlend);
         s.Draw2D(texture_background, new Rectangle(0, 0, 0, 0), new Rectangle(0, 0, device.Viewport.Width, device.Viewport.Height), new Point(0, 0), 0f, new Point(0, 0), Color.White);
         s.Draw2D(texture_score, new Rectangle(0, 0, 0, 0), new Rectangle(0, 0, 200, 200), new Point(0, 0), 0f, new Point(45, -30), Color.White);
         font.DrawText(s, "Level ", new Point(100, 60), Color.Black);
         font.DrawText(s, "Hits ", new Point(100, 90), Color.Black);
         font.DrawText(s, "Score ", new Point(100, 120), Color.Black);
         foreach (Characters c in ch)
         {
             if (c.type == 0)
             {
                 s.Draw2D(texture_cat, new Rectangle(0, 0, 0, 0), new Rectangle(0, 0, 200, 200), new Point(0, 0), 0f, new Point((int)(c.CharacterCoordinates.X), (int)c.CharacterCoordinates.Y), Color.White);
             }
             if (c.type == 1)
             {
                 s.Draw2D(texture_bird, new Rectangle(0, 0, 0, 0), new Rectangle(0, 0, 200, 200), new Point(0, 0), 0f, new Point((int)(c.CharacterCoordinates.X + (int)(0.2)), (int)c.CharacterCoordinates.Y + (int)(0.2)), Color.White);
             }
             if (c.type == 2)
             {
                 s.Draw2D(texture_snake, new Rectangle(0, 0, 0, 0), new Rectangle(0, 0, 200, 200), new Point(0, 0), 0f, new Point((int)(c.CharacterCoordinates.X + (int)(0.8)), (int)c.CharacterCoordinates.Y + (int)(0.8)), Color.White);
             }
         }
         s.Draw2D(texture_milk, new Rectangle(0, 0, 0, 0), new Rectangle(0, 0, 200, 200), new Point(0, 0), 0f, new Point((int)x2, (int)y2), Color.White);
         s.End();
     }
     device.EndScene();
     device.Present();
 }
Example #30
0
        private void RenderSprite(
            Sprite sprite,
            Texture texture,
            Size srcSize,
            RectangleF dstRect,
            bool antiAlias)
        {
            var srcRect = new Rectangle(
                0,
                0,
                srcSize.Width,
                srcSize.Height);

            sprite.Begin(SpriteFlags.None);
            try
            {
                if (!antiAlias)
                {
                    Allocator.Device.SetSamplerState(0, SamplerStageStates.MinFilter, (int)TextureFilter.Point);
                    Allocator.Device.SetSamplerState(0, SamplerStageStates.MagFilter, (int)TextureFilter.Point);
                    Allocator.Device.SetSamplerState(0, SamplerStageStates.MipFilter, (int)TextureFilter.Point);
                }
                sprite.Draw2D(
                    texture,
                    srcRect,
                    dstRect.Size,
                    dstRect.Location,
                    -1);
            }
            finally
            {
                sprite.End();
            }
        }
Example #31
0
        //String shader2 = "sampler2D g_samSrcColor;float4 MyShader( float4 Tex : TEXCOORD0 ) : COLOR0{float4 Color;Color = tex2D( g_samSrcColor, Tex.xy);return Color;}";
        private void DrawSprite(SlimDX.Direct3D10.Device device)
        {
            if (_sprite == null)
            {
                _sprite   = new Sprite(device, 1);
                _sTexture = Texture2D.FromFile(
                    device,
                    @"C:\temp\privet.png");

                _srv   = new ShaderResourceView(device, _sTexture);
                _si[0] = new SpriteInstance(_srv, new Vector2(0, 0), new Vector2(1, 1));
                //_sprite.ProjectionTransform = Matrix.OrthoOffCenterLH(0, 800, -600, 0, -10, 10);
                _sprite.ViewTransform = Matrix.Transformation2D(Vector2.Zero, 0.0f, new Vector2(2.0f, 2.0f), Vector2.Zero, 0.0f, Vector2.Zero);


                using (var bytecode = ShaderBytecode.Compile(shader, "PShader", "ps_4_0", ShaderFlags.EnableBackwardsCompatibility, EffectFlags.None))
                    pixelShader = new PixelShader(device, bytecode);
            }
            device.PixelShader.Set(pixelShader);
            //if ((DateTime.Now - _lastSprite).TotalMilliseconds > 0)
            //{
            _sprite.Begin(SpriteFlags.None);
            _sprite.DrawImmediate(_si);
            _sprite.End();
            _lastSprite = DateTime.Now;
            //}
        }
Example #32
0
        public static void Draw(Vector2 position, Texture texture, Color?color = null, Vector3?center = null, Rectangle?rectangle = null, float?rotation = null, Vector2?scale = null)
        {
            var col = color ?? Color.White;
            var pos = new Vector3(position, 0);

            if (center.HasValue)
            {
                pos += center.Value;
            }

            Sprite.Begin(SpriteFlags.AlphaBlend);

            if (!rotation.HasValue || !scale.HasValue)
            {
                Sprite.Draw(texture, col, rectangle, center, pos);
            }
            else
            {
                var transform = Sprite.Transform;

                Sprite.Transform *= Matrix.Scaling(new Vector3(scale.Value, 0)) * Matrix.RotationZ(rotation.Value) * Matrix.Translation(pos);
                Sprite.Draw(texture, col, rectangle, center);
                Sprite.Transform = transform;
            }

            Sprite.End();
        }
 protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
 {
     spritePosition = new Vector3(200f, 200f, 0f);
     device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Blue, 1.0f, 0);
     device.BeginScene();
     using (Sprite sprite = new Sprite(device)) {
         sprite.Begin(SpriteFlags.AlphaBlend);
         //render sprites here
         sprite.End();
     }
     device.EndScene();
     device.Present();
     this.Invalidate();
 }
 protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
 {
     spritePosition = new Vector3(200f, 200f, 0f);
     device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Blue, 1.0f, 0);
     device.BeginScene();
     using (Sprite sprite = new Sprite(device))
     {
         sprite.Begin(SpriteFlags.AlphaBlend);
         sprite.Draw(tileSet.Texture, tilePosition, spriteCenter, spritePosition,
             Color.FromArgb(255,255,255,255));
         sprite.End();
     }
     device.EndScene();
     device.Present();
     this.Invalidate();
 }
Example #35
0
        void TextureViewer_Load(object sender, EventArgs e)
        {
            this.Show();
            Application.DoEvents();
            pp = new PresentParameters();
            pp.BackBufferCount = 2;
            pp.SwapEffect = SwapEffect.Discard;
            pp.Windowed = true;

            Direct3D d3d = new Direct3D();
            d3d_device = new Device(d3d, 0, DeviceType.Hardware, d3dPanel.Handle, CreateFlags.HardwareVertexProcessing, pp);
            texture = Texture.FromFile(d3d_device, texturePath);

            int texWidth = texture.GetLevelDescription(0).Width;
            int texHeight = texture.GetLevelDescription(0).Height;
            d3dPanel.Top = menuStrip1.Height;
            d3dPanel.Left = 0;
            d3dPanel.ClientSize = new Size(texWidth, texHeight);
            this.ClientSize = new System.Drawing.Size(
                d3dPanel.Width,
                d3dPanel.Height + menuStrip1.Height
            );
            pp.BackBufferWidth = texWidth;
            pp.BackBufferHeight = texHeight;

            d3d_device.Reset(pp);
            sprite = new Sprite(d3d_device);

            while (this.Visible)
            {
                d3d_device.Clear(ClearFlags.ZBuffer | ClearFlags.Target, new Color4(Color.Black), 1.0f, 0);
                d3d_device.BeginScene();
                sprite.Begin(SpriteFlags.AlphaBlend);
                Rectangle rect = new Rectangle()
                {
                    X = 0,
                    Y = 0,
                    Width = texture.GetLevelDescription(0).Width,
                    Height = texture.GetLevelDescription(0).Height
                };
                sprite.Draw(texture, rect, new Color4(Color.White));
                sprite.End();
                d3d_device.EndScene();
                d3d_device.Present();
                Application.DoEvents();
            }
        }
Example #36
0
		protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
		{			
			if ( device.Disposed ) return;
			
			// Get elapsed time to calculate FPS
			ElapsedTime = DXUtil.Timer(DirectXTimer.GetElapsedTime);
			device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.CornflowerBlue, 1.0f, 0);

			device.BeginScene();

			Draw();
			
			// Drawing multiple lines of text on the same sprite is more efficient
			using ( Sprite s = new Sprite(device) )
			{
				s.Begin(SpriteFlags.AlphaBlend);
				int y = 5;				
				font.DrawText(s,string.Format("FPS: {0}",( (int) (1f / ElapsedTime) ).ToString() ),new Rectangle(4,y,0,0),DrawTextFormat.NoClip,Color.FromArgb(64,255,255,255) );
				y += 22;
				font.DrawText(s,string.Format("Ambient light: {0}%",(int) (ambient*100)),new Rectangle(4,y,0,0),DrawTextFormat.NoClip,Color.FromArgb(64,255,255,255));
				s.End();
			}

			device.EndScene();

			device.Present();
			
			// The onPaint event must be called again 
			this.Invalidate();
		}
Example #37
0
        /// <summary>
        /// Renders the scene.
        /// </summary>
        public void RenderScene(Color background, List<LightObj> lights, Camera camera)
        {
            bool useGlow = false;

            // Sets the variables for the shader.
            SetVariables(lights, camera);
            //effect.Technique = "Test";

            for (int i = 0; i < mesh.Count; i++)
            {
                if (mesh[i].Emissive.Enable && !mesh[i].Emissive.Path.Equals(""))
                {
                    useGlow = true;
                    break;
                }
            }

            // If/Else statement to control rendering with emissive glow or not.
            if (useGlow)
                RenderGlow();
            else
                BeginRender(background);

            // If emissive glow is used, the base scene is rendered to a texture.
            if (useGlow)
            {
                surfRender.BeginScene(renderedScene.GetSurfaceLevel(0), device.Viewport);
                device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, background, 1.0f, 0);
            }

            if (groundPlane.Enabled)
                RenderModel((Model)groundPlane, lights[0].Shadows, 0);

            // Loops through all the models and renders each.
            for (int i = 0; i < mesh.Count; i++)
            {
                if (mesh[i].Enabled)
                    RenderModel(mesh[i], lights[0].Shadows, 0);
            }

            if (showLights)
            {
                using (Sprite spriteobject = new Sprite(device))
                {
                    foreach (LightObj light in lights)
                    {
                        if (!light.Enabled)
                            continue;

                        spriteobject.SetWorldViewRH(device.Transform.World, device.Transform.View);

                        spriteobject.Begin(SpriteFlags.AlphaBlend | SpriteFlags.Billboard | SpriteFlags.SortTexture | SpriteFlags.ObjectSpace);
                        //spriteobject.Transform = Matrix.Scaling(0.25f, 0.25f, 0.25f);
                        spriteobject.Draw(lightTexture, Rectangle.Empty, Vector3.Empty, light.Direction, Color.White);
                        spriteobject.End();
                    }
                }
            }

            // If emissive glow is used, the textures are set to the shader and rendered to a sprite.
            if (useGlow)
            {
                surfRender.EndScene(Filter.None);

                effect.SetValue("renderedScene", renderedScene);

                BeginRender(background);

                using (Sprite spriteobject = new Sprite(device))
                {
                    prevTechnique = effect.Technique;
                    effect.Technique = "Bloom";

                    effect.Begin(FX.None);

                    spriteobject.Begin(SpriteFlags.None);

                    effect.BeginPass(0);

                    spriteobject.Draw(renderedGlow, Rectangle.Empty, new Vector3(0, 0, 0), new Vector3(0, 0, 0), Color.White);

                    effect.EndPass();

                    spriteobject.End();

                    effect.End();

                    effect.Technique = prevTechnique;
                }
            }

            EndRender();
        }
    /// <summary>
    /// Called once per frame, the call is the entry point for 3d rendering. This 
    /// function sets up render states, clears the viewport, and renders the scene.
    /// </summary>
    protected override void Render()
    {
        RenderBGPointer();

        //Clear the backbuffer to a Blue color
        device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Blue, 1.0f, 0);

        //Set the view matrix
        device.Transform.View = viewMatrix;

        //Begin the scene
        device.BeginScene();
        device.RenderState.ZBufferEnable = false;
        device.RenderState.Lighting = false;
        spaceSphere.Render();
        device.RenderState.Lighting = true;
        device.RenderState.ZBufferEnable = true;

        device.Transform.World = playerShip.Position.WorldMatrix;
        playerShip.Render();
        opponentShip.Render();

        //Render our targeting pointer
        using (Sprite pointerSprite = new Sprite(device)) {
            pointerSprite.Begin(SpriteFlags.AlphaBlend);

            pointerSprite.Draw(bgPointerTexture, new Rectangle(0, 0, 128, 128),
                new Vector3(0, 0, 0), new Vector3(42, this.Height - 250, 0), Color.White);
            pointerSprite.Transform = Matrix.Identity;
            pointerSprite.Draw(vectorPanel,new Rectangle(0,0,193,173),
                new Vector3(0,0,0), new Vector3(10, this.Height- 282, 0), Color.White);

            pointerSprite.End();
        }
        //Output the scores
        drawingFont.DrawText(5, 20, Color.Red, playerShip.HostName.ToString() + ":");
        drawingFont.DrawText(100,20,Color.Red,playerShip.Score.ToString());
        if (remotePlayerActive) {
            drawingFont.DrawText(5,45,Color.White, peer.RemotePlayer.Name + ":");
            drawingFont.DrawText(100,45, Color.White, opponentShip.Score.ToString());
        }

        //Display any status messages
        if (statusMessageTimer < Constants.StatusMessageDisplayTime) {
            drawingFont.DrawText(200, screenCenter.Y, Color.FromArgb(200,220,220,255), statusMessage);
        }

        if (debugging) {
            drawingFont.DrawText(5,5,Color.Yellow,debugText);
        }
        device.EndScene();
    }
        /// <summary>
        /// Draw the player information.
        /// </summary>
        /// <param name="device">The direct3D device.</param>
        private void DrawInfo(Device device)
        {
            try
            {
                int deviceWidth = device.Viewport.Width;
                int deviceHeight = device.Viewport.Height;
                long frameCounter = _memory.GetFrameCount();

                if (frameCounter > 10)
                {
                    if (string.IsNullOrEmpty(_playerOneName))
                    {
                        _playerOneName = _memory.GetCharacter(1);
                    }

                    if (string.IsNullOrEmpty(_playerTwoName))
                    {
                        _playerTwoName = _memory.GetCharacter(2);
                    }

                    _sprite = new Sprite(_device);
                    _sprite.Begin(SpriteFlags.AlphaBlend);

                    _sprite.Transform
                        = Matrix.Scaling(new Vector3(_fontSize / (12 / 2), _fontSize / (7 / 2), 0));

                    _spritePosition = new Vector2(
                        _fontSize,
                        (deviceHeight / _fontSize) * 7);

                    _sprite.Draw(_background, new Vector3(1, 1, 0), new Vector3(_spritePosition, -1), Color.White);

                    _spritePosition = new Vector2(
                        deviceWidth - (_fontSize * 13),
                        (deviceHeight / _fontSize) * 7);

                    _sprite.Draw(_background, new Vector3(1, 1, 0), new Vector3(_spritePosition, -1), Color.White);

                    _sprite.End();
                    _sprite.Dispose();

                    _sprite = new Sprite(_device);
                    _sprite.Begin(SpriteFlags.AlphaBlend);

                    // P1
                    string playerOneHeader = string.Format("-{0}'s STATS-", _playerOneName);
                    string playerOnePos = string.Format(
                        "[{0},{1}]",
                        _memory.GetPosX(1).ToString("F3"),
                        _memory.GetPosY(1).ToString("F3"));
                    string playerOneHealth = string.Format("HP    : {0}", _memory.GetHealth(1));
                    string playerOneStun = string.Format("STUN  : {0}", _memory.GetStun(1));
                    string playerOneEx = string.Format("EX    : {0}", _memory.GetEXmeter(1));
                    string playerOneUltra = string.Format("ULTRA : {0}", _memory.GetUltraMeter(1));
                    string playerOneScript = string.Format(
                        "ANIM  : {0} ({1})",
                        _memory.PlayerAnim(1),
                        _memory.GetAnimFrame(1));
                    int playerOneInterruptFrame = _memory.GetInterruptFrame(1);
                    string playerOneInterrupt = string.Format("INTRPT: {0}", playerOneInterruptFrame);

                    // P2
                    string playerTwoHeader = string.Format("-{0}'s STATS-", _playerTwoName);
                    string playerTwoPos = string.Format(
                        "[{0},{1}]",
                        _memory.GetPosX(2).ToString("F3"),
                        _memory.GetPosY(2).ToString("F3"));
                    string playerTwoHealth = string.Format("HP    : {0}", _memory.GetHealth(2));
                    string playerTwoStun = string.Format("STUN  : {0}", _memory.GetStun(2));
                    string playerTwoEx = string.Format("EX    : {0}", _memory.GetEXmeter(2));
                    string playerTwoUltra = string.Format("ULTRA : {0}", _memory.GetUltraMeter(2));
                    string playerTwoScript = string.Format(
                        "ANIM  : {0} ({1})",
                        _memory.PlayerAnim(2),
                        _memory.GetAnimFrame(2));
                    int playerTwoInterruptFrame = _memory.GetInterruptFrame(2);
                    string playerTwoInterrupt = string.Format("INTRPT: {0}", playerTwoInterruptFrame);

                    string playerOneAdv = string.Format("ADV   : {0}", playerOneInterruptFrame - playerTwoInterruptFrame);
                    string playerTwoAdv = string.Format("ADV   : {0}", playerTwoInterruptFrame - playerOneInterruptFrame);

                    string playerOneStats = string.Join(
                        "\n",
                        playerOneHeader,
                        playerOnePos,
                        playerOneHealth,
                        playerOneStun,
                        playerOneEx,
                        playerOneUltra,
                        playerOneScript,
                        playerOneInterrupt,
                        playerOneAdv);

                    string playerTwoStats = string.Join(
                        "\n",
                        playerTwoHeader,
                        playerTwoPos,
                        playerTwoHealth,
                        playerTwoStun,
                        playerTwoEx,
                        playerTwoUltra,
                        playerTwoScript,
                        playerTwoInterrupt,
                        playerTwoAdv);

                    _font.DrawString(null, playerOneStats, _fontSize, (deviceHeight / _fontSize) * 8, _textColor);

                    _font.DrawString(null, playerTwoStats, deviceWidth - (_fontSize * 13), (deviceHeight / _fontSize) * 8, _textColor);

                    // Both
                    _font.DrawString(
                        null,
                        string.Format("Combo Counter: {0}", _memory.ComboCounter()),
                        deviceWidth / 20 * 9,
                        30,
                        _textColor);
                    _font.DrawString(
                        null,
                        string.Format("Distance: {0}", _memory.GetDistance()),
                        deviceWidth / 20 * 8,
                        deviceHeight / 20 * 18,
                        _textColor);
                    _font.DrawString(
                        null,
                        string.Format("Frame Counter: {0}", frameCounter),
                        deviceWidth / 20 * 8,
                        deviceHeight / 20 * 19,
                        _textColor);

                    _sprite.End();
                    _sprite.Dispose();
                }
                else
                {
                    _playerOneName = string.Empty;
                    _playerTwoName = string.Empty;
                }
            }
            catch
            {

            }
        }
Example #40
0
        /// <summary>
        /// Draws the given texture to the given point on the screen.
        /// </summary>
        /// <param name="texture">The texture to draw.</param>
        /// <param name="point">Where to display the texture on the screen.</param>
        /// <param name="scale">The amount to scale the x value of the Sprite.</param>
        public void drawHealth(Texture texture, Point point, float scale)
        {
            Size healthSize = new Size((int)((this.width * 0.288f) * scale),
                (int)(this.height * 0.060));
            this.healthBarSize = new Size((int)(this.width * 0.530f),
                (int)(this.height * 0.24));

            using (Sprite s = new Sprite(device))
            {
                Point newPoint = new Point((int)(this.width * 0.0344) + point.X,
                        (int)(this.height * 0.0736) + point.Y);
                Size healthBack = new Size((int)(this.width-(this.width-newPoint.X+30)),
                (int)(this.height * 0.120));

                s.Begin(SpriteFlags.AlphaBlend);
                s.Draw2D(ContentLoader.GUIBack, Rectangle.Empty,
                    healthBack, new Point(newPoint.X-30, 0), Color.White);
                s.Draw2D(healthTexture, new Rectangle(point, healthSize),
                    healthSize, newPoint, Color.Red);
                s.Draw2D(texture, Rectangle.Empty, healthBarSize, point, Color.Black);
                s.End();
            }
        }
Example #41
0
        /// <summary>
        /// Render the panel. This base class method renders all the widgets
        /// (using their current frame). Subclasses may override this
        /// to add code for writing text and other UI components as well.
        /// </summary>
        public void Render()
        {
            // --------------------- Set Renderstate ------------------
            // Set ALL that we care about and rem out the others.
            // If I add any here, add them to ALL renderable classes

            //*** world matrix ***
            //Engine.Device.Transform.World = Matrix.Identity;							// Matrix is fixed at 0,0,0

            //*** expected vertex format ***
            //Engine.Device.VertexFormat = CustomVertex.PositionNormalTextured.Format;	// Textured objects
            //Engine.Device.VertexFormat = CustomVertex.PositionNormalColored.Format;	// Vertex-coloured objects

            //*** material ***
            //Engine.Device.Material = material;

            //*** Once-only texture settings ***
            //Engine.Device.SetTexture(0,texture);							// Use this texture for all primitives
            //Engine.Device.SetTexture(0,null);								// Use no texture at all (material-only objects)
            //Engine.Device.SamplerState[0].MagFilter = TextureFilter.None;				// (texel smoothing option)
            //Engine.Device.SamplerState[0].MagFilter = TextureFilter.Linear;			// (texel smoothing option)
            //Engine.Device.SamplerState[0].AddressU = TextureAddress.Mirror;			// Texture mirroring required
            //Engine.Device.SamplerState[0].AddressV = TextureAddress.Mirror;			// ditto in V direction

            //*** Transparency settings ***
            //Engine.Device.RenderState.AlphaBlendEnable = true;							// enable/disable transparency)
            // Vector alpha...
            //Engine.Device.RenderState.DiffuseMaterialSource = ColorSource.Color1;
            // Material alpha...
            //			Engine.Device.RenderState.DiffuseMaterialSource = ColorSource.Material;
            //			Engine.Device.RenderState.SourceBlend = Blend.SourceAlpha;					// Source blend
            //			Engine.Device.RenderState.DestinationBlend = Blend.InvSourceAlpha;			// Dest blend
            // Texture alpha...
            //Engine.Device.TextureState[0].ColorOperation = TextureOperation.Modulate;	// Use the following for texture transp
            //Engine.Device.TextureState[0].ColorArgument1 = TextureArgument.TextureColor;
            //Engine.Device.TextureState[0].ColorArgument2 = TextureArgument.Diffuse;
            //Engine.Device.TextureState[0].AlphaOperation = TextureOperation.Modulate;
            //Engine.Device.TextureState[0].AlphaArgument1 = TextureArgument.TextureColor;
            //Engine.Device.TextureState[0].AlphaArgument2 = TextureArgument.Diffuse;

            //*** depth buffering ***
            Engine.Device.RenderState.ZBufferEnable = false;							// ZBuffer

            //*** lighting ***
            Engine.Device.RenderState.Lighting = false;									// enabled
            Engine.Device.RenderState.SpecularEnable = false;							// Specular lighting
            // --------------------------------------------------------

            // Draw all the widgets...
            Sprite sprite;														// we only need one sprite

            using (sprite=new Sprite(Engine.Device))
            {
                sprite.Begin(SpriteFlags.AlphaBlend);

                for (int s=0; s<widgetList.Count; s++)
                {
                    widgetList[s].Draw(sprite);									// draw the current anim frame
                }

                sprite.End();
            }
        }
        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            try
            {
                RenderIntoSurface();

                m_d3dDevice.Clear(ClearFlags.Target | ClearFlags.ZBuffer, m_clBackColor , 1.0f, 0);
                SetupCamera();

                m_d3dDevice.BeginScene();

                if(this.Editor != null && this.Editor.PhysicalStructure != null && m_d3dDevice != null)
                    if(Editor.PhysicalStructure.RootBody != null)
                    {
                        RigidBodies.RigidBody_DX rbRoot = (RigidBodies.RigidBody_DX)Editor.PhysicalStructure.RootBody;
                        if(rbRoot.Device == null || m_bReset)
                        {
                            rbRoot.InitDevice(m_d3dDevice);
                            m_bReset = false;
                            this.Invalidate();
                        }
                        else
                            Editor.PhysicalStructure.Draw(Editor.CommandBar.CommandMode);
                    }

                using (Sprite s = new Sprite(m_d3dDevice))
                {
                    //save the renderTexture to a graphics stream
                    //gsStream = TextureLoader.SaveToStream(ImageFileFormat.Dds, renderTexture);
                    //load the renderTexture to a texture object with a color key for transparency
                    //texTransBillBoard = TextureLoader.FromStream(Device,gsStream,0,0,1,Usage.None,Format.Unknown,Pool.Managed,Filter.None, Filter.None,Color.Black.ToArgb());

                    //Draw the texture
                    s.Begin(SpriteFlags.None);
                    s.Draw(renderTexture, new Rectangle(0,0, RenderSurfaceSize, RenderSurfaceSize), new Vector3(), new Vector3(0,0,0.0f), Color.White);
                    s.End();

                }

                m_d3dDevice.EndScene();
                m_d3dDevice.Present(this);
            }
            catch(Microsoft.DirectX.Direct3D.DeviceLostException)
            {
                try
                {
                    m_d3dDevice.Reset(m_ppPresentParams);
                    this.Invalidate();
                }
                catch (DeviceLostException)
                {
                    // If it's still lost or lost again, just do nothing
                }

            }
            catch(Exception ex)
            {
                Util.Logger.LogMsg(AnimatTools.Interfaces.Logger.enumLogLevel.Error, Util.GetErrorDetails("", ex));

                if(Editor.PhysicalStructure.RootBody == null)
                    return;
            }
        }
Example #43
0
 public void drawImage2d(Device i_dev,int i_x,int i_y,INyARRgbRaster i_raster)
 {
     NyARIntSize s = i_raster.getSize();
     if (this._texture == null)
     {
         this._texture=new NyARD3dTexture(i_dev,s.w,s.h);
     }
     else if (!this._texture.isEqualSize(s))
     {
         this._texture.Dispose();
         this._texture = new NyARD3dTexture(i_dev, s.w, s.h);
     }
     this._texture.setRaster(i_raster);
     using (Sprite sp = new Sprite(i_dev))
     {
         sp.Begin(SpriteFlags.None);
         sp.Draw((Texture)this._texture, new Rectangle(i_x,i_y, s.w,s.h), Vector3.Empty,new Vector3(i_dev.Viewport.X, i_dev.Viewport.Y, 0),Color.White);
         sp.End();
     }
 }
    public void DrawOverlay(Surface targetSurface)
    {
      Texture subTexture;
      Subtitle currentSubtitle;
      lock (_syncObj)
      {
        currentSubtitle = _currentSubtitle;
        subTexture = _subTexture;
        // Available sub is not due
        if (currentSubtitle == null || !currentSubtitle.ShouldDraw)
          return;

        if (targetSurface == null || targetSurface.Disposed || subTexture == null)
        {
          if (_drawCount > 0)
            ServiceRegistration.Get<ILogger>().Debug("Draw count for last sub: {0}", _drawCount);
          _drawCount = 0;
          return;
        }
        _drawCount++;
      }

      try
      {
        if (!subTexture.Disposed)
        {
          // TemporaryRenderTarget changes RenderTarget to texture and restores settings when done (Dispose)
          using (new TemporaryRenderTarget(targetSurface))
          using (TemporaryRenderState temporaryRenderState = new TemporaryRenderState())
          using (Sprite sprite = new Sprite(_device))
          {
            sprite.Begin(SpriteFlags.AlphaBlend);
            // No alpha test here, allow all values
            temporaryRenderState.SetTemporaryRenderState(RenderState.AlphaTestEnable, 0);

            // Use the SourceAlpha channel and InverseSourceAlpha for destination
            temporaryRenderState.SetTemporaryRenderState(RenderState.BlendOperation, (int) BlendOperation.Add);
            temporaryRenderState.SetTemporaryRenderState(RenderState.SourceBlend, (int) Blend.SourceAlpha);
            temporaryRenderState.SetTemporaryRenderState(RenderState.DestinationBlend, (int) Blend.InverseSourceAlpha);

            // Check the target texture dimensions and adjust scaling and translation
            SurfaceDescription desc = targetSurface.Description;
            Matrix transform = Matrix.Identity;
            transform *= Matrix.Translation(currentSubtitle.HorizontalPosition, currentSubtitle.FirstScanLine, 0);

            // Subtitle could be smaller for 16:9 anamorphic video (subtitle width: 720, video texture: 1024)
            // then we need to scale the subtitle width also.
            if (currentSubtitle.ScreenWidth != desc.Width)
              transform *= Matrix.Scaling((float) desc.Width / currentSubtitle.ScreenWidth, 1, 1);

            sprite.Transform = transform;
            sprite.Draw(subTexture, Color.White);
            sprite.End();
          }
        }
      }
      catch (Exception ex)
      {
        ServiceRegistration.Get<ILogger>().Debug("Error in DrawOverlay", ex);
      }

      if (_onTextureInvalidated != null)
        _onTextureInvalidated();
    }
        protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
        {
            deltaTime = hrt.ElapsedTime;
            UpdateSprite(deltaTime);
            device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Blue, 1.0f, 0);
            device.BeginScene();
            using (Sprite sprite = new Sprite(device)) {
                sprite.Begin(SpriteFlags.None);
                //Set rotation center for sprite
                spriteCenter.X = spritePosition.X + tileSet.ExtentX;
                spriteCenter.Y = spritePosition.Y + tileSet.ExtentY;

                //Spin, Shift, Stretch :-)
                sprite.Transform = Matrix.RotationZ(angle) * Matrix.Translation(spriteCenter);
                sprite.Draw(tileSet.Texture, tilePosition, spriteCenter, spritePosition,
                    Color.FromArgb(255,255,255,255));
                sprite.End();
            }
            device.EndScene();
            device.Present();
            this.Invalidate();
        }
Example #46
0
        /// <summary>
        /// Draws the radar.
        /// </summary>
        public void drawRadar()
        {
            using (Sprite s = new Sprite(device))
            {
                s.Begin(SpriteFlags.AlphaBlend);

                Point playerP = new Point((int)player.Location.X + radarPoint.X,
                    (int)player.Location.Z + radarPoint.Y);

                s.Draw2D(ContentLoader.Radar, Rectangle.Empty, new Size((int)(playerP.X * 2), (int)((this.height-playerP.Y) * 2)),
                    new Point(0, (int)(this.height - (this.height - playerP.Y) * 2)), Color.White);

                s.Draw2D(this.radarEnemyTexture, Rectangle.Empty,
                    this.enemySize, playerP, Color.LightSkyBlue);

                s.Draw2D(ContentLoader.GUIBack, Rectangle.Empty, new Size((int)(this.width * 0.15f), 120),
                    new Point(0, 0), Color.White);

                foreach (Enemy e in enemies)
                {
                    Point point = new Point(
                        (int)(radarPoint.X + e.Location.X * Math.Cos(player.Head.Rotation.X) - e.Location.Z * Math.Sin(player.Head.Rotation.X)),
                        (int)(radarPoint.Y - e.Location.X * Math.Sin(player.Head.Rotation.X) - e.Location.Z * Math.Cos(player.Head.Rotation.X)));

                    s.Draw2D(this.radarEnemyTexture, Rectangle.Empty,
                        this.enemySize, point, Color.Red);
                }
                s.End();
            }
        }
 public void Draw( Sprite sprite, int grid_size )
 {
     if (m_file_texture != null)
     {
         sprite.Begin(SpriteFlags.AlphaBlend);
         sprite.Draw2D(m_file_texture, m_source, new Rectangle(0, 0, grid_size, grid_size), new Point((int)((float)m_location.X * ((float)grid_size / ((float)grid_size / (float)m_source.Width))),
                                                                                                         (int)(float)(m_location.Y * ((float)grid_size / ((float)grid_size / (float)m_source.Height)))), Color.White);
         sprite.End();
     }
 }
    /// <summary>
    /// Called once per frame, the call is the entry point for 3d rendering. This 
    /// function sets up render states, clears the viewport, and renders the scene.
    /// </summary>
    protected override void Render()
    {
        RenderBGPointer();

        //Clear the backbuffer to a Blue color
        device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Blue, 1.0f, 0);

        //Set the view matrix
        device.Transform.View = viewMatrix;

        //Begin the scene
        device.BeginScene();
        device.RenderState.ZBufferEnable = false;
        device.RenderState.Lighting = false;
        spaceSphere.Render();
        device.RenderState.Lighting = true;
        device.RenderState.ZBufferEnable = true;

        device.Transform.World = playerShip.Position.WorldMatrix;
        playerShip.Render();
        opponentShip.Render();

        //Render our targeting pointer
        using (Sprite pointerSprite = new Sprite(device)) {
            pointerSprite.Begin(SpriteFlags.AlphaBlend);

            pointerSprite.Draw(bgPointerTexture, new Rectangle(0, 0, 128, 128),
                new Vector3(0, 0, 0), new Vector3(42, this.Height - 250, 0), Color.White);
            pointerSprite.Transform = Matrix.Identity;
            pointerSprite.Draw(vectorPanel,new Rectangle(0,0,193,173),
                new Vector3(0,0,0), new Vector3(10, this.Height- 282, 0), Color.White);
            pointerSprite.End();
        }

        if (debugging) {
            drawingFont.DrawText(5,5,Color.Yellow,debugText);
        }
        device.EndScene();
    }