2014-11-06 77 views
1

我試圖在兩個顯示器上創建兩個窗口。但是我遇到了一個問題:第二個窗口以全屏模式顯示,但第一個窗口已最小化,我需要在任務欄上單擊它以展開至全屏。SDL2:兩個顯示器,兩個窗口和全屏模式

我創建循環窗戶代碼:

windows_data.window = SDL_CreateWindow("Title", SDL_WINDOWPOS_CENTERED_DISPLAY(i), 
      SDL_WINDOWPOS_CENTERED_DISPLAY(i), width, height, SDL_WINDOW_FULLSCREEN_DESKTOP | SDL_WINDOW_SHOWN); 

添加標誌SDL_WINDOW_MAXIMIZED不能解決問題。

我的系統是Windows 8.1 Proffesional。

回答

4

我調試一步一步地,發現SDL_video.c :: SDL_OnWindowFocusLost(SDL_Window *窗口)

SDL_OnWindowFocusLost(SDL_Window * window) 
{ 
    if (window->gamma && _this->SetWindowGammaRamp) { 
     _this->SetWindowGammaRamp(_this, window, window->saved_gamma); 
    } 

    SDL_UpdateWindowGrab(window); 

    if (ShouldMinimizeOnFocusLoss(window)) { 
     SDL_MinimizeWindow(window); 
    } 
} 

所以,問題是這裏的原因, 「如果(ShouldMinimizeOnFocusLoss(窗口))」。

SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "0"); 

爲了解決這個問題,我在創建窗口之前添加以下代碼