Код: Выделить всё
FATAL ERROR in native method: Thread[#3,main,5,main]: No context is current or a function that is not available in the current context was called. The JVM will abort execution.
at org.lwjgl.opengl.GL30C.nglGenVertexArrays(Native Method)
at org.lwjgl.opengl.GL30C.glGenVertexArrays(GL30C.java:1371)
at org.lwjgl.opengl.GL30.glGenVertexArrays(GL30.java:1297)
at net.livecrystal.engine.LCObject.(LCObject.java:22)
at net.livecrystal.test.Start.main(Start.java:25)
Код: Выделить всё
package net.livecrystal.engine;
import java.nio.FloatBuffer;
import org.lwjgl.BufferUtils;
import static org.lwjgl.opengl.GL15.GL_ARRAY_BUFFER;
import static org.lwjgl.opengl.GL15.GL_STATIC_DRAW;
import static org.lwjgl.opengl.GL15.glBindBuffer;
import static org.lwjgl.opengl.GL15.glBufferData;
import static org.lwjgl.opengl.GL30.glBindVertexArray;
import static org.lwjgl.opengl.GL41.*;
public class LCObject {
private int vertexArray;
private int verticesBufferID;
private int vertexCount;
public LCObject(float[] vertices) {
vertexCount = vertices.length;
vertexArray = glGenVertexArrays();
glBindVertexArray(vertexArray);
verticesBufferID = glGenBuffers();
FloatBuffer verticesBuffer = BufferUtils.createFloatBuffer(vertices.length);
verticesBuffer.put(vertices);
verticesBuffer.flip();
glBindBuffer(GL_ARRAY_BUFFER, verticesBufferID);
glBufferData(verticesBufferID, verticesBuffer, GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, false, 0, 0);
// Unbind
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);
}
public void render() {
glBindVertexArray(vertexArray);
glDrawArrays(GL_TRIANGLES, 0, vertexCount);
}
public void destroy() {
glDeleteVertexArrays(vertexArray);
glDeleteBuffers(verticesBufferID);
}
}
Код: Выделить всё
windowID = glfwCreateWindow(width, height, title, MemoryUtil.NULL, MemoryUtil.NULL);
glfwMakeContextCurrent(windowID);
createCapabilities();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_TRUE);
Могу ли я решить эту проблему или мне нужно изучить Metal?
Что касается библиотеки, я выбрал «Минимальный OpenGL» и обязательно добавил все нативные.