我正在使用视觉泄漏检测器寻找我的程序内存泄漏寻找我的程序内存泄漏并且找不到如何摆脱 FT_Load_Char 泄漏,文档也没有说明 GlyphSlot 的内存释放。
这是我的代码片段,其中 w 泄漏了大约 350 个字节。
// creating ascii symbol map
for (int i = 32; i < 128; i++) {
if (FT_Load_Char(face, i, FT_LOAD_RENDER)) { // leak comes from here
fprintf(stderr, "Loading character %c failed!\n", i);
continue;
}
glTexSubImage2D(GL_TEXTURE_2D, 0, ox, oy, g->bitmap.width, g->bitmap.rows,
GL_ALPHA, GL_UNSIGNED_BYTE, g->bitmap.buffer);
float ax = g->advance.x >> 6;
float ay = ay = g->advance.y >> 6;
float bw = g->bitmap.width;
float bh = g->bitmap.rows;
float bl = g->bitmap_left;
float bt = g->bitmap_top;
m_GlyphMap[i] = Glyph(ax,ay, bw, bh, bl, bt, ox, oy);
ox += g->bitmap.width + 1;
// there should be some sort of deallociation...
}
所以主要问题:是否有一些功能可以释放我缺少的 GlyphSlot?还是 Freetype 中的错误?