コード例 #1
0
        //SlimDX.Direct2D.RenderTarget renderTarget;

        //private void DrawBrush()
        //{
        //    // Create bitmap render target from DXGI surface
        //    renderTarget = SlimDX.Direct2D.RenderTarget.FromDXGI(factory, backBuffer, new RenderTargetProperties()
        //    {
        //        HorizontalDpi = 1024,
        //        VerticalDpi = 768,
        //        MinimumFeatureLevel = SlimDX.Direct2D.FeatureLevel.Default,
        //        PixelFormat = new SlimDX.Direct2D.PixelFormat(SlimDX.DXGI.Format.Unknown, SlimDX.Direct2D.AlphaMode.Ignore),
        //        Type = SlimDX.Direct2D.RenderTargetType.Default,
        //        Usage = SlimDX.Direct2D.RenderTargetUsage.None
        //    });

        //    using (var brush = new SlimDX.Direct2D.SolidColorBrush(renderTarget, new Color4(Color.LightSlateGray)))
        //    {
        //        for (int x = 0; x < renderTarget.Size.Width; x += 10)
        //            renderTarget.DrawLine(brush, x, 0, x, renderTarget.Size.Height, 0.5f);

        //        for (int y = 0; y < renderTarget.Size.Height; y += 10)
        //            renderTarget.DrawLine(brush, 0, y, renderTarget.Size.Width, y, 0.5f);

        //        renderTarget.FillRectangle(brush, new RectangleF(renderTarget.Size.Width / 2 - 50, renderTarget.Size.Height / 2 - 50, 100, 100));
        //    }

        //    renderTarget.DrawRectangle(new SlimDX.Direct2D.SolidColorBrush(renderTarget, new Color4(Color.CornflowerBlue)),
        //        new RectangleF(renderTarget.Size.Width / 2 - 100, renderTarget.Size.Height / 2 - 100, 200, 200));
        //}

        // DrawMesh
        //private void DrawMesh(SlimDX.Direct3D9.Mesh mesh, SlimDX.Vector3 loc, bool wireframe = false, bool isFilled = false)

        /// <summary>
        /// ///////////////////////////////
        /// ///////////////////////////////
        /// ///////////////////////////////
        /// </summary>

        // DrawCubeTest
        private void DrawCubeTest(SlimDX.Vector3 loc, float width, float height, float depth, bool isFilled = true, bool wireframe = false)
        {
            if (_mesh == null)
            {
                _mesh = SlimDX.Direct3D9.Mesh.CreateBox(D3D.Device, width, height, depth);
            }

            _SB.Capture();

            //D3D.Device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, System.Drawing.Color.Black, 1.0f, 0);

            var worldMatrix = SlimDX.Matrix.Translation(loc);

            D3D.Device.SetTransform(TransformState.World, worldMatrix);

            _mesh.DrawSubset(0);

            D3D.Device.SetRenderState(RenderState.FillMode, SlimDX.Direct3D9.FillMode.Solid);

            _SB.Apply();

            // cleanup
            if (Vertices != null)
            {
                Vertices.Dispose();
            }
        }
コード例 #2
0
        // DrawCubeTest
        private static void DrawCubeTest(SlimDX.Vector3 loc, float width, float height, float depth, bool isFilled = true, bool wireframe = false)
        {
            if (_mesh == null)
            {
                _mesh = SlimDX.Direct3D9.Mesh.CreateBox(D3D.Device, width, height, depth);
            }

            _SB.Capture();

            var worldMatrix = SlimDX.Matrix.Translation(loc);

            D3D.Device.SetTransform(TransformState.World, worldMatrix);

            _mesh.DrawSubset(0);

            D3D.Device.SetRenderState(RenderState.FillMode, SlimDX.Direct3D9.FillMode.Solid);

            _SB.Apply();
        }
コード例 #3
0
        // DrawMesh
        private void DrawMesh(SlimDX.Direct3D9.Mesh mesh, SlimDX.Vector3 loc, bool wireframe = false, bool isFilled = false)
        {
            light          = new Light();
            light.Type     = LightType.Point;
            light.Range    = 75;
            light.Position = new SlimDX.Vector3(10, 25, 0);
            light.Falloff  = 1.0f;
            light.Diffuse  = System.Drawing.Color.LemonChiffon;
            light.Ambient  = ambient;



            activeMaterial         = new Material();
            activeMaterial.Diffuse = System.Drawing.Color.Orange;
            activeMaterial.Ambient = ambient;

            passiveMaterial         = new Material();
            passiveMaterial.Diffuse = System.Drawing.Color.Red;
            passiveMaterial.Ambient = ambient;

            groundMaterial         = new Material();
            groundMaterial.Diffuse = System.Drawing.Color.Green;
            groundMaterial.Ambient = ambient;



            if (isFilled)
            {
                if (wireframe)
                {
                    D3D.Device.SetRenderState(RenderState.FillMode, SlimDX.Direct3D9.FillMode.Solid);
                }
            }
            else
            {
                if (wireframe)
                {
                    D3D.Device.SetRenderState(RenderState.FillMode, SlimDX.Direct3D9.FillMode.Wireframe);
                }
            }
            var worldMatrix = SlimDX.Matrix.Translation(loc);



            //D3D.Device.SetLight(0, light);
            //D3D.Device.EnableLight(0, true);
            //D3D.Device.SetRenderState(RenderState.Ambient, ambient.ToArgb());
            //D3D.Device.Material = groundMaterial;

            D3D.Device.SetTransform(TransformState.World, worldMatrix);

            mesh.DrawSubset(0);


            if (isFilled)
            {
                if (wireframe)
                {
                    D3D.Device.SetRenderState(RenderState.FillMode, SlimDX.Direct3D9.FillMode.Wireframe);
                }
            }
            else
            {
                //if (wireframe)
                //D3D.Device.SetRenderState(RenderState.FillMode, SlimDX.Direct3D9.FillMode.Solid);
            }
        }