[英]SFML flickering renderwindow?
我希望有人可以帮助我,我使用的是SFML 2.1,当我绘制renderWindow时,它一直闪烁,现在我知道SFML使用了两个缓冲区,所以我确定一个缓冲区都不会被绘制,但是我可以。不明白为什么。
这是我的循环
while(!quit)
{
rs.Canvas.pollEvent(gameEvent);
colour += 1;
rs.Update(colour);
if(gameEvent.type == sf::Event::Closed)
quit = true;
rs.Canvas.clear( sf::Color(colour,0,0) );
rs.Canvas.draw( sprite );
rs.Canvas.display();
if(colour >= 300)
quit = true;
}
rs.Canvas有这些设置
Canvas.setVerticalSyncEnabled(true);
Canvas.setFramerateLimit(60);
谁能看到我的renderWindow为什么会闪烁?
在SFML 2.0教程的“控制帧速率”部分下:
切勿同时使用setVerticalSyncEnabled和setFramerateLimit! 它们会严重混合并使情况变得更糟。
http://www.sfml-dev.org/tutorials/2.0/window-window.php#controlling-the-framerate
在您的帖子评论中,您声明您在窗口中两次调用clear。 这将有效地将您的窗口当作是单个缓冲的窗口。 我知道这种效果可能会造成屏幕撕裂,但最终我并没有得到明显的闪烁效果。 为确保确定,请确保取消呼叫以设置帧速率或使用垂直同步。
基本上我是在打电话
rs.Canvas.clear
两次。 我删除了第二个电话,然后一切正常
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.