LINUX.ORG.RU

(GTK) Сигнал вместо таймера


0

1

В гтк-проекте, работающем под виндами сделан глобальный доступ к событиям мышки(клики) методом из директ икс - DirectInput: нужно было ловить евенты даже вне основного окна программы. Спасибо людям из форума за подсказки. Только силами гтк я это решить не сумел. Метод DirectInput работает так: когда с мышкой что-то происходит, движение или клики, то DirectInput меняет содержимое одной несложной структуры и все. Т.е. для получения данных о событиях нужно лишь периодически опрашивать эту структуру. Мне в нужны точные измерения, поэтому иногда опрос стоит 100 раз в секунду. А лучше бы и чаще но возникают тормоза. Опрос пока что сделал через таймер g_timeout_add_full. До использования DirectInput контроль над мышкой был только над рабочим окном проги, сигналы ловил элементарно через g_signal_connect ...

Поэтому вопрос, а можно как-то сделать, чтобы гтк сама следила за изменением некой структуры и подавала сигнал, когда там что-то меняется? А то мне кажется, что через таймер как-то неэффективно.

P.S. про g_signal_new читал но не понял с какого боку его туда прикрутить и вообще то ли это...


IDirectInputDevice8::SetEventNotification поможет следить за событиями без таймера

donkey3000
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.