(源代码和问题行在底部)
我编写了一个简单的程序来将透明PNG加载到SDL2上。然而,它弹出的图像,有一个非常不稳定的背景,不断闪烁。
我怀疑这是我的显卡的问题,但我不知道如何解决这个问题。我认为这是因为在创建 SDL 渲染器时禁用硬件加速后问题就消失了。
// Issue goes away if I change the '0' in this line to SDL_RENDERER_SOFTWARE
SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0);
我的完整源代码可以在https://pastebin.com/XqRxXmyt找到。我的编译命令也可以在 https://pastebin.com/a3YbGnLN 找到(我静态链接我的程序)。如何解决这个透明度问题?
找到解决方案。不知道为什么它解决了问题,但在绘制纹理之前简单地清除屏幕就可以解决所有问题:
while (is_running){
// Game loop stuff
SDL_RenderClear(renderer);
// Draw stuff...
}