在SDL中,以下代码可用于设置表面:
SDL_Surface *screen = SDL_SetVideoMode(800, 600, 8, 0);
现在,在SDL2中,必须使用以下代码:
SDL_Window *window = SDL_CreateWindow("Title", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, 0);
SDL_Surface *surface = SDL_GetWindowSurface(window);
我的问题是SDL_CreateWindow没有提供设置窗口或表面位深度的方法。它似乎默认为32位。我尝试使用SDL_ConvertSurfaceFormat,但surface->format->BitsPerPixel仍保持在32位。
如何在SDL 2中创建8位表面?我意识到我需要一个调色板。