後可以恢復時SDL窗口不能最小化
SDL_RestoreWindow(gameWindow);
被稱爲最小化窗口上出現問題。該窗口不會重新出現。
我製作了一個虛擬程序來模擬我的主程序正在調用的SDL調用,然後問題重現。這裏是代碼:
#include <SDL.h>
int main(int argn, char **argv)
{
// The windows
SDL_Window *gameWindow;
// Initialise
SDL_Init(SDL_INIT_EVERYTHING);
// Create window
gameWindow = SDL_CreateWindow(
"Game Window",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
640,
480,
SDL_WINDOW_OPENGL
);
// Minimise/ hide or whatever?
SDL_MinimizeWindow(gameWindow);
// Wait
SDL_Delay(1000);
// Attempt to bring back the window
SDL_RestoreWindow(gameWindow);
// program would run here
SDL_Delay(1000);
// quit out
SDL_DestroyWindow(gameWindow);
// Clean up
SDL_Quit();
return 0;
}
任何想法,爲什麼這個gameWindow不重新出現? SDL_Restore不是用來恢復最小化的窗口嗎?
而且FYI這是在Ubuntu 13.10上運行,並用gcc 4.8.1和Gnome的metacity 2.34.13
做函數返回什麼值? – this
SDL_RestoreWindow和其他人根據https://wiki.libsdl.org/SDL_RestoreWindow返回void – foips
似乎無法重現此(不同的環境,但不過)。在你的測試案例中,你是否會在最小化之前彈出一個窗口? SDL_CreateWindow是否成功返回?你有沒有嘗試沒有OpenGL(嘗試標誌SDL_WINDOW_SHOWN)? – ysalmi