두 개의 마우 즈를 SDL 2를 통해으로 처리 할 수 있습니까?SDL2로 두 대 이상의 마우스를 추적 할 수 있습니까?
SDL_MOUSEBUTTONDOWN
-event에서 어떤 마우스를 사용하든 event.button.which
은 0입니다. (USB를 통해 OpenSuse maschine에 두 개의 마우스가 연결되어 있습니다.)
그렇다면 어떻게 할 수 있습니까?
두 개의 마우 즈를 SDL 2를 통해으로 처리 할 수 있습니까?SDL2로 두 대 이상의 마우스를 추적 할 수 있습니까?
SDL_MOUSEBUTTONDOWN
-event에서 어떤 마우스를 사용하든 event.button.which
은 0입니다. (USB를 통해 OpenSuse maschine에 두 개의 마우스가 연결되어 있습니다.)
그렇다면 어떻게 할 수 있습니까?
The SDL wiki는 말한다 :
이 만 데스크톱 GUI의 개념으로 "마우스"를 설명 있습니다. 일반적으로 시스템 커서는 하나이며, OS는 하드웨어 정보를 숨 깁니다. 10 마리의 마우스를 연결하면 모든 10 명이 하나의 커서를 움직입니다. 많은 응용 프로그램과 게임에서 이것이 완벽합니다.이 API는 탄생 이후 수백 개의 SDL 프로그램을 제공했습니다.
적어도 평범한 SDL을 사용하면 운이 좋지 않은 것처럼 보입니다. 리눅스를 사용하고 있기 때문에 Xorg를 사용하고 있기 때문에 xinput이 다중 입력을 처리하는 방법을 살펴볼 수 있습니다. source code for testing XI2 events이 특히 유용 할 수 있습니다.
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB-PS/2 Optical Mouse id=11 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=14 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=16 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated Camera id=10 [slave keyboard (3)]
↳ HID 046a:0011 id=12 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
내가 다음 (예 : 내 USB 마우스) 하나의 장치에 대한 이벤트를 얻기 위해 test-xi2
명령을 사용할 수 있습니다 같은 : 예를 들어
, 내 컴퓨터에 xinput
는 장치의 전체 무리를 보여줍니다
$ xinput test-xi2 11
...
EVENT type 17 (RawMotion)
device: 11 (11)
detail: 0
valuators:
flags:
0: -5.25 (-3.00)
1: 12.75 (8.00)
...
이렇게하면 내 마우스로 인한 포인터 이동 만 출력되지만 예를 들어 발생하는 포인터 움직임은 출력되지 않습니다. 트랙 패드로. xinput이 옵션 인 경우, source code은 올바른 방법으로 자신의 메커니즘을 구현할 수 있습니다.
'event.which'를 의미합니까? event.button은 객체가 아닌 uint8 인 것으로 보입니다. – jhbh
[SDL 위키] (http://wiki.libsdl.org/CategoryMouse)는 다음과 같이 말합니다. _ 여기에는 "마우스"에 대해 데스크탑 GUI 개념 만 설명합니다. 일반적으로 시스템 커서는 하나이며, OS는 하드웨어 정보를 숨 깁니다. ** 10 개의 마우스를 연결하면 모든 커서가 하나의 커서를 움직입니다. ** 많은 응용 프로그램과 게임에서이 API는 완벽하며이 API는 출생 이후 수백 개의 SDL 프로그램을 지원해 왔습니다 ._ 운이 좋지 않은 것처럼 보입니다. . – mindriot
mindriot 고맙습니다. 원하는 경우 답변으로 게시 할 수 있습니다. – user1511417