import org.lwjgl.Sys; import org.lwjgl.glfw.*; import org.lwjgl.opengl.*; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.InetAddress; import java.net.URL; import java.nio.ByteBuffer; 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 HelloWorld { private String roomID; // We need to strongly reference callback instances. private GLFWErrorCallback errorCallback; private GLFWKeyCallback keyCallback; // The window handle private long window; public void run() { System.out.println("Hello LWJGL " + Sys.getVersion() + "!"); try { init(); loop(); // Release window and window callbacks glfwDestroyWindow(window); keyCallback.release(); } finally { // Terminate GLFW and release the GLFWerrorfun glfwTerminate(); errorCallback.release(); } } private void init() { // Setup an error callback. The default implementation // will print the error message in System.err. glfwSetErrorCallback(errorCallback = errorCallbackPrint(System.err)); // Initialize GLFW. Most GLFW functions will not work before doing this. if ( glfwInit() != GL11.GL_TRUE ) throw new IllegalStateException("Unable to initialize GLFW"); // Configure our window glfwDefaultWindowHints(); // optional, the current window hints are already the default glfwWindowHint(GLFW_VISIBLE, GL_FALSE); // the window will stay hidden after creation glfwWindowHint(GLFW_RESIZABLE, GL_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, keyCallback = new GLFWKeyCallback() { @Override public void invoke(long window, int key, int scancode, int action, int mods) { if ( key == GLFW_KEY_ESCAPE && action == GLFW_RELEASE ) glfwSetWindowShouldClose(window, GL_TRUE); // We will detect this in our rendering loop } }); // Get the resolution of the primary monitor ByteBuffer vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor()); // Center our window glfwSetWindowPos( window, (GLFWvidmode.width(vidmode) - WIDTH) / 2, (GLFWvidmode.height(vidmode) - HEIGHT) / 2 ); // Make the OpenGL context current glfwMakeContextCurrent(window); // Enable v-sync glfwSwapInterval(1); // Make the window visible glfwShowWindow(window); } 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 ContextCapabilities instance and makes the OpenGL // bindings available for use. //GL.createCapabilities(); // valid for latest build GLContext.createFromCurrent(); // use this line instead with the 3.0.0a build // Set the clear color glClearColor(1.0f, 0.0f, 0.0f, 0.0f); try { registerRoom(); } catch (Exception e){ e.printStackTrace(); } // Run the rendering loop until the user has attempted to close // the window or has pressed the ESCAPE key. while ( glfwWindowShouldClose(window) == GL_FALSE ) { 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(); } } private void registerRoom() throws Exception { String url = "http://spacecharge.co.nf/php/room_add.php"; URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); //add reuqest header con.setRequestMethod("POST"); //con.setRequestProperty("User-Agent", USER_AGENT); con.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); InetAddress IP = InetAddress.getLocalHost(); //System.out.print(IP.getHostAddress()); String urlParameters = "ipAdd=" + IP.getHostAddress(); // Send post request con.setDoOutput(true); DataOutputStream wr = new DataOutputStream(con.getOutputStream()); wr.writeBytes(urlParameters); wr.flush(); wr.close(); int responseCode = con.getResponseCode(); System.out.println("\nSending 'POST' request to URL : " + url); System.out.println("Post parameters : " + urlParameters); System.out.println("Response Code : " + responseCode); BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuilder response = new StringBuilder(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); //print result System.out.println("Room Code: " + response.toString()); roomID = response.toString(); glfwMakeContextCurrent(window); //GLContext.createFromCurrent(); glClearColor(0.0f, 0.0f, 1.0f, 0.0f); } public static void main(String[] args) { new HelloWorld().run(); } }