操作系统Ubuntu; IDE代码块
我用“加载”功能编写了自己的纹理管理器类
bool TextureManager::load(std::string fileName, std::string id, SDL_Renderer* pRenderer)
{
SDL_Surface* pTempSurface = IMG_Load(fileName.c_str());
if(pTempSurface == NULL) {
printf("IMAGE LOAD ERROR: %s \n", IMG_GetError());
return false;
}
SDL_Texture* pTexture = SDL_CreateTextureFromSurface(pRenderer, pTempSurface);
SDL_FreeSurface(pTempSurface);
// everything went ok, add the texture to our list
if(pTexture != 0) {
m_textureMap[id] = pTexture;
return true;
}
// reaching here means something went wrong
return false;
}
并写入“ IMAGE LOAD ERROR:不支持的图像格式”
但我包括了所有SDL_image要求:
#include <png.h>
#include <zlib.h>
没有此纹理加载器,IMG_load()即可正常工作。
那是什么?我该如何修理?
最佳答案
您不需要包括这些标头,只需包含SDL_image
你初始化了吗?例如
/*! initialize PNG support */
IMG_Init(IMG_INIT_PNG);
关于c++ - IMG_Load麻烦(不支持的图像格式),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23154980/