首先,对于糟糕的问题标题感到抱歉,我不确切知道要放什么!
所以我有一个从SFML Window上下文运行的OpenGL应用程序。
我之前发过一个关于性能不佳的问题,但这个问题现在似乎已经解决了。
正如你在我上传的图像上看到的那样,有些奇怪的事情正在发生。我真的不知道如何描述它,但看起来窗口的右半边不应该在那里!
任何有关此问题的想法?
这是我的代码:
sf::ContextSettings settings;
settings.depthBits = 32;
settings.stencilBits = 8;
settings.antialiasingLevel=4;
settings.majorVersion = 3;
settings.minorVersion = 0;
sf::Window window(sf::VideoMode(800, 600), "insert title", sf::Style::Default, settings);
window.setVerticalSyncEnabled(true);
bool running = true;
while(running)
{
sf::Event e;
while(window.pollEvent(e))
{
if(e.type == sf::Event::Closed)
{
running = false;
}
if(e.type == sf::Event::Resized)
{
glViewport(0, 0, e.size.width, e.size.height);
gluLookAt(0,0,-1, 0,0,0, 0,1,0);;
}
}
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
glutSolidSphere(1, 12, 12);
window.display();
}
答案 0 :(得分:0)
原来这是由复制和粘贴代码引起的。
在显示的代码之上,我有一行:
sf::ContextSettings settings;
settings.depthBits = 24;
settings.stencilBits = 0;
settings.antialiasingLevel = 0;
settings.majorversion = 3;
settings.minorversion = 2;
次要版本不正确。删除行的settings.majorversion = 3;'和'settings.minorversion = 2;'解决了这个问题!
作为一项实验,我将专业修改为4.这导致程序崩溃。