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 Профессиональная.

2

Решение

Я пошагово отлаживаю и нашел причину в 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);
}
}

Таким образом, проблема здесь «if (ShouldMinimizeOnFocusLoss (window))».

Чтобы решить эту проблему, я добавляю следующий код перед созданием окна:

SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "0");
6

Другие решения


По вопросам рекламы [email protected]