2017-11-16 8 views
0

그래서 lwjgl 3을 사용하고 있으며 stb 라이브러리를 사용하여 텍스트를 렌더링하려고합니다. 내 자신의 구현을 만들려면 this 예제를 사용하고 있습니다. 하지만 malloc을 사용하여 STBTTPackedchar.Buffer를 설정하면 null을 반환합니다. 크기를 3 * 128 대신 6 * 128로 변경하면 문제가 없습니다. 어쩌면 이것이 malloc에 ​​대한 나의 이해에 문제가되는 것일까? 내 지식으로는 malloc은 바이트 형태로 메모리를 할당하고 그 공간 메모리를 할당 할 수없는 경우 null을 반환합니다. 그렇다면 왜 내 컴퓨터에 메모리가 충분하지 않아서 null이 반환 될지 이해할 수 없습니다.LWJGL 3 malloc이 null을 반환합니까?

가 여기에 최소한의 테스트 케이스이다 : 구조체 버퍼의 크기 malloc (안 calloc) 할당에 영향을 미치는 LWJGL 3.1.3 버전에서 버그가 있습니다

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

. 이것은 최신 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/blob/master/doc/notes/3.1.3.md#known-issues

: 현재 3.1.3 버전의 (편집) 릴리스 노트도 https://github.com/LWJGL/lwjgl3/commit/c7c94340d6a9796d38b2fb8292fe6d1dbff8ff04