SDL_image不认png格式的解决办法
我想利用SDL来生成OpenGL的贴图,但是总是出现unsupported image format的错误信息。
我的程序是这样的:
SDL_Surface *surface=IMG_Load("Font.png");
SDL_LockSurface(surface);
glEnable(GL_TEXTURE_2D);
glGenTextures(1,&resourceID);
glBindTexture(GL_TEXTURE_2D,resourceID);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, surface->w, surface->h, 0, GL_RGBA, GL_UNSIGNED_BYTE, surface->pixels);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glDisable(GL_TEXTURE_2D);
SDL_UnlockSurface(surface);
SDL_FreeSurface(surface);
程序是没问题的,但是就是出错。我在网上看到SDL_image需要libpng和zlib的支持,我添加了这些dll文件之后,问题依旧。我突然想起来当时编译SDL_image并没有要这些支持的文件,而且编译成功了。我又重新打开SDL_image,重新编译,依然通过,而且根本不需要libpng。奇怪!后来我从官方网站上下载了已经编译的二进制替换了我自己编译的dll,问题就解决了。看来编译SDL_image确实是应该有libpng支持的,但是不知道是不是默认的情况下png的功能被禁用了,因而在没有libpng的时候编译也通过了。但是还是不知道应该如何设置。
1 comment:
感觉应该是编译的时候那个选项没有打开。
这个验证码也太长了吧?
Post a Comment