繁体   English   中英

SFML闪烁的渲染窗口?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM