问题标签 [xcb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
163 浏览

c - 'void (*return_socket)(void *closure);' 是什么意思 意思是?

我正在浏览 XCB 资源,发现了这个奇怪的结构成员:

这意味着什么?写这个的另一种方式是什么?

0 投票
1 回答
3298 浏览

java - _XReply() 使用 _XIOError() 终止应用程序

我们正在开发一些复杂的应用程序,它由 linux 二进制文件与我们定制的 .jar 文件中的 java jni 调用(来自在 linux 二进制文件中创建的 JVM)集成。所有的 gui 工作都是由 java 部分实现和完成的。每次必须更改某些 gui 属性或必须重新绘制 gui 时,都是通过 jni 调用 JVM 来完成的。

以 JVM/java 可以处理的速度重新绘制(或刷新)完整的 display/gui。它以迭代和频繁的方式完成,每秒数百或数千次迭代。

在某个确切的时间之后,应用程序被终止exit(1),我使用 gdb 来调用它_XIOError()。这种终止可以在或多或少精确的时间段之后重复,例如在 x86 双核 2.5GHz 上大约 15 小时之后。如果我使用一些速度较慢的计算机,它会持续更长时间,就像它与 cpu/gpu 速度成正比一样。一些结论是 xorg 的某些部分用完了某些资源或类似的东西。

这是我的回溯:

exit()在 liboverrides.so 中进行了自己的调用,并将其与 LD​​_PRELOAD 一起使用,在/SIGABRTexit()的帮助下捕获 gdb 中的调用。abort()在对 libX11 和 libxcb 进行了一些调试后,我注意到_XReply()得到了 NULL 回复(来自 的响应xcb_wait_for_reply()),导致调用_XIOError()and exit(1)。更深入地研究 libxcb in xcb_wait_for_reply()function,我注意到它可以返回 NULL 回复的原因之一是它检测到断开或关闭的套接字连接,这可能是我的情况。

出于测试目的,如果我更改 xcb_io.c 并忽略_XIOError(),应用程序将不再工作。如果我在里面重复请求_XReply(),它每次都会失败,即每个都得到 NULL 响应xcb_wait_for_reply()

所以,我的问题是为什么这种不受控制的应用程序终止与 exit(1) from _XReply()-> XIOError()->exit(1)发生,或者我怎样才能找出发生的原因和发生了什么,所以我可以修复它或做一些解决方法。

为了重复这个问题,正如我上面所写的,我必须等待大约 15 小时,但目前我的调试时间非常短,并且找不到问题/终止的原因。我们还尝试重新组织处理 gui/显示刷新的 java 部分,但问题没有解决。

一些软件事实:
- java jre 1.8.0_20,即使使用 java 7 也会重复这个问题
- libX11.so 1.5.0
- libxcb.so 1.8.1
- debian wheezy
- kernel 3.2.0

0 投票
1 回答
3188 浏览

linux - 如何使用 XCB 或 X11 显示全彩图像?

我可以将 PNG 图像加载到内存中并使用 libpng 从中获取原始像素数据,还可以使用 XCB 或普通 X11 创建具有空白背景的窗口。

接下来我应该怎么做才能在窗口中显示图像?

0 投票
1 回答
141 浏览

xlib - 使用XCB时,频繁打开和关闭DISPLAY可以吗?

由于 XIM 和 XFT 的使用,我有时必须在基于 XCB 的代码中使用 XDisplay。

我的问题,我应该在程序开始时打开显示,然后在结束时关闭它。或者每次我需要使用它时打开和关闭?

0 投票
2 回答
1846 浏览

xcb - 如何使用 XCB 获取窗口的屏幕?

在 Xlib 中,XWindowAttributes 结构包含一个指向窗口所在屏幕的指针。但是在XCB对应的结构体(xcb_get_window_attributes_reply_t)中,并没有这样的成员。

我该怎么办?

0 投票
1 回答
737 浏览

c - 随机 libx11 挂起

调用libX11函数时,我的应用程序随机挂起。例如:调用XGetClassHintXGetWindowProperty或者XListInputDevices有时不返回。

例如,这里是调用时的回溯XGetClassHint

我已经跟踪了我的应用程序和服务器之间的 X11 消息,并且我收到了对 GetProperty 请求的回复WM_CLASS

我的应用程序是单线程的,我可以看到仍在从服务器接收和处理 X11 消息,但它看起来永远不会返回,XGetClassHint因为由于某种原因没有处理 GetProperty 回复。

我使用的操作系统是标准的debian 挤压,相关的包是:

知道可能是什么原因造成的吗?

谢谢!

更新

经过更多调试后,似乎在程序处理 SIGCHLD 时发生了此问题。在信号处理程序中,我只是写入管道以通知主线程,但没有对 libX11 进行任何操作。但最终删除信号处理程序使问题消失了。是否有意义?或者我可以期待这个问题在未来再次出现?

再次感谢

0 投票
1 回答
267 浏览

qt - 构建 qt5 xcb 插件时出现 QDBusConnection 错误

我已经在这里搜索了一段时间,但我想我可能错过了答案,在这种情况下,请接受我的道歉。

【前提条件】

我从源代码构建了 Qt 5.3.1,但错过了 ./configure 脚本没有包含 xcb 插件的事实。当然,我现在非常需要它来构建一个 qt5 项目。

[问题]

我发现可以单独构建插件(我不想重新安装 Qt)。我已经苦苦挣扎了几天,现在我只有一个问题:

bridge_p.h:66:5: 错误:“QDBusConnection”没有命名类型 QDBusConnection dBusConnection() const;

查看制作日志

请提出解决方案,谢谢。

0 投票
2 回答
281 浏览

c - 为什么在不同结构指针之间进行类型转换是可行的?

此代码片段是从XCB 中事件的最后一个教程示例复制而来的:

在第 5 行中,指针xcb_generic_event_t被类型转换为指针xcb_expose_event_t,这是在标准 C 语言中进行此类操作的好方法吗?并请解释它的含义是什么?

0 投票
1 回答
362 浏览

c - 给定 Xauthority 文件,调用 xcb_connect_to_display_with_auth_info() 的正确方法是什么?

当我尝试建立与存储在字符串中的给定显示的 XCB 连接时,例如dpy,我知道我可以通过两种不同的方式来做到这一点:

  1. 只需调用xcb_connect(dpy, NULL),或
  2. 将环境变量设置DISPLAY为 的值dpy并调用xcb_connect(NULL, NULL)

但是,如果我的 X 服务器需要 Xauthority 文件,我只能在设置环境XAUTHORITYXauthority 文件路径然后调用xcb_connect(dpy, NULL).

我想建立这个连接而不必设置环境变量XAUTHORITY。我知道在 XCB API 中有一个函数调用xcb_connect_to_display_with_auth_info()它接收一个xcb_auth_info_t结构,但我完全不知道如何在给定 Xauthority 文件路径的情况下构建这个结构。

我怎么能做到?

0 投票
2 回答
496 浏览

xlib - 有人有 libxpm 的例子吗?

这是最愚蠢的事情,但我已经尝试过,但我无法使用 libxpm。

我找到了一些代码片段,但很少,而且我发现的是我无法编译的非常旧的代码。

到目前为止,我的理解是我需要:

连接到 x windows 服务器(完成) 创建窗口(完成) 使用 libxpm 从数据创建像素图(未完成) 将像素图复制到窗口(未完成)

如果你碰巧有一个小例子,或者知道把我送到哪里,那就太好了。如果你碰巧知道如何使用 xcb 和 libxpm 那就更好了。xcb 似乎使用整数作为它的连接,而 xlib 使用显示结构,我根本没有找到任何处理 xcb 和 libxpm 的示例,并且连接问题对我来说是一个死胡同。

谢谢阅读