我有一个使用文件路径字符串列表初始化的结构。但是,如果我尝试在从这些字符串创建的SDL_Surfaces上调用SDL_DisplayFormat,则应用程序将无法启动。它没有崩溃,也没有像正常情况那样生成stdout.txt或stderr.txt,它只是没有启动。编译器不会给出任何错误或警告。这是我的代码:
struct Object {
std::vector<SDL_Surface*> surfaceVector;
Object(initializer_list<std::string> init) {
for (auto i : init) {
SDL_Surface* loadSurface = SDL_LoadBMP(i.c_str());
surfaceVector.push_back(SDL_DisplayFormat(loadSurface););
SDL_FreeSurface(loadSurface);
}
}
}
如果我没有调用SDL_DisplayFormat,我可以正常访问和blit surfaceVector中的曲面,因此它们似乎正在正确加载。但是,我希望surfaceVector中的曲面采用显示格式。
答案 0 :(得分:0)
如果您使用的是SDL2,请尝试使用SDL_ConvertSurfaceFormat()
代替SDL_DisplayFormat()
。
SDL在SDL_ConvertSurfaceFormat上的维基页面。