C++ Linux C+上Gtkmm中的OpenGL模具缓冲区+;
我一直在尝试为一个学校项目生成带有模板缓冲区的反射。我遵循本教程:它描述了如何通过在平面上反射场景并再次绘制来创建反射,然后剪裁反射以去除突出部分来创建反射。C++ Linux C+上Gtkmm中的OpenGL模具缓冲区+;,c++,linux,opengl,gtk,stencil-buffer,C++,Linux,Opengl,Gtk,Stencil Buffer,我一直在尝试为一个学校项目生成带有模板缓冲区的反射。我遵循本教程:它描述了如何通过在平面上反射场景并再次绘制来创建反射,然后剪裁反射以去除突出部分来创建反射。 我遵循了教程,但没有剪辑,反射完整显示。我尝试了以下方法: int i; glGetIntegerv(GL_STENCIL_BITS,&i); std::cout << "Stencil bits is " << i << std::endl; inti; glGetIntegerv(GL_模
我遵循了教程,但没有剪辑,反射完整显示。我尝试了以下方法:
int i;
glGetIntegerv(GL_STENCIL_BITS,&i);
std::cout << "Stencil bits is " << i << std::endl;
inti;
glGetIntegerv(GL_模具位和i);
看了j-p的回答后,我意识到我找错地方了。项目中给了我一些启动代码,所以我忽略了glContext的设置。我需要做的是:
glconfig = Gdk::GL::Config::create(Gdk::GL::MODE_RGB |
Gdk::GL::MODE_DEPTH |
Gdk::GL::MODE_DOUBLE |
Gdk::GL::MODE_STENCIL );
添加了Gdk::GL::MODE_模具标志以在Gtk中启用模具模式。注意,这是非常特定于库的 你能发布你的代码吗?当你初始化你的opengl上下文时,你设置了位平面数。所以如果你能发布你的opengl上下文创建代码,我可以帮你。。。