Я использую 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, что смущает нас обоих.