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();
}