6. Multitouch / Gesture support (ВЫВОД)
Человеко-машинное
взаимодействие с помощью
жестов стало де-факто
стандартом
6
7. Реализация multitouch ввода в Linux
●
Общий принцип работы
●
Поддержка в ядре
●
Протокол А/B
●
Поддержка в userspace
●
XORG
●
MTEV
●
XINPUT 2.2
●
Поддержка в библиотеках
●
Пример
7
8. Общий принцип работы
ПРИКЛАДНАЯ БИБЛИОТЕКА
XORG ДРАЙВЕР
USERLAND ВВОДА
“ЭКРАН”
“ТАЧСКРИН”
драйвер
ЯДРО тачскрина
HW КОНТРОЛЛЕР
8
9. Поддержка multi-touch в ядре
●
Ядро 2.6.30 (июнь 2009)
первый multitouch протокол в
подсистеме ввода
●
Современные ядра поддерживают
два типа протокола
●
Протоколы нужны для лучшего
отражения возможностей
аппаратной части
●
Linux/Documentation/input/multi-touch-protocol.txt
9
10. Протокол А
●
Драйвер должен посылать весь набор координат
всех контактов
●
Нет отслеживания контактов
●
Недостаток — большой избыточный поток данных
в юзерленд
●
Подходит для простых контроллеров тачскрина без
трекинга
10
12. Протокол B
●
Вводятся понятие слотов и отслеживаемых
контактов
●
Драйвер отмылает только обновления по
определенному контакту
●
Уменьшается поток данных от ядра
●
Контроллер должен поддерживать эту фичу
12
14. Поддержка в userland. XORG
●
XORG — первый релиз 2004 год
при этом X-сервер существует с 1984 года
●
XORG отвечает не только за графику, но и за
средсва ввода
●
Не был готов к тач революции середины нулевых
●
MPX — шаг навстречу мультитач
●
Были созданы “workaround” до нативной поддержки
XORG multi-touch
– Релиз XServer 1.12 (июнь 2012) содержит
XINPUT 2.2 и полную поддержку multi-touch
14
15. Поддержка в userland. MTEV
●
NOKIA при создании MeeGo нужен был мультитач
в Qt
●
MeeGo — Linux c Qt в качестве верхнего слоя для
разработки ПО
●
Был написан драйвер MTEV для XServer
●
Использует MPX
●
Qt c патчем понимает протокол и преобразует в
соответсвующие классы
●
MTEV — это workaround, пока все ждали native
support
15
16. Поддержка в userland. XINPUT2.2
●
XServer 1.12 дает полную поддержку
●
Не все фреймворки готовы:
●
Qt сначала вообще отказывался в пользу
Wayland
●
GTK+ 3.4 обещает подержку
●
Fedora 17 должна стать первым дистрибутивом с
полной поддержкой
●
Name: Peter Hutterer
●
Email: <peter.hutterer@redhat.com>
●
Обещает самый прогрессивный мультитач
16
17. Поддержка в userland. Библиотеки
●
Qt поддерживает мультитач и жесты
●
Классы жестов плохо работают (4.7)
●
Рекомендуется использовать QML
17