2015-09-08 94 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我認爲這是檢查兩者的標準做法。只要你這樣做,無論你想達到什麼效果都應該起作用。 –

相關問題