首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GtkWidget:替代废弃的“双缓冲”属性?

GtkWidget:替代废弃的“双缓冲”属性?
EN

Stack Overflow用户
提问于 2015-07-22 07:57:13
回答 1查看 1.3K关注 0票数 4

我从GtkWidget派生出自己的小部件类型,以便将其用作OpenGL的绘图面。为了让OpenGL控制底层的X11窗口,我需要禁用小部件的双重缓冲--否则整个呈现结果将由GTK的缓冲区交换来绘制。

但是,gtk_widget_set_double_buffered"double-buffered"属性在当前版本的GTK+3中已经被废弃,因为它们太依赖于平台。

是否有一种方法可以在GDK或X11级别上禁用双重缓冲?

EN

回答 1

Stack Overflow用户

发布于 2021-12-24 08:48:35

这是个很老的问题,但我试试看。

在任何稍微晚一点的上下文中(即GTK+ >= 3.16,现在已经超过6年了),我想最好的解决方案是避免滚动自己的OpenGL小部件,而只使用Gtk.GLAreahttps://docs.gtk.org/gtk3/class.GLArea.html

或者,如果您碰巧被一个古老的GTK+版本所困,可能是在嵌入式设备上,那么除了gtk_widget_set_double_buffered (也请参阅buffered.html)之外,没有太多的选项:这不会设置任何X11/Xorg窗口标志或类似的东西,而只是将GTK+的内部事件处理更改为将抽签调用发送到屏幕外缓冲区,或者直接设置到可见表面。

请注意,这个屏幕外缓冲区与任何涉及X或OpenGL的缓冲区都是完全独立的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31557168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档