All pastes #2133366 Raw Edit

Miscellany

public text v1 · immutable
#2133366 ·published 2012-03-28 18:27 UTC
rendered paste body
	  private ShaderProgram shader;
	  private Mesh mesh;
	  private PerspectiveCamera camera;
	  private Matrix4 model = new Matrix4();
	  private float angle = 45;


	@Override
	public void create() {
	    String vertexShader = 
	    	  "uniform mat4 u_MVPMatrix;    \n" +
	          "attribute vec4 vPosition;    \n" +
	          "void main()                  \n" +
	          "{                            \n" +
	          "   gl_Position = vPosition * u_MVPMatrix;  \n" +
	          "}                            \n";

	    String fragmentShader =    
	      "#ifdef GL_ES\n"
	      + "precision mediump float;\n"
	      + "#endif\n" +
	        "void main()                                  \n" +    
	        "{                                            \n" +
	        "  gl_FragColor = vec4 ( 1.0, 1.0, 1.0, 1.0 );\n" +
	        "}";
	    
	    shader = new ShaderProgram(vertexShader, fragmentShader);
	    mesh = new Mesh(true, 4, 0, new VertexAttribute(Usage.Position, 3, "vPosition"));
	    float[] squareVertices = {
	    		-0.5f, -0.5f, 0, 
                0.5f, -0.5f, 0,
                -0.5f, 0.5f, 0, 
                0.5f, 0.5f, 0,};
	    mesh.setVertices(squareVertices);
	}

	@Override
	public void resize(int width, int height) {
		camera = new PerspectiveCamera(60, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
		camera.translate(0.0f, 0.0f, 1.0f);
		camera.lookAt(0, 0, 0);		
	}

	@Override
	public void render() {
	    angle += Gdx.graphics.getDeltaTime() * 40.0f;
	    Gdx.gl20.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
	    Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);
		model.idt();
		model.rotate(0, 0, 1, angle);
		camera.update();
	    shader.begin();
		shader.setUniformMatrix("u_MVPMatrix", camera.combined.mul(model));
	    mesh.render(shader, GL20.GL_TRIANGLE_STRIP);

	    shader.end();
	}