Spritesheet generator for the tortuga game
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
1.6 KiB

package net.spritegen.gui;
import static org.lwjgl.opengl.GL11.*;
import java.util.Random;
import net.spritegen.App;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import com.porcupine.coord.Coord;
import com.porcupine.coord.Vec;
/**
* Screen class.<br>
* Screen animates 3D world, while contained panels render 2D overlays, process
* inputs and run the game logic.
*
* @author Ondřej Hruška (MightyPork)
*/
public abstract class Screen{
/** application instance, for easier calls */
public App app = App.inst;
/** RNG */
public Random rand = new Random();
/**
* handle window resize.
*/
public void onWindowResize() {
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
Coord s = app.getSize();
glViewport(0, 0, s.xi(), s.yi());
glOrtho(0, s.x, 0, s.y, -1000, 1000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisable(GL_TEXTURE_2D);
}
/**
* Initialize screen
*/
public void init() {
onWindowResize();
initScreen();
// SETUP LIGHTS
glDisable(GL_LIGHTING);
// OTHER SETTINGS
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClearDepth(1f);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LEQUAL);
glEnable(GL_NORMALIZE);
glShadeModel(GL_SMOOTH);
glDisable(GL_TEXTURE_2D);
}
/**
* Here you can initialize the screen.
*/
public abstract void initScreen();
/**
* Update tick
*/
public void update() {}
/**
* Render screen
*
* @param delta delta time (position between two update ticks, to allow
* super-smooth animations)
*/
public void render(double delta) {}
}