SDL2使用32位颜色从本机桌面报告24位像素格式

时间:2018-06-14 01:25:55

标签: sdl-2

我试图弄清楚为什么调用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;
}

0 个答案:

没有答案