GtkGLArea 的深度问题

Depth issues with GtkGLArea

我正在开发 Golang GTK3 OpenGL 应用程序,我 运行 遇到了深度缓冲区问题。如果我编译 go-gl 的 cube example, it works fine. However, the same example, modified to replace GLFW with GTK (source),则显示深度伪影。 100% 的 OpenGL 代码是复制和粘贴的,除了我添加调试回调的地方。唯一不同的是 GTK 与 GLFW 和代码组织。

我从来没有对 OpenGL 做过太多,这让我完全难住了。

Video (Imgur)

显然,默认情况下 GtkGLArea 没有深度缓冲区。所以这个问题可以通过以下方式解决:

glarea.SetHasDepthBuffer(true)

或者在 C 中

gtk_gl_area_set_has_depth_buffer(glarea, TRUE);