Sha*_*des 1 c++ sdl image sdl-2 sdl-1.2
我开始在 SDL 2.0 中编程。我希望能够将 .PNG 文件加载到我的程序中,因为 .bmp 文件没有 .png 文件的所有简洁功能。
我有来自http://www.sdltutorials.com/sdl-image的以下代码:
SDL_Surface* loadSurf(char* File) {
SDL_Surface* Surf_Temp = NULL;
SDL_Surface* Surf_Return = NULL;
if((Surf_Temp = IMG_Load(File)) == NULL) {
return NULL;
}
Surf_Return = SDL_DisplayFormatAlpha(Surf_Temp);
SDL_FreeSurface(Surf_Temp);
return Surf_Return;
}
Run Code Online (Sandbox Code Playgroud)
该函数的重点是加载图像,您可以通过执行以下操作来调用它:
SDL_Surface* character = loadSurf("sprite.png");
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,“Surf_Return = SDL_DisplayFormatAlpha(Surf_Temp);”行出现错误。错误是:使用未声明的标识符“SDL_DisplayFormatAlpha”
我认为这是因为代码是为 SDL 1.2 编写的,而我使用的是 SDL 2.0。有没有办法将此功能转换为 SDL 2.0?
如果适用,我正在运行 Mac OSX 10.13.2。
我认为他们从 SDL2 中删除了 SDL_DisplayFormatAlpha(和 SDL_DisplayFormat)
例如,如果您想添加一个 alpha 通道,您希望将SDL_ConvertSurfaceFormat与从 IMG_Load 加载的表面一起使用
// Returns a new surface with an alpha channel added
SDL_Surface *new_s = SDL_ConvertSurfaceFormat(surf, SDL_PIXELFORMAT_RGBA8888, 0);
Run Code Online (Sandbox Code Playgroud)
顺便说一下,该教程看起来很旧,您可能需要查看 SDL_Image 文档。
| 归档时间: |
|
| 查看次数: |
1001 次 |
| 最近记录: |