gpt4 book ai didi

c++ - SDL_PeepEvents 不会处理窗口关闭

转载 作者:太空狗 更新时间:2023-10-29 23:07:47 25 4
gpt4 key购买 nike

我正在调用 SDL_PeepEvents( sdlevent, EVENT_BUFFER_SIZE, SDL_GETEVENT, SDL_FIRSTEVENT, SDL_SYSWMEVENT ); 但是在几秒钟的运行时间和对窗口进行处理(调整大小/移动/最小化)之后它不会单击 x 关闭窗口时拾取一个事件。

void Window::pollWindowEvents(  )
{
const int EVENT_BUFFER_SIZE = 16;
SDL_Event sdlevent[ EVENT_BUFFER_SIZE ]; //The SDL event that we will poll to get events.

SDL_PumpEvents( );
int numEvents = SDL_PeepEvents( sdlevent, EVENT_BUFFER_SIZE, SDL_GETEVENT, SDL_FIRSTEVENT, SDL_SYSWMEVENT );

std::cout << numEvents << std::endl;

for ( int i = 0; i < numEvents; ++i )
{
switch ( sdlevent[ i ].type )
{
case SDL_QUIT:
closed = true;
std::cout << sdlevent[ i ].type << std::endl;
break;
default:
std::cout << sdlevent[ i ].type << std::endl;
break;
};
}
}

有人知道我做错了什么吗?

最佳答案

调用 SDL_PeepEvents() 时,我只处理队列中选定范围的事件,其余事件未处理。这导致事件队列因这些未处理的事件而变得饱和,结果阻止了我想要处理的事件的处理。这很容易通过处理事件队列中的所有事件来解决。

关于c++ - SDL_PeepEvents 不会处理窗口关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11602571/

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