2017-11-16 4 views
0

私はlwjgl 3を使用していて、stbライブラリを使用してテキストをレンダリングしようとしています。私は自分自身の実装を作成するためにthisの例を使用しています。しかし、mallocを使ってSTBTTPackedchar.Bufferを設定すると、nullが返されます。私は6 * 128の代わりに3 * 128にサイズを変更すればうまく動作します。 mallocの理解に問題があるのでしょうか?私の知る限りでは、mallocはバイト単位でメモリを割り当て、そのメモリを割り当てることができなければnullを返します。その場合、私はコンピュータに十分なメモリを持っているので、なぜこれがnullを返すのか理解できません。ここでLWJGL 3 mallocが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(); 
    } 

} 

答えて

2

バグは、構造体のバッファのサイズmalloc(ないcalloc)配分に影響を与えるLWJGL 3.1.3のリリースです。 これは、最新の3.1.4安定版と最新の夜間ビルドで既に修正されています。これはhttps://www.lwjgl.org/customizeまたはoss.sonatype.orgのMaven Snapshotリポジトリ(3.1.4-SNAPSHOT)からダウンロードできます。 また、LWJGL 3.1.4のリリースは今晩/夜(CET時間)に発生する可能性があります。詳細については

、以下を参照してください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

関連する問題