gpt4 book ai didi

c++ - 我的 SDL2 应用仅在第一次键盘输入后出现严重延迟

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:06:51 27 4
gpt4 key购买 nike

在我所有的 C++ SDL2 程序中,第一次键盘输入后会有严重的延迟。在第一次输入之后,其他一切似乎都运行良好。

它甚至发生在最简单的程序中。

我做错了什么,或者这是一个错误?

如果相关的话,我的操作系统是 macOS。

下面是一些有问题的代码:

#include <SDL2/SDL.h>
#include <iostream>
#include <stdexcept>

int main(int argc, char *argv[])
{
if(SDL_Init(SDL_INIT_VIDEO) != 0)
{
throw std::runtime_error("SDL failed to initialize.\n");
}

SDL_Window *window = SDL_CreateWindow("App", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, NULL);

bool done = false;

unsigned start_time = 0;
unsigned tick_time = 0;

while(!done)
{
SDL_Event event;

while(SDL_PollEvent(&event))
{
if(event.type == SDL_QUIT)
{
done = true;
}
}

start_time = tick_time;

tick_time = SDL_GetTicks();

const unsigned delta_time = tick_time - start_time;

if(delta_time != 0)
{
if((1000 / delta_time) < 30)
{
std::cout << 1000 / delta_time << '\n';
}
}
}

SDL_DestroyWindow(window);

SDL_Quit();

return 0;
}

最佳答案

我认为您应该使用 SDL_GetTicks() 设置 start_time 而不是在进入主循环之前将其设置为零。 SDL_GetTicks() 返回自 SDL_Init() 以来的时间,此时它可能不是零。

关于c++ - 我的 SDL2 应用仅在第一次键盘输入后出现严重延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48550177/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com