//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(); } }
// 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(); }
// 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); } }