我一直在使用 SDL 开发一个项目,我已经将问题缩小到表面为 NULL。 表面初始化如下:
boardSurface = SDL_CreateRGBSurface(0, 780, 480, NULL, 0, 0, 0, 0);
if (boardSurface == NULL)
{
std::cout << "SURFACE ERROR " << SDL_GetError() << std::endl;
}
它打印“表面错误未知像素格式”。 我假设它指的是 SDL_CreateRGBSurface 函数中的最后四个参数,但我不知道是什么原因造成的。谷歌一直……没有帮助。所以我转向你。
最佳答案
第四个参数depth
不能为NULL。尝试将其更改为 32。
函数声明为:
SDL_Surface* SDL_CreateRGBSurface(Uint32 flags,
int width,
int height,
int depth,
Uint32 Rmask,
Uint32 Gmask,
Uint32 Bmask,
Uint32 Amask)
请参阅 SDL 2.0 文档:https://wiki.libsdl.org/SDL_CreateRGBSurface
关于c++ - 未知像素格式错误 SDL2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21668142/