Virtualpad - another performance improvement for Analogstick controls
This commit is contained in:
parent
9210b4d9a1
commit
dc8fa8bd87
|
@ -154,13 +154,28 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
if (AnalogStick.HasValue)
|
||||
{
|
||||
ManualX.Value = AnalogStick.X;
|
||||
ManualY.Value = AnalogStick.Y;
|
||||
// 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
|
||||
{
|
||||
ManualX.Value = 0;
|
||||
ManualY.Value = 0;
|
||||
if (ManualX.Value != 0)
|
||||
{
|
||||
ManualX.Value = 0;
|
||||
}
|
||||
|
||||
if (ManualY.Value != 0)
|
||||
{
|
||||
ManualY.Value = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -247,10 +248,13 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
public void Clear()
|
||||
{
|
||||
X = Y = 0;
|
||||
HasValue = false;
|
||||
DoClearCallback();
|
||||
Refresh();
|
||||
if (X != 0 || Y != 0 || HasValue)
|
||||
{
|
||||
X = Y = 0;
|
||||
HasValue = false;
|
||||
DoClearCallback();
|
||||
Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
public void Set(IController controller)
|
||||
|
|
Loading…
Reference in New Issue