所以我正在使用 lwjgl 3 并尝试使用 stb 库呈现文本。我正在使用这个例子来创建我自己的实现。但是当我使用 malloc 设置 STBTTPackedchar.Buffer 时,它返回 null。如果我将大小更改为 3 * 128 而不是 6 * 128,它可以正常工作。也许这是我对 malloc 的理解有问题?据我所知,malloc 以字节的形式分配内存,如果无法分配该空间内存,则会返回 null。如果是这种情况,我不明白为什么这会返回 null,因为我的计算机中有足够的内存。
这是一个最小的测试用例:
import org.lwjgl.stb.STBTTPackedchar;
public class Test {
private static STBTTPackedchar.Buffer chardata;
public static void main(String[] args) {
chardata = STBTTPackedchar.malloc(6 * 128);
if (chardata == null) {
System.out.println("Null");
} else {
System.out.println("Not Null");
}
chardata.free();
}
}
LWJGL 3.1.3 版本中存在一个影响结构缓冲区大小malloc
(非calloc
)分配的错误。这已经在最新的 3.1.4 稳定版和最新的夜间构建中得到修复,可以从https://www.lwjgl.org/customize或从 oss.sonatype.org 的 Maven Snapshot 存储库下载为 3.1.4-SNAPSHOT。此外,LWJGL 3.1.4 版本可能会在今晚/晚上(欧洲中部时间)发布。
更多信息请参见:https : //github.com/LWJGL/lwjgl3/commit/c7c94340d6a9796d38b2fb8292fe6d1dbff8ff04
还有当前 3.1.3 版本的(编辑)发行说明:https : //github.com/LWJGL/lwjgl3/blob/master/doc/notes/3.1.3.md#known-issues
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句