Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lwjglgame;
- import org.lwjgl.*;
- import org.lwjgl.glfw.*;
- import org.lwjgl.opengl.*;
- import org.lwjgl.system.*;
- import java.nio.*;
- import static org.lwjgl.glfw.Callbacks.*;
- import static org.lwjgl.glfw.GLFW.*;
- import static org.lwjgl.opengl.GL11.*;
- import static org.lwjgl.system.MemoryStack.*;
- public class Main {
- // The window handle
- private long window;
- public void run(){
- System.out.println("lwjgl " + Version.getVersion() + "");
- init();
- loop();
- glfwFreeCallbacks(window);
- glfwDestroyWindow(window);
- glfwTerminate();
- glfwSetErrorCallback(null).free();
- }
- private void init(){
- GLFWErrorCallback.createPrint(System.err).set();
- if(!glfwInit())
- throw new IllegalStateException("unable to init glfw");
- glfwSetKeyCallback(window, (window, key, scancode, action, mode) -> {
- if ( key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE )
- glfwSetWindowShouldClose(window, true);
- });
- try(MemoryStack stack = stackPush()){
- IntBuffer pwidth = stack.mallocInt(1);
- IntBuffer pheight = stack.mallocInt(1);
- glfwGetWindowSize(window, pwidth, pheight);
- GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
- glfwSetWindowPos(
- window,
- (vidmode.width() - pwidth.get(0)) / 2,
- (vidmode.height() - pheight.get(0)) / 2
- );
- }
- glfwMakeContextCurrent(window);
- glfwSwapInterval(1);
- glfwShowWindow(window);
- }
- private void loop(){
- GL.createCapabilities();
- glClearColor(1.0f, 0.0f, 0.0f, 0.0f);
- while(!glfwWindowShouldClose(window)){
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glfwSwapBuffers(window);
- glfwPollEvents();
- }
- }
- public static void main(String[] args) {
- new Main().run();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement