在OpenGL + SDL2中无法将Alpha通道设置为0

时间:2016-06-28 18:42:42

标签: c opengl transparency sdl-2

我正在尝试以透明背景将{​​{1}}保存到OpenGL rendered screen图片。但我在第四频道获得的所有PNG值都是。{/ p>

即使在屏幕上绘制任何内容之前,只是清除无效。

我在OpenGL中进行初始化以获得透明背景大致如下:

255

提前致谢。

1 个答案:

答案 0 :(得分:3)

默认情况下,SDL不会明确请求具有Alpha通道的帧缓冲区。你必须打电话

SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 1);

在创建窗口之前确保实际获得alpha缓冲区。请注意,这在概念上要求至少1位alpha。通常,GL实现提供每像素0或8位alpha的像素格式/视觉效果。如果你想确保至少获得8位,你也可以明确地要求。