如何使openGL ES2背景透明化

时间:2014-02-12 02:18:14

标签: qt opengl-es-2.0 powervr-sgx

我使用的PowerVR SGX SDK和硬件平台为Ti DM8168芯片了。我linux上运行做出的openGL ES2演示,并发现openGL的演示的背景始终是black.I也编译QT的lib用OpenGL SDK和使用QGLWidget进行Qt演示,但QGLWidget的背景也是黑色。

glClearColor(0.0f,0.0f,0.0f,0.0f); deoes不起作用。

首先打开fb0,画一些东西。

然后打开GL画。这将覆盖整个画面。

在Qt演示中,QGLWidget总是有一个后台覆盖它背后的Widget .Qt界面不会影响openGL显示。

powerVR演示没有谈到这一点。在嵌入式系统上看起来很难。

我想要像这张图片一样,背景是一个Qwidget菜单,方块是QGLWidget中的openGL对象,QGLWidget的背景是透明的。

父亲,QT总是直接撕掉openGL屏幕,所以rending内容覆盖了其他底层小部件显示的帧缓冲区。

enter image description here

1 个答案:

答案 0 :(得分:0)

这并不难,也有可能。 OpenGL(ESx)应用程序总是绘制到(全屏)帧缓冲区(当使用NULL窗口系统和独立的openGLESx应用程序时),或者在Qt窗口中绘制,如果你使用QWS。

为了能够使这个窗口透明,你可以在下面做:

(1)在DM8x的DSS中的一个平面上绘制您需要透明的任何内容

(2)在DSS

中将背景(非透明)框架绘制到下部平面

现在,您可以为每个平面使用全局Alpha设置来管理顶层的可见方式。有关此方法的示例,请参阅以下主题。

http://e2e.ti.com/support/embedded/linux/f/354/t/70597.aspx