除非启动SDL_INIT_GAMECONTROLLER子系统,否则SDL2将不会运行(WINDOWS 10)

问题描述 投票:2回答:1

我正在使用Windows 10和sdl2。必须启动SDL_INIT_GAMECONTROLLER标志或不启动执行。这是main的一些代码(参见gamecontroller init调用的底部注释):

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);

如果游戏控制器子系统已启动,则窗口打开并挂起,直到完成游戏控制器初始化调用(2-3秒)。一切正常。如果未启动游戏控制器子系统,则窗口将打开并无限期挂起。

我正在使用Windows 10,如果这有任何区别。

我的合作伙伴在Windows 10上使用相同的代码没有这个问题,这让我们俩都感到困惑。

c sdl sdl-2
1个回答
2
投票

从SDL 2.0.9到2.0.8为我解决了这个问题。

感谢有关帮助问题的评论。

© www.soinside.com 2019 - 2024. All rights reserved.