使用帧缓冲的两个应用程序

Posted

技术标签:

【中文标题】使用帧缓冲的两个应用程序【英文标题】:Two applications using framebuffer 【发布时间】:2012-12-20 17:10:14 【问题描述】:

我正在为嵌入式硬件编写一组 Linux 帧缓冲应用程序。主应用程序在 /etc/inittab 的 tty1 上运行(现在它只是一个触摸屏测试)并且应该永久运行。当按下电源按钮时,第二个应用程序从 acpid 执行,它应该询问用户是否真的要关闭设备,并从触摸屏读取用户答案。我想要的是第二个应用程序在运行时会接管帧缓冲区,然后释放它并恢复屏幕状态,这样主应用程序就可以继续运行而无需重新启动。

这种情况是否可能与 2 个不同的应用程序一起使用,它们应该如何交互?现在,第二个应用程序在主应用程序运行时无法绘制任何内容。

我知道我可以杀死并重新启动主应用程序,或者将关机通知移至主应用程序并让 acpid 向其发送信号,但这些解决方案似乎不是最佳的。

【问题讨论】:

【参考方案1】:

一种解决方案当然是拥有三个应用程序,一个执行实际的帧缓冲区交互,另外两个只是发送消息(以某种形式,例如通过管道、套接字或类似的形式)。这就是“窗口管理器”和类似的通常工作方式(但当然要复杂得多)

【讨论】:

这是一个不错的方法,但是需要开发一些交换协议,而且这样的协议可能会在一段时间后变得相当复杂。

以上是关于使用帧缓冲的两个应用程序的主要内容,如果未能解决你的问题,请参考以下文章

获取最大数量的帧缓冲区颜色附件?

帧缓存的详细介绍

如何使用 QOpenGLFramebufferObject 对两个透明帧缓冲区对象进行 blit?

如何使用 linux 帧缓冲区旋转 Qt5 应用程序?

延迟渲染:在默认帧缓冲区中使用来自 Gbuffer 的深度缓冲区

将opengl主帧缓冲区复制到fbo