首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除非初始化SDL_INIT_GAMECONTROLLER子系统,否则SDL2将不会运行(WINDOWS 10)

除非初始化SDL_INIT_GAMECONTROLLER子系统,否则SDL2将不会运行(WINDOWS 10)
EN

Stack Overflow用户
提问于 2019-02-16 03:06:12
回答 1查看 353关注 0票数 2

我使用的是windows10和sdl2。必须初始化SDL_INIT_GAMECONTROLLER标志,否则将不会开始执行。下面是main中的一些代码(参见gamecontroller init调用的底部注释):

代码语言:javascript
复制
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秒)。那么一切都很好。如果游戏控制器子系统未初始化,窗口将打开并无限期挂起。

我使用的是windows10,如果这有什么不同的话。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-16 04:15:17

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

感谢对这个问题的评论,谢谢你的帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54715649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档