首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gluBuild2DMipmaps内存泄漏

gluBuild2DMipmaps内存泄漏
EN

Stack Overflow用户
提问于 2012-01-30 01:03:31
回答 1查看 625关注 0票数 1

我有一个将图像/文本加载到游戏中的函数。我使用gluBuild2DMipmaps()从SDL surface.The中制作OpenGL纹理。问题是每次我调用该函数时,即使我加载相同的图像并将其绑定到相同的纹理上,gluBuild2DMipmaps也会分配0.5MB的内存,直到我关闭程序才会释放。

我的函数:

代码语言:javascript
复制
void Load_texture(const char * text, SDL_Color clr, int txtNum, const char* file, int ptsize, bool type){
if(type){
         tmpfont = TTF_OpenFont(file, ptsize); 
         sText = TTF_RenderUTF8_Blended( tmpfont, text, clr );
         TTF_CloseFont(tmpfont);
}
if(!type)sText = IMG_Load(file);
area[txtNum].x = 0;area[txtNum].y = 0;area[txtNum].w = sText->w;area[txtNum].h = sText->h;
glGenTextures(1, &texture[txtNum]);
glBindTexture(GL_TEXTURE_2D, texture[txtNum]);
gluBuild2DMipmaps( GL_TEXTURE_2D, GL_RGBA, sText->w, sText->h, GL_RGBA, GL_UNSIGNED_BYTE, sText->pixels );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR );
glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR_MIPMAP_LINEAR );
SDL_FreeSurface( sText ); 
}

我可以做什么来释放gluBuild2DMipmaps分配的内存,因为现在我的游戏在开始一分钟后使用了几乎1 1GB的内存。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-30 01:15:55

您确定要释放纹理本身吗?你会打电话给

代码语言:javascript
复制
glDeleteTextures(1, &texture[txtNum]);

...before重用txtNum纹理?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9054941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档