Virtualpad - another performance improvement for Analogstick controls
This commit is contained in:
parent
9210b4d9a1
commit
dc8fa8bd87
|
@ -153,16 +153,31 @@ namespace BizHawk.Client.EmuHawk
|
|||
private void SetNumericsFromAnalog()
|
||||
{
|
||||
if (AnalogStick.HasValue)
|
||||
{
|
||||
// Setting .Value of a numeric causes a draw, so avoid it unless necessary
|
||||
if (ManualX.Value != AnalogStick.X)
|
||||
{
|
||||
ManualX.Value = AnalogStick.X;
|
||||
}
|
||||
|
||||
if (ManualY.Value != AnalogStick.Y)
|
||||
{
|
||||
ManualY.Value = AnalogStick.Y;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ManualX.Value != 0)
|
||||
{
|
||||
ManualX.Value = 0;
|
||||
}
|
||||
|
||||
if (ManualY.Value != 0)
|
||||
{
|
||||
ManualY.Value = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void AnalogStick_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
|
|
|
@ -158,6 +158,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private int MidX { get { return (int)((MaxX + 0.5) / 2); } }
|
||||
private int MidY { get { return (int)((MaxY + 0.5) / 2); } }
|
||||
|
||||
private void AnalogControlPanel_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
unchecked
|
||||
|
@ -246,12 +247,15 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
if (X != 0 || Y != 0 || HasValue)
|
||||
{
|
||||
X = Y = 0;
|
||||
HasValue = false;
|
||||
DoClearCallback();
|
||||
Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
public void Set(IController controller)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue