更改SDL背景

4
有没有方法可以将空的SDL窗口颜色更改为白色而不是黑色? 我不想更改任何默认设置。 我只是想为我正在编写的特定程序进行更改。 如果必须使用图像文件,我将使用它,但我不希望使用。
我不知道这是否重要,但我正在使用SDL_SetVideoMode()
我的代码非常基本:
if (SDL_Init(SDL_INIT_EVERYTHING) == -1)
    return 1;

SDL_Surface * screen = NULL;

screen = SDL_SetVideoMode(width, height, bpp, SDL_SWSURFACE);

SDL_FillRect(screen, NULL, 0xFFFFFF);
SDL_Delay(3000);

你是使用OpenGL还是纯SDL? - Bart
纯粹的SDL。我刚开始重新学习SDL。 - calccrypto
4个回答

5

您需要调用SDL_Flip函数才能显示出您所做的更改。


2
对于SDL 2.0,您需要使用SDL_UpdateWindowSurface(Window);,因为SDL_Flip()已不再存在。 - Qix - MONICA WAS MISTREATED

4
使用surf = SDL_SetVideoMode(...)获取你的窗口表面,然后进行操作。
SDL_FillRect(surf, NULL, 0xFFFFFF); // 0xFFFFFF = white in RGB, NULL = full window
SDL_Flip(surf);

@calccrypto 那你能给我们展示一些代码吗?最好是一个可以编译的最小例子。 - Bart

3
你可以使用 SDL_FillRect 来使用你想要的颜色填充屏幕/表面。

3

在使用SDL_FillRect之后,您需要调用SDL_UpdateRect。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接