我的程序在使用一个缓冲区的普通3D中完美运行,它使用SFML窗口管理进行编码。 我想添加四缓冲立体声,因此我将绘图代码更改为以下内容:
glDrawBuffer(GL_BACK_LEFT);
camera->OnMouseMotion(sf::Vector2i(-1,0));
for (auto i = objects->cbegin(); i != objects->cend(); ++i)
(*i)->draw(camera);
glFlush();
glDrawBuffer(GL_BACK_RIGHT);
camera->OnMouseMotion(sf::Vector2i(2,0));
for (auto i = objects->cbegin(); i != objects->cend(); ++i)
(*i)->draw(camera);
glFlush();
camera->OnMouseMotion(sf::Vector2i(-1,0));
请注意,我的相机更换不完全正确,我知道我将不得不更改这些,现在我专注于使用四路缓冲立体声显示图像。我注意到在所有使用这种立体声的程序示例中,他们用这样的东西初始化窗口:
type = GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_STEREO;
glutInitDisplayMode(type);
使用SFML,这样的功能是不可用的,我的问题是: 我可以使用低级openGL函数来实现相同的结果吗?我可以使用另一个窗口管理库与SFML?我应该忘记我的程序的SFML并完全将其更改为另一个吗?
答案 0 :(得分:1)
SFML没有初始化功能,它会自动创建openGL上下文,你可以做两件事: