2015-09-08 139 views
-1

在SDL2当您在运行时拖动边角调整窗口大小时,将触发窗口大小事件,可以这样使用:SDL_SetWindowSize是否触发窗口事件?

SDL_Event e; 
int width, height; 
SDL_PollEvent(&e); 
if(e.type == SDL_WINDOWEVENT && e.window.event == SDL_WINDOWEVENT_RESIZED) 
{ 
    width = e.window.data1; 
    height = e.window.data2; 
} 

如果我手动调整窗口大小是这样的:

SDL_SetWindowSize(window, myWidth, myHeight); 

documentation) 这会触发一个如上所述的窗口事件吗?

+1

应该很容易测试,是吗? –

+0

我会测试它并发布答案。但是这篇文章可能对其他人有用。 – larso

+0

@JoachimPileborg:是的,它应该很容易测试,但要知道它是否在每个平台上都做到这一点,或者只有一些......您对SDL永远不知道。我可以明白为什么OP会对文档/规格说明中的内容感兴趣 –

回答

0

使用SDL_WINDOWEVENT_RESIZED,答案是否定的。但是会触发SDL_WINDOWEVENT_SIZE_CHANGED事件。

1

是的,就像SDL_SetWindowFullscreen()一样。 SDL_SetWindowSize()触发窗口事件。从技术上讲,我认为它只是调整窗口大小,这被视为用户手动调整大小。

+0

我正准备自己发布答案。我使用SDL_WINDOWEVENT_RESIZED和SDL_WINDOWEVENT_SIZE_CHANGED自己测试了这一点。 SetWindowSize未触发SDL_WINDOWEVENT_RESIZED事件,但它确实触发了SDL_WINDOWEVENT_SIZE_CHANGED事件。 – larso

+0

@larso我认为这是检查两者的标准做法。只要你这样做,无论你想达到什么效果都应该起作用。 –

相关问题