关于glTexImage2D的Sigabrt

时间:2016-07-05 13:42:59

标签: c++ opengl-es android-ndk freetype2

当我离开周末时,我的代码处于工作状态,自从我回来后,我随机收到此错误。有时它运行,我的android项目工作,有时它没有。我目前正在研究NDK并试图让Freetype Lib工作。从阅读这个堆栈跟踪这里是我的“相关”代码:

<integer name="rotation">0</integer>

这是堆栈跟踪:

values

为什么它有时会失败?

编辑:通过日志记录,我发现它在ascii代码35的字符处失败。

Edit2:我不知道为什么,但它会随机卡在不同的角色上。有时甚至,它根本不会卡住,只会编译并运行......我甚至都不知道了。

1 个答案:

答案 0 :(得分:0)

所以,对于任何可能发现这篇文章的人来说,连续几个小时都在网络上,我找到了答案。 Freetype未通过GL_RGB对齐(至少不在我的项目中),而是通过GL_LUMINANCE对齐。通过改变glTexImage2D中的这些内容我解决了上述问题,以及一些时髦的图形错误。

TLDR;

glTexImage2D(
            GL_TEXTURE_2D,
            0,
            GL_RGB,                        => GL_LUMINANCE
            face->glyph->bitmap.width,
            face->glyph->bitmap.rows,
            0,
            GL_RGB,                        => GL_LUMINANCE
            GL_UNSIGNED_BYTE,
            face->glyph->bitmap.buffer
    );