//[TWProfile] void gameLoopStep() { if (!running) { if (exitAndCleanup()) { return; } return; } if (!Form.Active) { Thread.Sleep(100); } updateInput(); updateElapsed(); SpectaterCamera.Update(Elapsed, keyboard, mouse); Form.Device.ImmediateContext.ClearRenderTargetView(Form.RenderTargetView, new Color4(Color.DeepSkyBlue)); updateBasicShaders(); doGameLoopEvent(); renderAxisLines(); LineManager3D.Render(Camera); }
public void TestLineManager3D() { var keyboard = new SlimDXTWKeyboard(); var dev = new SlimDX.DirectInput.DirectInput(); var kb = new SlimDX.DirectInput.Keyboard(dev); kb.Acquire(); var mouse = new TWMouse(); var m = new SlimDX.DirectInput.Mouse(dev); m.Acquire(); var game = new DX11Form(); game.InitDirectX(); var device = game.Device; var rasterizerState = RasterizerState.FromDescription(device, new RasterizerStateDescription() { CullMode = CullMode.None, FillMode = FillMode.Solid }); device.ImmediateContext.Rasterizer.State = rasterizerState; var cam = new SpectaterCamera(); var lineManager = new LineManager3D(device); game.GameLoopEvent += delegate { mouse.UpdateMouseState(m.GetCurrentState()); keyboard.UpdateKeyboardState(kb.GetCurrentState()); cam.Update(0.001f, keyboard, mouse); for (int num = 0; num < 200; num++) { lineManager.AddLine( new Vector3(-12.0f + num / 4.0f, 13.0f, 0), new Vector3(-17.0f + num / 4.0f, -13.0f, 0), new Color4((byte)(255 - num) / 255f, 14 / 255f, (byte)num / 255f)); } // for lineManager.DrawGroundShadows = true; lineManager.AddCenteredBox(new Vector3(4, 4, 4), 2, new Color4(1, 0, 0)); lineManager.WorldMatrix = Matrix.Translation(MathHelper.Up * 30); for (int num = 0; num < 200; num++) { lineManager.AddLine( new Vector3(-12.0f + num / 4.0f, 13.0f, 0), new Vector3(-17.0f + num / 4.0f, -13.0f, 0), new Color4((byte)(255 - num) / 255f, 14 / 255f, (byte)num / 255f)); } // for lineManager.Render(cam); if (keyboard.IsKeyDown(Key.Escape)) { game.Exit(); } }; game.Run(); rasterizerState.Dispose(); kb.Dispose(); m.Dispose(); dev.Dispose(); }