Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-------LWJGLTest.java---------
- import org.lwjgl.*;
- import org.lwjgl.glfw.*;
- import org.lwjgl.opengl.*;
- import static org.lwjgl.glfw.Callbacks.*;
- import static org.lwjgl.glfw.GLFW.*;
- import static org.lwjgl.opengl.GL11.*;
- import static org.lwjgl.system.MemoryUtil.*;
- public class LWJGLTest extends Thread{
- // The window handle
- private long window;
- public void run() {
- new LWJGLTest();
- System.out.println("Hello LWJGL " + Version.getVersion() + "!");
- try {
- init();
- loop();
- System.out.println("ouch");
- // Free the window callbacks and destroy the window
- glfwFreeCallbacks(window);
- glfwDestroyWindow(window);
- } finally {
- // Terminate GLFW and free the error callback
- System.out.println("ouch");
- glfwTerminate();
- glfwSetErrorCallback(null).free();
- }
- }
- private void init() {
- // Setup an error callback. The default implementation
- // will print the error message in System.err.
- GLFWErrorCallback.createPrint(System.err).set();
- // Initialize GLFW. Most GLFW functions will not work before doing this.
- if ( !glfwInit() )
- throw new IllegalStateException("Unable to initialize GLFW");
- // Configure our window
- glfwDefaultWindowHints(); // optional, the current window hints are already the default
- glfwWindowHint(GLFW_VISIBLE, GLFW_FALSE); // the window will stay hidden after creation
- glfwWindowHint(GLFW_RESIZABLE, GLFW_TRUE); // the window will be resizable
- int WIDTH = 300;
- int HEIGHT = 300;
- // Create the window
- window = glfwCreateWindow(WIDTH, HEIGHT, "Hello World!", NULL, NULL);
- if ( window == NULL )
- throw new RuntimeException("Failed to create the GLFW window");
- // Setup a key callback. It will be called every time a key is pressed, repeated or released.
- glfwSetKeyCallback(window, (window, key, scancode, action, mods) -> {
- if ( key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE )
- glfwSetWindowShouldClose(window, true); // We will detect this in our rendering loop
- });
- // Get the resolution of the primary monitor
- GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
- // Center our window
- glfwSetWindowPos(
- window,
- (vidmode.width() - WIDTH) / 2,
- (vidmode.height() - HEIGHT) / 2
- );
- // Make the OpenGL context current
- glfwMakeContextCurrent(window);
- // Enable v-sync
- glfwSwapInterval(1);
- // Make the window visible
- glfwShowWindow(window);
- }
- private float color = 1.0f;
- private void loop() {
- // This line is critical for LWJGL's interoperation with GLFW's
- // OpenGL context, or any context that is managed externally.
- // LWJGL detects the context that is current in the current thread,
- // creates the GLCapabilities instance and makes the OpenGL
- // bindings available for use.
- GL.createCapabilities();
- // Set the clear color
- // Run the rendering loop until the user has attempted to close
- // the window or has pressed the ESCAPE key.
- boolean increment = true;
- while ( !glfwWindowShouldClose(window) ) {
- if (increment) {
- color += 0.01f;
- } else {
- color -= 0.01f;
- }
- if (color > 1) {
- color = 1;
- increment = false;
- }
- if (color < 0) {
- color = 0;
- increment = true;
- }
- System.out.println("running...");
- glClearColor(color, (1f - color), 0.0f, 0.0f);
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // clear the framebuffer
- glfwSwapBuffers(window); // swap the color buffers
- // Poll for window events. The key callback above will only be
- // invoked during this call.
- glfwPollEvents();
- }
- }
- public static void main(String[] args) {
- //Test class contains a 5 second delay followed by loading ColorModel
- TestClass test = new TestClass();
- test.start();
- new LWJGLTest().run();
- }
- }
- //---------TestClass.java
- import java.awt.image.ColorModel;
- public class TestClass extends Thread{
- public void run() {
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- System.out.println("About to run ColorModel.getRGBdefault()");
- try {
- ColorModel.getRGBdefault();
- } catch (Exception e) {
- e.printStackTrace();
- }
- System.out.println("Ran successfully");
- try {
- Thread.sleep(5000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement