protected override void OnSizeChanged(EventArgs e) { base.OnSizeChanged(e); HudDescription = new HudDescription( cameraEnabled: HudDescription.CameraEnabled, width: Size.Width, height: Size.Height, zFar: HudDescription.ZFar, zNear: HudDescription.ZNear, multithreaded: true ); }
public static Hud FromDescription(Device device, HudDescription description) { Hud hud = new Hud { AbsolutePosition = Vector2.Zero, Size = new Size(description.Width, description.Height), HudDescription = description, Depth = new Depth { WindowLayer = (int) description.ZFar, ComponentLayer = (int) description.ZFar, ZOrder = description.ZFar }, }; Device = device; if (description.CameraEnabled) { ICamera camera = Game.CurrentRenderer.Camera; hud.SetBinding(new KeyBinding(KeyAction.StrafeLeft, Keys.A, delegate() { camera.Strafe(-QuaternionCam.DefaultSpeed); })); hud.SetBinding(new KeyBinding(KeyAction.StrafeRight, Keys.D, delegate() { camera.Strafe(QuaternionCam.DefaultSpeed); })); hud.SetBinding(new KeyBinding(KeyAction.MoveForward, Keys.W, delegate() { camera.Move(QuaternionCam.DefaultSpeed); })); hud.SetBinding(new KeyBinding(KeyAction.MoveBackward, Keys.S, delegate() { camera.Move(-QuaternionCam.DefaultSpeed); })); hud.SetBinding(new KeyBinding(KeyAction.RotateLeft, Keys.Z, delegate() { camera.RotateY(QuaternionCam.DefaultRotationSpeed); })); hud.SetBinding(new KeyBinding(KeyAction.RotateRight, Keys.C, delegate() { camera.RotateY(-QuaternionCam.DefaultRotationSpeed); })); hud.SetBinding(new KeyBinding(KeyAction.HoverUp, Keys.Q, delegate() { camera.Hover(QuaternionCam.DefaultSpeed); })); hud.SetBinding(new KeyBinding(KeyAction.HoverDown, Keys.E, delegate() { camera.Hover(-QuaternionCam.DefaultSpeed); })); if (Game.Context.Settings.IsStereo) { StereoCamera stereoCamera = (StereoCamera)camera; hud.SetBinding(new KeyBinding(KeyAction.IncreaseSeparation, Keys.Add, delegate() { stereoCamera.ModifySeparation(StereoCamera.DefaultIncrement); })); hud.SetBinding(new KeyBinding(KeyAction.DecreaseSeparation, Keys.Subtract, delegate() { stereoCamera.ModifySeparation(-StereoCamera.DefaultIncrement); })); hud.SetBinding(new KeyBinding(KeyAction.DecreaseConvergence, Keys.Divide, delegate() { stereoCamera.ModifyConvergence(-StereoCamera.DefaultIncrement); })); hud.SetBinding(new KeyBinding(KeyAction.IncreaseConvergence, Keys.Multiply, delegate() { stereoCamera.ModifyConvergence(StereoCamera.DefaultIncrement); })); hud.SetBinding( new KeyBinding(KeyAction.None, Keys.F, delegate() { Game.Context.ResizeDevice(new Size(1920,1080), true); })); } } return hud; }