我有一个SFML RenderWindow,它以30的帧速率运行,但是当我将鼠标移到窗口上时,它明显减慢到一个不可接受的帧速率(3 FPS或更慢)。当我停止移动鼠标时,帧速率恢复到正常速度。奇怪的是我的代码不会监听鼠标事件。有没有人知道如何解决这个问题?
我的代码:
int Window::run()
{
while(window->isOpen())
{
sf::Event event;
while(window->pollEvent(event))
onEvent(event);
loop();
window->clear(bgcolor);
for(int i=0; i<panels.size(); i++)
panels[i]->draw(window);
window->display();
}
return 0;
}
void Window::onEvent(sf::Event event)
{
if(event.type == sf::Event::Closed)
window->close();
else if(event.type == sf::Event::Resized)
{
for(int i=0; i<panels.size(); i++)
panels[i]->repaint();
}
}