Начинающий
- Статус
- Оффлайн
- Регистрация
- 25 Дек 2025
- Сообщения
- 28
- Реакции
- 0
TextureLoader:
package Neleryse.nls.util.render.core;
import Neleryse.nls.util.render.gl.GlBackend;
import org.lwjgl.stb.STBImage;
import org.lwjgl.system.MemoryStack;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import java.nio.file.Files;
import java.nio.file.Paths;
public class TextureLoader {
/**
* PNG/JPG → GL текстура (RGBA8, linear filter)
* @param backend твой GlBackend
* @param filePath путь к файлу (assets/icon.png)
* @return GL texture ID или 0 при ошибке
*/
public static int loadTexture(GlBackend backend, String filePath) {
try (var stack = MemoryStack.stackPush()) {
byte[] bytes = Files.readAllBytes(Paths.get(filePath));
ByteBuffer data = ByteBuffer.allocateDirect(bytes.length);
data.put(bytes).flip();
IntBuffer w = stack.mallocInt(1);
IntBuffer h = stack.mallocInt(1);
IntBuffer ch = stack.mallocInt(1);
ByteBuffer image = STBImage.stbi_load_from_memory(data, w, h, ch, 4);
if (image == null) {
System.err.println("STB Error: " + STBImage.stbi_failure_reason());
return 0;
}
int width = w.get(0);
int height = h.get(0);
System.out.printf("Loaded %s: %dx%d%n", filePath, width, height);
int texId = backend.createMsdfTexture(width, height, image);
STBImage.stbi_image_free(image);
return texId;
} catch (IOException e) {
System.err.println("File error: " + filePath + " → " + e.getMessage());
return 0;
}
}
}
Помогите начал делать таргет, но есть проблема когда я указываю путь к текстуре выдает ошибку(Лоадер если что гпт) как пофиксить?
UPD: я выяснил то что он иншет текстуру в папке run как сдеклать чтобы он искал в resource?
Последнее редактирование: