c++ - SFML RenderWindow 需要很长时间才能打开一个窗口
问题描述
我知道这本质上是重复的,但是从来没有回答过。我想提一下,我已经按照教程将 SFML 与 Visual Studio 一起使用,并且我正在使用 64 位 SFML 运行一个 64 位项目。该窗口会立即加载几次,现在在新的构建/调试中始终需要 40 秒才能打开。我也关闭了调试符号的下载。我的图形驱动程序是最新的,我的 HDD 很好。这是代码:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");//This one
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
一切都以正常速度运行,除了 RenderWindow,它每次都需要 40 秒。有谁知道我该如何解决这个问题?我已经有这个问题几个星期了。
e: 会不会是我的 CPU?这不是最好的,但我仍然可以运行大多数游戏,因为我有一个 1050ti。我目前的 CPU 是 i5-2500k,尽管我相信我在 A10-5800k 上遇到了同样的问题。
解决方案
编辑:在您采用以下解决方案之前,请尝试更新您的键盘固件!您很可能使用的是 Corsair 键盘,因此请下载 Corsair 的iCue并更新您的键盘驱动程序。这很可能会解决这些问题。如果它不起作用,请尝试以下操作:
由于 OP 没有进一步回复,我尝试自己寻找解决方法,因为这个问题在 2020 年仍然存在。这种解决方法需要您自己编译库。所以下载源代码并更改以下内容:
- 在
WindowImpl.cpp
中,导航到函数WindowImp::WindowImp
并注释掉整个函数体。 - 在
WindowImpl.cpp
中,导航到WindowImp::popEvent
并注释掉调用processJoystickEvents
只要您不使用 SFML 的操纵杆部分,这应该可以正常工作。
推荐阅读
- android - 支持 WebP 图像的最低 Android 操作系统版本
- vuejs2 - 我的 Twig 文件中的 Vue 模态组件的转换不起作用
- python - sklearn中make_scorer中的自定义函数
- jira - JIRA Rest API 和 & 符号
- java - 当自定义事务管理器无法连接时,Spring Boot 应用程序不会快速失败
- c - 使用带参数 c 的 exec
- javascript - 比较两个对象数组并根据一个对象数组排序并在不匹配时推送
- cluster-computing - JFrog Artifactory HA 集群配置
- excel - 使用变量来引用类模块 VBA
- python - 有没有更快的方法来查找列表中的重复模式?