112 lines
4.2 KiB
Java
112 lines
4.2 KiB
Java
|
package globalgamejam;
|
||
|
|
||
|
//http://www.tomdalling.com/blog/modern-opengl/08-even-more-lighting-directional-lights-spotlights-multiple-lights/
|
||
|
|
||
|
import static org.lwjgl.glfw.GLFW.*;
|
||
|
import static org.lwjgl.opengl.GL11.*;
|
||
|
import static org.lwjgl.system.MemoryUtil.*;
|
||
|
|
||
|
import org.lwjgl.glfw.*;
|
||
|
import org.lwjgl.opengl.*;
|
||
|
|
||
|
import globalgamejam.audio.*;
|
||
|
import globalgamejam.game.*;
|
||
|
import globalgamejam.input.*;
|
||
|
import globalgamejam.math.*;
|
||
|
import globalgamejam.render.*;
|
||
|
|
||
|
/**
|
||
|
* Class created by MrDev023 (Florian RICHER) on 14/01/2017
|
||
|
*/
|
||
|
public class Main {
|
||
|
|
||
|
//Valeur de la fenetre
|
||
|
public static final int WIDTH = 800,HEIGHT = 600;
|
||
|
public static final String TITLE = "Test Shader OpenGL";
|
||
|
|
||
|
//Variable pour la gestion de la fenetre
|
||
|
public static long windowID = 0;
|
||
|
public static GLFWErrorCallback errorCallback;
|
||
|
|
||
|
//variable du moteur du jeu
|
||
|
public static float delta = 0;
|
||
|
public static Game game;
|
||
|
public static long previous = System.currentTimeMillis(),previousInfo = System.currentTimeMillis(),previousTicks = System.currentTimeMillis();
|
||
|
public static int FPS = 0,TICKS = 0;
|
||
|
|
||
|
public static void main(String[] args) throws Exception {
|
||
|
//Creation de la fenetre
|
||
|
//------------------------------------------------------------------------------------
|
||
|
errorCallback = new GLFWErrorCallback() {
|
||
|
public void invoke(int error, long description) {
|
||
|
System.err.println("ID : " + error + " | Description :" + description);
|
||
|
}
|
||
|
};
|
||
|
// glfwSetErrorCallback(errorCallback);
|
||
|
|
||
|
if(glfwInit())throw new Exception("GLFW not init");
|
||
|
glfwDefaultWindowHints();
|
||
|
glfwWindowHint(GLFW_VISIBLE, GL11.GL_FALSE);
|
||
|
glfwWindowHint(GLFW_RESIZABLE, GL11.GL_FALSE);
|
||
|
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
|
||
|
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||
|
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
|
||
|
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
|
||
|
windowID = glfwCreateWindow(WIDTH,HEIGHT,TITLE,NULL,NULL);
|
||
|
GLFWVidMode vidmode = glfwGetVideoMode(glfwGetPrimaryMonitor());
|
||
|
glfwSetWindowPos(windowID,(vidmode.width()-WIDTH)/2,(vidmode.height()-HEIGHT)/2);
|
||
|
glfwShowWindow(windowID);
|
||
|
glfwMakeContextCurrent(windowID);
|
||
|
GL.createCapabilities();
|
||
|
System.out.println("OpenGL Version :" + glGetString(GL_VERSION));
|
||
|
System.out.println("GLSL Shader Version :" + glGetString(GL20.GL_SHADING_LANGUAGE_VERSION));
|
||
|
//------------------------------------------------------------------------------------
|
||
|
|
||
|
//Creation du device audio
|
||
|
//------------------------------------------------------------------------------------
|
||
|
Audio.create();
|
||
|
//------------------------------------------------------------------------------------
|
||
|
|
||
|
//initialisation
|
||
|
//------------------------------------------------------------------------------------
|
||
|
Input.init();
|
||
|
game = new MainGame();
|
||
|
|
||
|
Camera.transform();
|
||
|
//------------------------------------------------------------------------------------
|
||
|
|
||
|
while(glfwWindowShouldClose(windowID)){
|
||
|
|
||
|
if(System.currentTimeMillis() - previousTicks >= 1000/60){//Update TICKS
|
||
|
glfwPollEvents();
|
||
|
Input.update();
|
||
|
game.update();
|
||
|
previousTicks = System.currentTimeMillis();
|
||
|
delta = (float)(System.currentTimeMillis() - previous)/1000.0f;
|
||
|
previous = System.currentTimeMillis();
|
||
|
TICKS++;
|
||
|
}else{//Update FPS
|
||
|
DisplayManager.clear();
|
||
|
DisplayManager.preRender2D();
|
||
|
DisplayManager.render2D();
|
||
|
DisplayManager.preRenderGUI();
|
||
|
DisplayManager.renderGUI();
|
||
|
glfwSwapBuffers(windowID);
|
||
|
FPS++;
|
||
|
}
|
||
|
|
||
|
if(System.currentTimeMillis() - previousInfo >= 1000){
|
||
|
glfwSetWindowTitle(windowID, TITLE + " | FPS:" + FPS + " TICKS:" + TICKS);
|
||
|
FPS = 0;
|
||
|
TICKS = 0;
|
||
|
previousInfo = System.currentTimeMillis();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Audio.destroy();
|
||
|
glfwDestroyWindow(windowID);
|
||
|
glfwTerminate();
|
||
|
}
|
||
|
|
||
|
}
|