Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package space.engine.test;
- import org.newdawn.slick.AppGameContainer;
- import org.newdawn.slick.BasicGame;
- import org.newdawn.slick.GameContainer;
- import org.newdawn.slick.Graphics;
- import org.newdawn.slick.Image;
- import org.newdawn.slick.Input;
- import org.newdawn.slick.SlickException;
- import space.engine.ShaderProgram;
- public class SimpleShaderTest extends BasicGame {
- public static void main(String[] args) throws SlickException {
- new AppGameContainer(new SimpleShaderTest(), 800, 600, false).start();
- }
- public SimpleShaderTest() {
- super("shader test");
- }
- Image clouds;
- ShaderProgram program;
- private boolean shaderWorks, useShader=true;
- @Override
- public void init(GameContainer container) throws SlickException {
- clouds = new Image("res/clouds.jpg");
- // We can disable 'strict' mode which means that trying to change a
- // non-active uniform won't throw a runtime exception
- //ShaderProgram.setStrictMode(false);
- //often its wise to hard-code the shader... but for now we'll use a file
- program = ShaderProgram.loadProgram("res/hellovert.shader", "res/hellofrag.shader");
- shaderWorks = program.valid();
- if (shaderWorks) {
- //set up our uniforms...
- program.bind();
- program.setUniform1i("tex", 0); //texture 0
- program.unbind();
- } else {
- System.out.println("Error loading shader... "+program.getLog());
- }
- }
- //@Override
- public void render(GameContainer container, Graphics g) throws SlickException {
- if (shaderWorks && useShader)
- program.bind();
- g.drawImage(clouds, 100, 100);
- if (shaderWorks && useShader)
- program.unbind();
- if (shaderWorks)
- g.drawString("Space to toggle shader", 10, 20);
- else
- g.drawString("Shader didn't load: "+program.getLog(), 10, 20);
- }
- @Override
- public void update(GameContainer container, int delta) throws SlickException {
- if (container.getInput().isKeyPressed(Input.KEY_SPACE))
- useShader = !useShader;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement