Linux在屏幕上绘制,独立于Windows管理器

时间:2013-07-22 06:16:39

标签: c++ c linux opengl x11

这是一个词汇问题,而不是其他任何问题。

简介

我正在使用Point Cloud Library来获取面部跟踪数据。使用这些数据我想跟踪用户在屏幕上的位置。这不是问题。

问题

为了提供用户反馈,我想在屏幕上绘制用户脸部方向的估计为红色圆圈,基本上如here所示(他们只是创建一个小窗口)。我希望这个圈子能够在屏幕上的任何地方出现,我希望它始终可见。我不希望它被另一个活动窗口覆盖。如果它阻碍了与窗口的交互,那我很好。

我的问题是我不知道从哪里开始。

我可以控制光标,但这不太理想,因为我想在我使用面部检测时仍能移动光标。

我想我需要使用OpenGL,但我见过的所有例子都在X窗口内。例如,我在获得提示here后找到here的代码,给我一个很好的永久窗口,但窗口仍然捕获我所有的鼠标点击。 如何使用独立于X-window的OpenGL在屏幕上绘制内容?

我是否完全从错误的方向接近这个?如果是这样,我应该用什么谷歌搜索?

我会接受任何给我一个起点的答案。

平台

我正在使用带有Unity桌面的Ubuntu 12.04。

1 个答案:

答案 0 :(得分:2)

创建一个常规窗口。告诉WM跳过装饰蚂蚁以保持窗口始终在顶部。使用XFixesSetWindowShapeRegion()分别设置圆形输出区域和空输入区域。你需要一个合成窗口管理器 XFixes扩展才能使用它。

您还可以使窗口半透明(这需要一个合成窗口管理器)。

像gtk这样的现代工具包应该有易于使用的API来完成上述所有工作。

任何阶段都不需要OpenGL。