Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C GtkWidget:不推荐使用的“替代方案”;双缓冲;财产?_C_Opengl_Gtk_X11_Gtk3 - Fatal编程技术网

C GtkWidget:不推荐使用的“替代方案”;双缓冲;财产?

C GtkWidget:不推荐使用的“替代方案”;双缓冲;财产?,c,opengl,gtk,x11,gtk3,C,Opengl,Gtk,X11,Gtk3,我从GtkWidget中派生了自己的小部件类型,以便将其用作OpenGL的绘图表面。为了让OpenGL控制底层的X11窗口,我需要禁用小部件的双缓冲——否则整个渲染结果将被GTK的缓冲区交换所覆盖 但是,gtk\u widget\u set\u double\u buffered和的“double buffered”属性在当前版本的gtk+3中因过于依赖平台而被弃用 有没有办法在GDK或X11级别禁用双缓冲?仅仅因为它已被弃用并不意味着您不能使用它。它不能保证在所有情况下都能工作,但这取决于你想

我从
GtkWidget
中派生了自己的小部件类型,以便将其用作OpenGL的绘图表面。为了让OpenGL控制底层的X11窗口,我需要禁用小部件的双缓冲——否则整个渲染结果将被GTK的缓冲区交换所覆盖

但是,
gtk\u widget\u set\u double\u buffered
的“double buffered”
属性在当前版本的gtk+3中因过于依赖平台而被弃用


有没有办法在GDK或X11级别禁用双缓冲?

仅仅因为它已被弃用并不意味着您不能使用它。它不能保证在所有情况下都能工作,但这取决于你想要的情况。您需要支持GTK+的最低确切版本是什么?如果3.16太新,您需要Wayland OpenGL支持吗?那又如何呢?没错,但是通常一个特性会被弃用,因为对于同一个问题有更好的解决方案——而且我希望我的代码能够继续使用GTK+的未来版本。实际上,我正在开发该存储库的一部分。