c++ - 未知像素格式错误 SDL2

标签 c++ sdl-2 pixelformat

我一直在使用 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/

相关文章:

c++ - 为什么不禁止这个用户定义的转换序列?

无法通过双击运行 SDL2 可执行文件

c++ - 对 WinMain@16 C++、SDL-2 的 undefined reference

c# - 图像大小调整导致文件大小比原始 C# 大得多

c++ - cv::Mat 检测 PixelFormat

c++ - 是否有可能在 C++ 中捕获硬件错误?

c++ - 我必须 munmap() 一个 mmap() 文件吗?

c++ - 对象处理

c++ - 检查使用 SDL2 播放的音乐

c++ - 设置像素格式并在 SDL 中从表面创建纹理