Как использовать RenderForm вместе с RawInput и SharpDX?

Это легко с slimdx. Просто зарегистрируйте устройство и событие:

SharpDX.RawInput.Device.RegisterDevice(UsagePage.Generic, UsageId.GenericKeyboard, SharpDX.RawInput.DeviceFlags.None);
SharpDX.RawInput.Device.KeyboardInput += new System.EventHandler<KeyboardInputEventArgs>(Device_KeyboardInput);

Но это не будет работать с SharpDX. Device_KeyboardInput не вызывается, когда я использую предложенный цикл рендеринга:

RenderLoop.Run(renderForm, () =>
{
}

Как-то это работает (мышь работает, а клавиатура нет), когда я добавляю Application.DoEvents() в цикл. DoEvents() не следует использовать, когда я правильно интерпретирую этот руководство по slimdx. Sharpdx RawInput работает только с обычным окном, как это используется в пример необработанного ввода Sharpdx.

Как я могу использовать RawInput с SharpDX с RenderLoop?


person hitzi    schedule 30.01.2012    source источник


Ответы (1)


Это была ошибка SharpDX, и сейчас она исправлена: http://code.google.com/p/sharpdx/source/detail?r=5b80d6dea7f8

person hitzi    schedule 01.02.2012