使用康普顿的GTK窗口的不透明度问题

使用康普顿的GTK窗口的不透明度问题,gtk,x11,Gtk,X11,我有一个使用EGL和OPENGL ES API在GTK窗口上渲染的程序。 在同一个程序中,我做了4次以制作4个视频的平铺 在后台,我启动了康普顿 现在,当我开始第一个视频,它是透明的(不是按照我的要求)。2、3、4视频效果完美。但是如果我杀死线程渲染第一个视频并重新开始,那么它也可以工作,或者在第一个视频渲染之后,当它是透明的,如果我杀死康普顿,那么第一个视频也可以完美工作 康普顿有点问题,它不允许数据传输到第一个屏幕,或者它使数据和窗口一起透明 我正在使用下面的配置与康普顿 backend =

我有一个使用EGL和OPENGL ES API在GTK窗口上渲染的程序。 在同一个程序中,我做了4次以制作4个视频的平铺

在后台,我启动了康普顿

现在,当我开始第一个视频,它是透明的(不是按照我的要求)。2、3、4视频效果完美。但是如果我杀死线程渲染第一个视频并重新开始,那么它也可以工作,或者在第一个视频渲染之后,当它是透明的,如果我杀死康普顿,那么第一个视频也可以完美工作

康普顿有点问题,它不允许数据传输到第一个屏幕,或者它使数据和窗口一起透明

我正在使用下面的配置与康普顿

backend = "xrender";
paint-on-overlay = true;
unredir-if-possible = false;

我的系统上的窗口管理器是openbox lxde

我已经找到了解决这个问题的方法。张贴在这里,因为它可能会有助于未来的人

简而言之,这个问题之所以发生,是因为我的第一个窗口是全屏的。当X11窗口分辨率与屏幕分辨率匹配时,有一些属性/属性在合成器的影响下是透明的(这里我使用的是康普顿)

如果首先创建大小为0、0、1919、1079的窗口,然后将其调整为0、0、1920、1080,一切正常,则窗口不会变得透明并完美地显示数据


仍然有一个谜,是什么属性使全屏窗口的行为像这样。如果发现这个问题,我会发布。

只是一个小小的补充:我自己在Windows和Linux上都多次遇到过同样的问题。事实证明,没有必要使两个尺寸都小于屏幕尺寸,一个(例如高度)就足够了。此外,为了避免用户意外地看到桌面上的底线,您可以使窗口的扫描线比屏幕高度大一条。