2

我正在尝试在 SDL [in C++] 中设置一些东西,我可以在其中绘制一个像素大的矩形。除了我的第二个 SDL_Surface 称为矩形之外,我的代码中的所有内容都可以正常工作。我在初始化它时遇到问题。这是我尝试初始化它的行:

rectangle = SDL_Surface(SDL_DOUBLEBUF | SDL_HWACCEL | 
                        SDL_SRCALPHA  | SDL_HWSURFACE,
                        screen->format, 1, 1, 16, NULL, clip_rect, 1);

感谢您花时间阅读本文以及您可能选择给出的任何答案。

4

1 回答 1

4

我认为您遇到的主要问题是没有SDL_Surface功能。要创建新曲面,请使用SDL_CreateRGBSurface. 请务必在SDL_FreeSurface完成后调用返回的表面,否则会泄漏内存。

此外,我不确定您为什么要为矩形创建表面。绘制纯色矩形的一种更简洁的方法是SDL_FillRect不创建新表面。

于 2009-02-03T21:04:10.417 回答