SDL_VIDEORESIZE не работает - PullRequest
       3

SDL_VIDEORESIZE не работает

1 голос
/ 06 ноября 2010

У меня есть приложение SDL, и я хочу сделать окно с изменяемым размером. Поэтому я поставил правильный флаг в SDL_SetVideoMode () и сделал обработчик событий. Но когда я изменяю размер окна, обработчик не активируется. Я не знаю почему.

Код моего цикла событий:

while (SDL_PollEvent (&event));
{
    if (event.type == SDL_QUIT)
        return 0+1;
    else if (event.type == SDL_VIDEORESIZE)
    {
        board.x = static_cast<int> ( static_cast<float> (event.resize.w - 2 * hMargin) / Field + 0.5f );
        board.y = static_cast<int> ( static_cast<float> (event.resize.h - 2 * vMargin - Face - FaceSpace) / Field + 0.5f );
        return 0;
    }
}

return 0 + 1 - для успешного выхода (main return 0); возвращаемый 0 - для перезапуска приложения (выполнение другого SetVideoMode).

Похоже, что когда я изменяю размер окна, событие не отправляется.

Я использую SDL версии 1.2.14.

EDIT:

Я написал пример программы, и она сработала. Но я еще раз посмотрел на код и ... через некоторое время увидел точку с запятой () -.-

1 Ответ

1 голос
/ 23 июля 2012
  1. Я полагаю, что вы можете просто вызвать SDL_SetVideoMode (), не выходя из SDL для изменения размера
  2. ; через некоторое время, как заметил Диего Севилья
  3. Существует возможность создать экран автоматического изменения размера на случай, если вы не знали

http://www.libsdl.org/cgi/docwiki.cgi/SDL_SetVideoMode говорит все

...