Can we see some of your code when using the mouse input? This would help out with tracking down the problem.
public void Display() // Get the current state of the mouse device. ...Handle the data in mouseStateData.X and mouseStateData.Y
{
InitDirectDraw(); //Creates the DirectXDraw device and sets it up (640x480)
InitDirectInput(); //(create mouse, set exclusive/foreground, acquire)
Rendering = true; while (Rendering)
{
HandleInput(); //Shown below
DisplayFrame(); //Renders to the DirectXDraw surface
Application.DoEvents();
}
// Clean up
MouseDevice.Unacquire();
DisplayDevice.RestoreDisplayMode();
DisplayDevice.SetCooperativeLevel(this,DXD.CooperativeLevelFlags.Normal);
} protected override void HandleInput()
{
base.HandleInput();
MouseState mouseStateData = new MouseState();
if (!GetMouseState(ref mouseStateData))
return;
}
If the hardware vendor supplies acceleration as part of the driver, that may be causing the issue. Try your applications without using the Logitech driver and see if you have the same symptoms.
I noticed that the C# DirectInput mouse sample in the SDK was not affected by mouse acceleration. I mimiced the code by my application was still affected. So I set out to find out why.
I noticed that my form that was calling into DirectInput was not a top level form but was brought up from another. So I added another form the sample app, replaced the frmUI in the Application.Run() call and added a button to bring up frmUI.
From my testing it appears that if the form in the C# DirectInput mouse app is not the form used in Application.Run(), but is instead brought up using frmUI.Show() or frmUI.ShowDialog() then the form is affected by mouse acceleration. I'm not certain how C# sets up its message loop, or how that interacts with the way that app is set up to deal with mouse input. It seems strange to me. Any ideas?