Skip to content
Snippets Groups Projects
Commit e4b257a8 authored by Magnus Norddahl's avatar Magnus Norddahl
Browse files

- remove SlimDX.DirectInput namespace

parent 21b46010
No related branches found
No related tags found
No related merge requests found
......@@ -18,8 +18,6 @@
using System;
using System.Windows.Forms;
using SlimDX;
using SlimDX.DirectInput;
using CodeImp.DoomBuilder.Geometry;
#endregion
......@@ -31,18 +29,8 @@ namespace CodeImp.DoomBuilder.Actions
#region ================== Variables
// Mouse input
private DirectInput dinput;
private Mouse mouse;
private RawMouse mouse;
// Disposing
private bool isdisposed;
#endregion
#region ================== Properties
public bool IsDisposed { get { return isdisposed; } }
#endregion
#region ================== Constructor / Disposer
......@@ -50,30 +38,8 @@ namespace CodeImp.DoomBuilder.Actions
// Constructor
public MouseInput(Control source)
{
// Initialize
dinput = new DirectInput();
// Start mouse input
mouse = new Mouse(dinput);
if(mouse == null) throw new Exception("No mouse device found.");
// Set mouse input settings
mouse.Properties.AxisMode = DeviceAxisMode.Relative;
// Set cooperative level
mouse.SetCooperativeLevel(source,
CooperativeLevel.Nonexclusive | CooperativeLevel.Foreground);
// Aquire device
try { mouse.Acquire(); }
#if DEBUG
catch(Exception e)
{
Console.WriteLine("MouseInput initialization failed: " + e.Message);
}
#else
catch(Exception) { }
#endif
mouse = new RawMouse(source);
// We have no destructor
GC.SuppressFinalize(this);
......@@ -82,20 +48,10 @@ namespace CodeImp.DoomBuilder.Actions
// Disposer
public void Dispose()
{
// Not already disposed?
if(!isdisposed)
if(mouse != null)
{
// Dispose
mouse.Unacquire();
mouse.Dispose();
dinput.Dispose();
// Clean up
mouse = null;
dinput = null;
// Done
isdisposed = true;
}
}
......@@ -110,62 +66,39 @@ namespace CodeImp.DoomBuilder.Actions
// This processes the input
public Vector2D Process()
{
// Poll the device
try
{
Result result = mouse.Poll();
if(result.IsSuccess)
{
// Get the changes since previous poll
MouseState ms = mouse.GetCurrentState();
// Calculate changes depending on sensitivity
float changex = ms.X * General.Settings.VisualMouseSensX * General.Settings.MouseSpeed * 0.01f;
float changey = ms.Y * General.Settings.VisualMouseSensY * General.Settings.MouseSpeed * 0.01f;
// Return changes
return new Vector2D(changex, changey);
}
// Reaquire device
try { mouse.Acquire(); }
#if DEBUG
catch(Exception e)
{
Console.WriteLine("MouseInput process failed: " + e.Message);
}
#else
catch(Exception) { }
#endif
return new Vector2D();
}
#if DEBUG
catch(DirectInputException die)
{
Console.WriteLine("MouseInput process failed: " + die.Message);
// Reaquire device
try
{
mouse.Acquire();
}
catch(Exception e)
{
Console.WriteLine("MouseInput process failed: " + e.Message);
}
return new Vector2D();
}
#else
catch(DirectInputException)
{
// Reaquire device
try { mouse.Acquire(); }
catch(Exception) { }
return new Vector2D();
}
#endif
MouseState ms = mouse.Poll();
// Calculate changes depending on sensitivity
float changex = ms.X * General.Settings.VisualMouseSensX * General.Settings.MouseSpeed * 0.01f;
float changey = ms.Y * General.Settings.VisualMouseSensY * General.Settings.MouseSpeed * 0.01f;
return new Vector2D(changex, changey);
}
#endregion
}
public struct MouseState
{
public MouseState(float x, float y) { X = x; Y = y; }
public float X { get; }
public float Y { get; }
}
public class RawMouse
{
public RawMouse(System.Windows.Forms.Control control)
{
}
public MouseState Poll()
{
// To do: use WM_RAWINPUT to get data
return new MouseState(0.0f, 0.0f);
}
public void Dispose()
{
}
}
}
......@@ -261,49 +261,4 @@ namespace SlimDX
public static bool operator !=(Vector4 left, Vector4 right) { return left.X != right.X || left.Y != right.Y || left.Z != right.Z || left.W != right.W; }
}
#endregion
#region DirectInput mouse handling
namespace DirectInput
{
public enum DeviceAxisMode { Relative }
public enum CooperativeLevel { Nonexclusive, Foreground }
public class DirectInput
{
public void Dispose() { }
}
public class MouseProperties
{
public DeviceAxisMode AxisMode { private get; set; }
}
public class MouseState
{
public float X { get; }
public float Y { get; }
}
public class Result
{
public bool IsSuccess { get; }
}
public class Mouse
{
public Mouse(DirectInput dinput) { }
public MouseProperties Properties { get; }
public void SetCooperativeLevel(System.Windows.Forms.Control control, CooperativeLevel level) { }
public void Acquire() { }
public void Unacquire() { }
public Result Poll() { return null; }
public MouseState GetCurrentState() { return null; }
public void Dispose() { }
}
public class DirectInputException : ApplicationException
{
}
}
#endregion
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment