[英]Convert from Xlib to xcb
我目前正在将我的一个应用程序从Xlib移植到libxcb,我在查找我在某些时候使用的XInput2扩展上的信息时遇到了一些麻烦。 libxcb中是否有XInput2实现? 如果是,我在哪里可以找到文档。
目前我遇到了这个函数的问题: XIQueryDevice
, XISelectEvents
。 这些主要是我使用的功能。
也许有人可以为我指出文档,或者为我提供一个很小的例子来开始。
你基本上有两个选择:
调用常规的XI*
Xinput2函数,并在事件循环中使用泛型事件轮询它们。 事件循环可能看起来像这样:
xcb_generic_event_t *event;
while ((event = xcb_wait_for_event(connection))) {
xcb_ge_generic_event_t *generic_event = (xcb_ge_generic_event_t*)event;
if (generic_event->response_type == XCB_GE_GENERIC && generic_event->extension == xinput_ext_opcode && generic_event->event_type == XI_RawMotion) {
// Handle motion
continue;
}
}
另请参阅XCB协议扩展API 。
您可以使用xcb_input_*
xcb-xinput扩展函数。 根据官方文件 :
当XCB将其API样式添加到混合中时,它遵循较新的样式并为每个扩展创建了一个“libxcb” - 前缀库 - libxcb-composite,libxcb-render等。因为XCB可以为扩展生成API代码通过扩展协议的XML描述自动创建新扩展API,只需将扩展描述添加到xcb-proto包并重建即可。
看看xinput.h
头文件 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.