SDL2 не будет работать, пока не будет запущена подсистема SDL_INIT_GAMECONTROLLER (WINDOWS 10) - PullRequest
0 голосов
/ 15 февраля 2019

Я использую Windows 10 и SDL2.Флаг SDL_INIT_GAMECONTROLLER должен быть инициирован, иначе выполнение не начнется.Вот некоторый код из main (см. Нижний комментарий при вызове инициализации gamecontroller):

SDL_Init(SDL_INIT_VIDEO);
int imgFlags = IMG_INIT_PNG;
if(!( IMG_Init(imgFlags) & imgFlags)) {
  printf( "SDL_image could not initialize! SDL_image Error: %s\n", IMG_GetError() );
  return 0;
}

SDL_ShowCursor(SDL_DISABLE);



SDL_Window* window = NULL;
window = SDL_CreateWindow("Anica", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, W, H,
                            SDL_WINDOW_SHOWN);
SDL_Renderer* renderer = NULL;
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

SDL_InitSubSystem(SDL_INIT_AUDIO);
SDL_InitSubSystem(SDL_INIT_EVENTS);
SDL_InitSubSystem(SDL_INIT_TIMER);
// If this sub system is not initted execution stops. If it is initted
// execution works fine. It takes 2-3 seconds for this call to finish which
// is really slow.
SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER);

Окно открывается и зависает до завершения вызова инициализации gamecontroller (2-3 секунды), если инициируется подсистема gamecontroller.,Тогда все работает нормально.Если подсистема gamecontroller не запущена, окно открывается и зависает на неопределенное время.

Я использую windows 10, если это имеет какое-либо значение.

У моего партнера нет этой проблемы с использованием того же кода в Windows10, что смущает нас обоих.

1 Ответ

0 голосов
/ 15 февраля 2019

Переход с SDL 2.0.9 на 2.0.8 исправил проблему для меня.

Спасибо за комментарии к вопросу о помощи.

...