mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-03-30 11:16:56 +00:00
Fixed data marshaling to winforms thread.
This commit is contained in:
parent
ab4e1b6a0f
commit
8476ff2c08
88
Source/Examples/Tests/S04_Input_Logger.Designer.cs
generated
88
Source/Examples/Tests/S04_Input_Logger.Designer.cs
generated
|
@ -40,6 +40,8 @@
|
||||||
this.listBox2 = new System.Windows.Forms.ListBox();
|
this.listBox2 = new System.Windows.Forms.ListBox();
|
||||||
this.listBox1 = new System.Windows.Forms.ListBox();
|
this.listBox1 = new System.Windows.Forms.ListBox();
|
||||||
this.Mouse = new System.Windows.Forms.TabPage();
|
this.Mouse = new System.Windows.Forms.TabPage();
|
||||||
|
this.MouseWheelDelta = new System.Windows.Forms.TextBox();
|
||||||
|
this.WheelDelta = new System.Windows.Forms.Label();
|
||||||
this.MouseWheelText = new System.Windows.Forms.TextBox();
|
this.MouseWheelText = new System.Windows.Forms.TextBox();
|
||||||
this.MouseWheel = new System.Windows.Forms.Label();
|
this.MouseWheel = new System.Windows.Forms.Label();
|
||||||
this.MouseDeltaY = new System.Windows.Forms.Label();
|
this.MouseDeltaY = new System.Windows.Forms.Label();
|
||||||
|
@ -53,9 +55,11 @@
|
||||||
this.MouseButtons = new System.Windows.Forms.ListBox();
|
this.MouseButtons = new System.Windows.Forms.ListBox();
|
||||||
this.ChooseMouse = new System.Windows.Forms.ComboBox();
|
this.ChooseMouse = new System.Windows.Forms.ComboBox();
|
||||||
this.HID = new System.Windows.Forms.TabPage();
|
this.HID = new System.Windows.Forms.TabPage();
|
||||||
this.WheelDelta = new System.Windows.Forms.Label();
|
|
||||||
this.MouseWheelDelta = new System.Windows.Forms.TextBox();
|
|
||||||
this.PollTimer = new System.Windows.Forms.Timer(this.components);
|
this.PollTimer = new System.Windows.Forms.Timer(this.components);
|
||||||
|
this.MouseXWindow = new System.Windows.Forms.TextBox();
|
||||||
|
this.MouseYWindow = new System.Windows.Forms.TextBox();
|
||||||
|
this.WindowX = new System.Windows.Forms.Label();
|
||||||
|
this.WindowY = new System.Windows.Forms.Label();
|
||||||
this.tabControl.SuspendLayout();
|
this.tabControl.SuspendLayout();
|
||||||
this.Keyboard.SuspendLayout();
|
this.Keyboard.SuspendLayout();
|
||||||
this.Mouse.SuspendLayout();
|
this.Mouse.SuspendLayout();
|
||||||
|
@ -162,6 +166,10 @@
|
||||||
// Mouse
|
// Mouse
|
||||||
//
|
//
|
||||||
this.Mouse.BackColor = System.Drawing.SystemColors.ControlLight;
|
this.Mouse.BackColor = System.Drawing.SystemColors.ControlLight;
|
||||||
|
this.Mouse.Controls.Add(this.WindowY);
|
||||||
|
this.Mouse.Controls.Add(this.WindowX);
|
||||||
|
this.Mouse.Controls.Add(this.MouseYWindow);
|
||||||
|
this.Mouse.Controls.Add(this.MouseXWindow);
|
||||||
this.Mouse.Controls.Add(this.MouseWheelDelta);
|
this.Mouse.Controls.Add(this.MouseWheelDelta);
|
||||||
this.Mouse.Controls.Add(this.WheelDelta);
|
this.Mouse.Controls.Add(this.WheelDelta);
|
||||||
this.Mouse.Controls.Add(this.MouseWheelText);
|
this.Mouse.Controls.Add(this.MouseWheelText);
|
||||||
|
@ -183,6 +191,23 @@
|
||||||
this.Mouse.TabIndex = 1;
|
this.Mouse.TabIndex = 1;
|
||||||
this.Mouse.Text = "Mouse";
|
this.Mouse.Text = "Mouse";
|
||||||
//
|
//
|
||||||
|
// MouseWheelDelta
|
||||||
|
//
|
||||||
|
this.MouseWheelDelta.Location = new System.Drawing.Point(80, 178);
|
||||||
|
this.MouseWheelDelta.Name = "MouseWheelDelta";
|
||||||
|
this.MouseWheelDelta.ReadOnly = true;
|
||||||
|
this.MouseWheelDelta.Size = new System.Drawing.Size(73, 20);
|
||||||
|
this.MouseWheelDelta.TabIndex = 13;
|
||||||
|
//
|
||||||
|
// WheelDelta
|
||||||
|
//
|
||||||
|
this.WheelDelta.AutoSize = true;
|
||||||
|
this.WheelDelta.Location = new System.Drawing.Point(4, 185);
|
||||||
|
this.WheelDelta.Name = "WheelDelta";
|
||||||
|
this.WheelDelta.Size = new System.Drawing.Size(69, 13);
|
||||||
|
this.WheelDelta.TabIndex = 12;
|
||||||
|
this.WheelDelta.Text = "Wheel Delta:";
|
||||||
|
//
|
||||||
// MouseWheelText
|
// MouseWheelText
|
||||||
//
|
//
|
||||||
this.MouseWheelText.Location = new System.Drawing.Point(80, 152);
|
this.MouseWheelText.Location = new System.Drawing.Point(80, 152);
|
||||||
|
@ -196,9 +221,9 @@
|
||||||
this.MouseWheel.AutoSize = true;
|
this.MouseWheel.AutoSize = true;
|
||||||
this.MouseWheel.Location = new System.Drawing.Point(4, 159);
|
this.MouseWheel.Location = new System.Drawing.Point(4, 159);
|
||||||
this.MouseWheel.Name = "MouseWheel";
|
this.MouseWheel.Name = "MouseWheel";
|
||||||
this.MouseWheel.Size = new System.Drawing.Size(38, 13);
|
this.MouseWheel.Size = new System.Drawing.Size(41, 13);
|
||||||
this.MouseWheel.TabIndex = 10;
|
this.MouseWheel.TabIndex = 10;
|
||||||
this.MouseWheel.Text = "Wheel";
|
this.MouseWheel.Text = "Wheel:";
|
||||||
//
|
//
|
||||||
// MouseDeltaY
|
// MouseDeltaY
|
||||||
//
|
//
|
||||||
|
@ -296,27 +321,44 @@
|
||||||
this.HID.Text = "HID";
|
this.HID.Text = "HID";
|
||||||
this.HID.UseVisualStyleBackColor = true;
|
this.HID.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// WheelDelta
|
|
||||||
//
|
|
||||||
this.WheelDelta.AutoSize = true;
|
|
||||||
this.WheelDelta.Location = new System.Drawing.Point(4, 185);
|
|
||||||
this.WheelDelta.Name = "WheelDelta";
|
|
||||||
this.WheelDelta.Size = new System.Drawing.Size(69, 13);
|
|
||||||
this.WheelDelta.TabIndex = 12;
|
|
||||||
this.WheelDelta.Text = "Wheel Delta:";
|
|
||||||
//
|
|
||||||
// MouseWheelDelta
|
|
||||||
//
|
|
||||||
this.MouseWheelDelta.Location = new System.Drawing.Point(80, 178);
|
|
||||||
this.MouseWheelDelta.Name = "MouseWheelDelta";
|
|
||||||
this.MouseWheelDelta.ReadOnly = true;
|
|
||||||
this.MouseWheelDelta.Size = new System.Drawing.Size(73, 20);
|
|
||||||
this.MouseWheelDelta.TabIndex = 13;
|
|
||||||
//
|
|
||||||
// PollTimer
|
// PollTimer
|
||||||
//
|
//
|
||||||
this.PollTimer.Interval = 10;
|
this.PollTimer.Interval = 10;
|
||||||
//
|
//
|
||||||
|
// MouseXWindow
|
||||||
|
//
|
||||||
|
this.MouseXWindow.Location = new System.Drawing.Point(80, 205);
|
||||||
|
this.MouseXWindow.Name = "MouseXWindow";
|
||||||
|
this.MouseXWindow.ReadOnly = true;
|
||||||
|
this.MouseXWindow.Size = new System.Drawing.Size(73, 20);
|
||||||
|
this.MouseXWindow.TabIndex = 14;
|
||||||
|
//
|
||||||
|
// MouseYWindow
|
||||||
|
//
|
||||||
|
this.MouseYWindow.Location = new System.Drawing.Point(80, 232);
|
||||||
|
this.MouseYWindow.Name = "MouseYWindow";
|
||||||
|
this.MouseYWindow.ReadOnly = true;
|
||||||
|
this.MouseYWindow.Size = new System.Drawing.Size(73, 20);
|
||||||
|
this.MouseYWindow.TabIndex = 15;
|
||||||
|
//
|
||||||
|
// WindowX
|
||||||
|
//
|
||||||
|
this.WindowX.AutoSize = true;
|
||||||
|
this.WindowX.Location = new System.Drawing.Point(4, 212);
|
||||||
|
this.WindowX.Name = "WindowX";
|
||||||
|
this.WindowX.Size = new System.Drawing.Size(59, 13);
|
||||||
|
this.WindowX.TabIndex = 16;
|
||||||
|
this.WindowX.Text = "Window X:";
|
||||||
|
//
|
||||||
|
// WindowY
|
||||||
|
//
|
||||||
|
this.WindowY.AutoSize = true;
|
||||||
|
this.WindowY.Location = new System.Drawing.Point(4, 239);
|
||||||
|
this.WindowY.Name = "WindowY";
|
||||||
|
this.WindowY.Size = new System.Drawing.Size(59, 13);
|
||||||
|
this.WindowY.TabIndex = 17;
|
||||||
|
this.WindowY.Text = "Window Y:";
|
||||||
|
//
|
||||||
// S04_Input_Logger
|
// S04_Input_Logger
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
|
@ -364,6 +406,10 @@
|
||||||
private System.Windows.Forms.TextBox MouseWheelDelta;
|
private System.Windows.Forms.TextBox MouseWheelDelta;
|
||||||
private System.Windows.Forms.Label WheelDelta;
|
private System.Windows.Forms.Label WheelDelta;
|
||||||
private System.Windows.Forms.Timer PollTimer;
|
private System.Windows.Forms.Timer PollTimer;
|
||||||
|
private System.Windows.Forms.TextBox MouseXWindow;
|
||||||
|
private System.Windows.Forms.Label WindowY;
|
||||||
|
private System.Windows.Forms.Label WindowX;
|
||||||
|
private System.Windows.Forms.TextBox MouseYWindow;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -20,6 +20,18 @@ using System.Threading;
|
||||||
|
|
||||||
namespace Examples.Tests
|
namespace Examples.Tests
|
||||||
{
|
{
|
||||||
|
[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Sequential)]
|
||||||
|
struct TryMouse
|
||||||
|
{
|
||||||
|
ushort usFlags;
|
||||||
|
ushort usButtonFlags;
|
||||||
|
ushort usButtonData;
|
||||||
|
uint ulRawButtons;
|
||||||
|
int lLastX;
|
||||||
|
int lLastY;
|
||||||
|
uint ulExtraInformation;
|
||||||
|
}
|
||||||
|
|
||||||
[Example("Input Logger", ExampleCategory.Test, 4)]
|
[Example("Input Logger", ExampleCategory.Test, 4)]
|
||||||
public partial class S04_Input_Logger : Form
|
public partial class S04_Input_Logger : Form
|
||||||
{
|
{
|
||||||
|
@ -30,6 +42,8 @@ namespace Examples.Tests
|
||||||
|
|
||||||
public S04_Input_Logger()
|
public S04_Input_Logger()
|
||||||
{
|
{
|
||||||
|
//Console.WriteLine(sizeof(TryMouse));
|
||||||
|
Console.WriteLine(System.Runtime.InteropServices.Marshal.SizeOf(typeof(TryMouse)));
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,14 +51,22 @@ namespace Examples.Tests
|
||||||
{
|
{
|
||||||
hidden = new GameWindow(new DisplayMode(30, 30), "OpenTK | Hidden input window");
|
hidden = new GameWindow(new DisplayMode(30, 30), "OpenTK | Hidden input window");
|
||||||
hidden.Load += hidden_Load;
|
hidden.Load += hidden_Load;
|
||||||
|
hidden.Unload += hidden_Unload;
|
||||||
hidden.Run(60.0, 1.0);
|
hidden.Run(60.0, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void hidden_Load(object sender, EventArgs e)
|
void hidden_Load(GameWindow sender, EventArgs e)
|
||||||
{
|
{
|
||||||
start = true;
|
start = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hidden_Unload(GameWindow sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.BeginInvoke(on_hidden_unload, sender, e, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
delegate void CloseTrigger(GameWindow sender, EventArgs e, Form f);
|
||||||
|
CloseTrigger on_hidden_unload = delegate(GameWindow sender, EventArgs e, Form f) { f.Close(); };
|
||||||
|
|
||||||
protected override void OnLoad(EventArgs e)
|
protected override void OnLoad(EventArgs e)
|
||||||
{
|
{
|
||||||
|
@ -84,21 +106,21 @@ namespace Examples.Tests
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate void ControlLogMouseKey(GameWindow input_window, S04_Input_Logger control, MouseDevice sender, MouseButton button);
|
delegate void ControlLogMouseKey(GameWindow input_window, S04_Input_Logger control, MouseDevice sender, MouseButton button);
|
||||||
ControlLogMouseKey ControlLogMouseKeyDown = new ControlLogMouseKey(
|
ControlLogMouseKey ControlLogMouseKeyDown =
|
||||||
delegate(GameWindow input_window, S04_Input_Logger control, MouseDevice sender, MouseButton button)
|
delegate(GameWindow input_window, S04_Input_Logger control, MouseDevice sender, MouseButton button)
|
||||||
{
|
{
|
||||||
if (sender.DeviceID == input_window.Mouse.DeviceID)
|
if (sender.DeviceID == input_window.Mouse.DeviceID)
|
||||||
control.MouseButtons.Items.Add(button);
|
control.MouseButtons.Items.Add(button);
|
||||||
});
|
};
|
||||||
ControlLogMouseKey ControlLogMouseKeyUp = new ControlLogMouseKey(
|
ControlLogMouseKey ControlLogMouseKeyUp =
|
||||||
delegate(GameWindow input_window, S04_Input_Logger control, MouseDevice sender, MouseButton button)
|
delegate(GameWindow input_window, S04_Input_Logger control, MouseDevice sender, MouseButton button)
|
||||||
{
|
{
|
||||||
if (sender.DeviceID == input_window.Mouse.DeviceID)
|
if (sender.DeviceID == input_window.Mouse.DeviceID)
|
||||||
control.MouseButtons.Items.Remove(button);
|
control.MouseButtons.Items.Remove(button);
|
||||||
});
|
};
|
||||||
|
|
||||||
delegate void ControlLogMousePosition(GameWindow input_window, S04_Input_Logger control);
|
delegate void ControlLogMousePosition(GameWindow input_window, S04_Input_Logger control);
|
||||||
ControlLogMousePosition ControlLogMousePositionChanges = new ControlLogMousePosition(
|
ControlLogMousePosition ControlLogMousePositionChanges =
|
||||||
delegate(GameWindow input_window, S04_Input_Logger control)
|
delegate(GameWindow input_window, S04_Input_Logger control)
|
||||||
{
|
{
|
||||||
// Update mouse coordinates.
|
// Update mouse coordinates.
|
||||||
|
@ -107,20 +129,24 @@ namespace Examples.Tests
|
||||||
control.MouseDXText.Text = input_window.Mouse.XDelta.ToString();
|
control.MouseDXText.Text = input_window.Mouse.XDelta.ToString();
|
||||||
control.MouseDYText.Text = input_window.Mouse.YDelta.ToString();
|
control.MouseDYText.Text = input_window.Mouse.YDelta.ToString();
|
||||||
control.MouseWheelText.Text = input_window.Mouse.Wheel.ToString();
|
control.MouseWheelText.Text = input_window.Mouse.Wheel.ToString();
|
||||||
|
//System.Drawing.Point p = input_window.PointToClient(input_window.Mouse.Position);
|
||||||
|
//System.Drawing.Point p = control.PointToClient(input_window.Mouse.Position);
|
||||||
|
//control.MouseXWindow.Text = p.X.ToString();
|
||||||
|
//control.MouseYWindow.Text = p.Y.ToString();
|
||||||
//MouseWheelDelta.Text = driver.Mouse[ChooseMouse.SelectedIndex].WheelDelta.ToString();
|
//MouseWheelDelta.Text = driver.Mouse[ChooseMouse.SelectedIndex].WheelDelta.ToString();
|
||||||
});
|
};
|
||||||
|
|
||||||
delegate void ControlLogKeyboard(GameWindow input_window, S04_Input_Logger control, KeyboardDevice sender, Key key);
|
delegate void ControlLogKeyboard(GameWindow input_window, S04_Input_Logger control, KeyboardDevice sender, Key key);
|
||||||
ControlLogKeyboard ControlLogKeyboardDown = new ControlLogKeyboard(
|
ControlLogKeyboard ControlLogKeyboardDown =
|
||||||
delegate(GameWindow input_window, S04_Input_Logger control, KeyboardDevice sender, Key key)
|
delegate(GameWindow input_window, S04_Input_Logger control, KeyboardDevice sender, Key key)
|
||||||
{
|
{
|
||||||
control.keyboardListBoxes[(sender as KeyboardDevice).DeviceID].Items.Add(key);
|
control.keyboardListBoxes[(sender as KeyboardDevice).DeviceID].Items.Add(key);
|
||||||
});
|
};
|
||||||
ControlLogKeyboard ControlLogKeyboardUp = new ControlLogKeyboard(
|
ControlLogKeyboard ControlLogKeyboardUp =
|
||||||
delegate(GameWindow input_window, S04_Input_Logger control, KeyboardDevice sender, Key key)
|
delegate(GameWindow input_window, S04_Input_Logger control, KeyboardDevice sender, Key key)
|
||||||
{
|
{
|
||||||
control.keyboardListBoxes[(sender as KeyboardDevice).DeviceID].Items.Remove(key);
|
control.keyboardListBoxes[(sender as KeyboardDevice).DeviceID].Items.Remove(key);
|
||||||
});
|
};
|
||||||
|
|
||||||
void hidden_UpdateFrame(object sender, UpdateFrameEventArgs e)
|
void hidden_UpdateFrame(object sender, UpdateFrameEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue