我试图弄清楚为什么调用SDL_GetWindowPixelFormat会返回SDL_PIXELFORMAT_RGB888,即使我正在使用标志" SDL_WINDOW_FULLSCREEN_DESKTOP"创建窗口,而我的桌面使用32位颜色。
也许我误解了这面旗帜的含义。我在Windows 7机器上运行程序,并使用了检查显示颜色深度 控制面板 - >显示 - >调整分辨率 - >高级设置 - >监控 (显示" 50 Hz,真彩色32位"。)
我使用SDL2(版本2.0.6)进行编码。我期待这个调用返回SDL_PIXELFORMAT_RGB8888或其他一些32位格式。澄清这一点,任何帮助表示赞赏。我的代码如下。
#include "SDL2/SDL.h"
#include <stdio.h>
SDL_Window* window;
int main(int argc, char* args[]) {
SDL_Init(SDL_INIT_VIDEO);
window = SDL_CreateWindow("TUTOR",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
0, 0, SDL_WINDOW_FULLSCREEN_DESKTOP);
Uint32 global_pixel_format = SDL_GetWindowPixelFormat(window);
const char* temp = SDL_GetPixelFormatName(global_pixel_format);
printf(" SDL_Window created with pixel format %s\n", temp);
SDL_Quit();
return 0;
}