Как создать лицо шрифта, используя последнюю версию (3.3.6) Lwjgl Freetype Привязка?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как создать лицо шрифта, используя последнюю версию (3.3.6) Lwjgl Freetype Привязка?

Сообщение Anonymous »

Не уверен, как создать лицо шрифта, используя привязку lwjgl freetype. Не смог найти достаточно документации или каких -либо примеров вокруг него. /p>
Вот что я пытался сделать: < /p>
package org.example;

import org.lwjgl.*;
import org.lwjgl.system.*;
import org.lwjgl.util.freetype.FT_Face;

import java.io.IOException;
import java.io.InputStream;
import java.nio.*;

import static org.lwjgl.system.MemoryStack.*;
import static org.lwjgl.util.freetype.FreeType.*;

public class Main {

public static void main(String[] args) {
// For now just verify that the FreeType library loads correctly
try (MemoryStack stack = stackPush()) {
PointerBuffer pp = stack.mallocPointer(1);

int err = FT_Init_FreeType(pp);
if (err != FT_Err_Ok) {
throw new IllegalStateException("Failed to initialize FreeType: " + FT_Error_String(err));
}

long library = pp.get(0);

IntBuffer major = stack.mallocInt(1);
IntBuffer minor = stack.mallocInt(1);
IntBuffer patch = stack.mallocInt(1);

FT_Library_Version(library, major, minor, patch);
System.out.println("Loaded FreeType " + major.get(0) + "." + minor.get(0) + "." + patch.get(0));

FT_Done_FreeType(library);

// Load the WOFF file
String fontPath = "AdelleSans-ThinItalic.woff";
byte[] fontData;
try (InputStream fileStream = Main.class.getResourceAsStream(fontPath)) {
assert fileStream != null;
fontData = fileStream.readAllBytes();
}
ByteBuffer fontByteBuffer = MemoryUtil.memAlloc(1024 * 1024);
fontByteBuffer.put(fontData);
fontByteBuffer.flip();
PointerBuffer pointerBuffer = stack.mallocPointer(1); // not sure how to create the PointBuffer
int error = FT_New_Memory_Face(library, fontByteBuffer, fontByteBuffer.remaining(), pointerBuffer);

System.out.println(error);

} catch (IOException e) {
throw new RuntimeException(e);
}

}

}
< /code>
Вот ошибка, которую я получаю: < /p>
Задача: org.example.main.main () не удастся
Загружено Freetype 2.13.3 < /p>
Фактальная ошибка была обнаружена в среде времени выполнения Java: < /p>
sigsegv (0xb) на ПК = 0x000000012f240600, PID = 44875, tid = 259 < /p>
jre version: openjdk среда времени выполнения Temurin-17.0.7+7 (17.0.7+7) (сборка 17.0.7+7)
java vm: openjdk 64-бит Сервер VM Temurin-17.0.7+7 (17.0.7+7, смешанный режим, многоуровневый, сжатый упс, сжатый класс PTRS, G1 GC, BSD-Aarch64)
Проблемная кадр:
c [libfreetype. dylib+0x8600]

Подробнее здесь: https://stackoverflow.com/questions/794 ... etype-bind
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»