際際滷

際際滷Share a Scribd company logo
Multi-touch 于于仂亟 于 弌 Linux

                仍亟亳仆 .丐.
            ralyautdin@dev.rtsoft.ru




1
仍舒仆

     
       Multitouch / Gesture support
     
       亠舒仍亳亰舒亳 multitouch 于于仂亟舒 于 Linux
     
       舒亰于亳亳亠 亳亟亠亶 于于仂亟舒




2
Multitouch / Gesture support (1)



                         Nokia N9 (MeeGo)




3
Multitouch / Gesture support (2)

                           a) Pan gesture

                           b) Swipe gesture

                           c) Pinch gesture




4
Multitouch / Gesture support (3)


                           仗仂仍亰仂于舒仆亳亠
                              亢亠仂于 于
                          从舒亠于亠 仗舒仂仍




5
Multitouch / Gesture support (乘)


             丼亠仍仂于亠从仂-仄舒亳仆仆仂亠
          于亰舒亳仄仂亟亠亶于亳亠  仗仂仄仂
            亢亠仂于 舒仍仂 亟亠-舒从仂
                 舒仆亟舒仂仄




6
亠舒仍亳亰舒亳 multitouch 于于仂亟舒 于 Linux
      
        弍亳亶 仗亳仆亳仗 舒弍仂
      
        仂亟亟亠亢从舒 于 磲亠
          
            仂仂从仂仍 /B
      
        仂亟亟亠亢从舒 于 userspace
          
            XORG
              
                MTEV
              
                XINPUT 2.2
          
            仂亟亟亠亢从舒 于 弍亳弍仍亳仂亠从舒
      
        亳仄亠
7
弍亳亶 仗亳仆亳仗 舒弍仂

      亊 丐




                  XORG 
      USERLAND          

                                  亅
                                  丐丼弌
                       亟舒亶于亠
     亊             舒从亳仆舒



                 HW               丐




8
仂亟亟亠亢从舒 multi-touch 于 磲亠
      
          亊亟仂 2.6.30 (亳ミ術 2009)
          仗亠于亶 multitouch 仗仂仂从仂仍 于
          仗仂亟亳亠仄亠 于于仂亟舒
      
          弌仂于亠仄亠仆仆亠 磲舒 仗仂亟亟亠亢亳于舒ム
           亟于舒 亳仗舒 仗仂仂从仂仍舒
      
          仂仂从仂仍 仆亢仆 亟仍 仍亠亞仂
           仂舒亢亠仆亳              于仂亰仄仂亢仆仂亠亶
           舒仗仗舒舒仆仂亶 舒亳
      
          Linux/Documentation/input/multi-touch-protocol.txt

9
仂仂从仂仍 
       
           舒亶于亠 亟仂仍亢亠仆 仗仂仍舒 于亠 仆舒弍仂 从仂仂亟亳仆舒
            于亠 从仂仆舒从仂于
       
           亠 仂仍亠亢亳于舒仆亳 从仂仆舒从仂于
       
           亠亟仂舒仂从  弍仂仍仂亶 亳亰弍仂仆亶 仗仂仂从 亟舒仆仆
            于 ミ経却仍亠仆亟
       
           仂亟仂亟亳 亟仍 仗仂 从仂仆仂仍仍亠仂于 舒从亳仆舒 弍亠亰
            亠从亳仆亞舒




10
仂仂从仂仍  (亳仄亠)
      ABS_MT_POSITION_X x[0]
       
      ABS_MT_POSITION_Y y[0]
      SYN_MT_REPORT
      ABS_MT_POSITION_X x[1]    丐丼弌
      ABS_MT_POSITION_Y y[1]
      SYN_MT_REPORT
      SYN_REPORT




       ABS_MT_POSITION_X x[1]
       ABS_MT_POSITION_Y y[1]   丐丼弌
       SYN_MT_REPORT
       SYN_REPORT



11
仂仂从仂仍 B
       
           于仂亟 仗仂仆亳亠 仍仂仂于 亳 仂仍亠亢亳于舒亠仄
             从仂仆舒从仂于
       
           舒亶于亠 仂仄仍舒亠 仂仍从仂 仂弍仆仂于仍亠仆亳 仗仂
             仂仗亠亟亠仍亠仆仆仂仄 从仂仆舒从
       
           丕仄亠仆舒亠 仗仂仂从 亟舒仆仆 仂 磲舒
       
           仂仆仂仍仍亠 亟仂仍亢亠仆 仗仂亟亟亠亢亳于舒  亳




12
仂仂从仂仍 B (亳仄亠)
       ABS_MT_SLOT 0
       ABS_MT_TRACKING_ID 45
       ABS_MT_POSITION_X x[0]
       ABS_MT_POSITION_Y y[0]   丐丼弌
       ABS_MT_SLOT 1
       ABS_MT_TRACKING_ID 46    45        46
       ABS_MT_POSITION_X x[1]
       ABS_MT_POSITION_Y y[1]
       SYN_REPORT




       ABS_MT_SLOT 0
       ABS_MT_POSITION_X x[0]
       SYN_REPORT               丐丼弌
                                     45   46




13
仂亟亟亠亢从舒 于 userland. XORG
       
           XORG  仗亠于亶 亠仍亳亰 2004 亞仂亟
           仗亳 仂仄 X-亠于亠 亠于亠  1984 亞仂亟舒
       
           XORG 仂于亠舒亠 仆亠 仂仍从仂 亰舒 亞舒亳从, 仆仂 亳 亰舒
           亠亟于舒 于于仂亟舒
       
           亠 弍仍 亞仂仂于 从 舒 亠于仂仍ム亳亳 亠亠亟亳仆 仆仍亠于
       
           MPX  舒亞 仆舒于亠 仄仍亳舒
       
           仍亳 仂亰亟舒仆 workaround 亟仂 仆舒亳于仆仂亶 仗仂亟亟亠亢从亳
             XORG multi-touch
            亠仍亳亰 XServer 1.12 (亳ミ術 2012) 仂亟亠亢亳
               XINPUT 2.2 亳 仗仂仍仆 仗仂亟亟亠亢从 multi-touch


14
仂亟亟亠亢从舒 于 userland. MTEV
       
           NOKIA 仗亳 仂亰亟舒仆亳亳 MeeGo 仆亢亠仆 弍仍 仄仍亳舒
             于 Qt
       
           MeeGo  Linux c Qt 于 从舒亠于亠 于亠仆亠亞仂 仍仂 亟仍
             舒亰舒弍仂从亳 
       
           仍 仆舒仗亳舒仆 亟舒亶于亠 MTEV 亟仍 XServer
       
           仗仂仍亰亠 MPX
       
           Qt c 仗舒亠仄 仗仂仆亳仄舒亠 仗仂仂从仂仍 亳 仗亠仂弍舒亰亠 于
             仂仂于亠于ム亳亠 从仍舒
       
           MTEV  仂 workaround, 仗仂从舒 于亠 亢亟舒仍亳 native
             support



15
仂亟亟亠亢从舒 于 userland. XINPUT2.2
       
           XServer 1.12 亟舒亠 仗仂仍仆 仗仂亟亟亠亢从
       
           亠 于亠 亠亶仄于仂从亳 亞仂仂于:
              
                Qt 仆舒舒仍舒 于仂仂弍亠 仂从舒亰于舒仍 于 仗仂仍亰
                 Wayland
              
                GTK+ 3.4 仂弍亠舒亠 仗仂亟亠亢从
       
           Fedora 17 亟仂仍亢仆舒 舒 仗亠于仄 亟亳亳弍亳于仂仄 
             仗仂仍仆仂亶 仗仂亟亟亠亢从仂亶
              
                Name: Peter Hutterer
              
                Email: <peter.hutterer@redhat.com>

       
           弍亠舒亠 舒仄亶 仗仂亞亠亳于仆亶 仄仍亳舒

16
仂亟亟亠亢从舒 于 userland. 亳弍仍亳仂亠从亳

       
           Qt 仗仂亟亟亠亢亳于舒亠 仄仍亳舒 亳 亢亠
       
           仍舒 亢亠仂于 仗仍仂仂 舒弍仂舒ム (4.7)
       
           亠从仂仄亠仆亟亠 亳仗仂仍亰仂于舒 QML




17
亳仄亠. Gentoo + MTEV + QML




18
舒亰于亳亳亠 亳亟亠亶 于于仂亟舒




19
舒亰于亳亳亠 亳亟亠亶 于于仂亟舒

       
           亠      (于仂从舒      仍仂亢仆仂
            舒仗仂亰仆舒于舒亳)
       
           仗仂仍亰仂于舒仆亳亠 亟舒亳从仂于
       
           仗仂仍亰仂于舒仆亳亠 从舒仄亠




20
弌乘?




21

More Related Content

Linux Multi-Touch intro

  • 1. Multi-touch 于于仂亟 于 弌 Linux 仍亟亳仆 .丐. ralyautdin@dev.rtsoft.ru 1
  • 2. 仍舒仆 Multitouch / Gesture support 亠舒仍亳亰舒亳 multitouch 于于仂亟舒 于 Linux 舒亰于亳亳亠 亳亟亠亶 于于仂亟舒 2
  • 3. Multitouch / Gesture support (1) Nokia N9 (MeeGo) 3
  • 4. Multitouch / Gesture support (2) a) Pan gesture b) Swipe gesture c) Pinch gesture 4
  • 5. Multitouch / Gesture support (3) 仗仂仍亰仂于舒仆亳亠 亢亠仂于 于 从舒亠于亠 仗舒仂仍 5
  • 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
  • 11. 仂仂从仂仍 (亳仄亠) ABS_MT_POSITION_X x[0] ABS_MT_POSITION_Y y[0] SYN_MT_REPORT ABS_MT_POSITION_X x[1] 丐丼弌 ABS_MT_POSITION_Y y[1] SYN_MT_REPORT SYN_REPORT ABS_MT_POSITION_X x[1] ABS_MT_POSITION_Y y[1] 丐丼弌 SYN_MT_REPORT SYN_REPORT 11
  • 12. 仂仂从仂仍 B 于仂亟 仗仂仆亳亠 仍仂仂于 亳 仂仍亠亢亳于舒亠仄 从仂仆舒从仂于 舒亶于亠 仂仄仍舒亠 仂仍从仂 仂弍仆仂于仍亠仆亳 仗仂 仂仗亠亟亠仍亠仆仆仂仄 从仂仆舒从 丕仄亠仆舒亠 仗仂仂从 亟舒仆仆 仂 磲舒 仂仆仂仍仍亠 亟仂仍亢亠仆 仗仂亟亟亠亢亳于舒 亳 12
  • 13. 仂仂从仂仍 B (亳仄亠) ABS_MT_SLOT 0 ABS_MT_TRACKING_ID 45 ABS_MT_POSITION_X x[0] ABS_MT_POSITION_Y y[0] 丐丼弌 ABS_MT_SLOT 1 ABS_MT_TRACKING_ID 46 45 46 ABS_MT_POSITION_X x[1] ABS_MT_POSITION_Y y[1] SYN_REPORT ABS_MT_SLOT 0 ABS_MT_POSITION_X x[0] SYN_REPORT 丐丼弌 45 46 13
  • 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
  • 18. 亳仄亠. Gentoo + MTEV + QML 18
  • 20. 舒亰于亳亳亠 亳亟亠亶 于于仂亟舒 亠 (于仂从舒 仍仂亢仆仂 舒仗仂亰仆舒于舒亳) 仗仂仍亰仂于舒仆亳亠 亟舒亳从仂于 仗仂仍亰仂于舒仆亳亠 从舒仄亠 20