ObjectGl, ObjectGlColor, ObjectGlTex added

This commit is contained in:
Antoine
2021-05-18 21:18:26 +02:00
parent b7de1556cc
commit c6181c96fe
13 changed files with 110 additions and 64 deletions

View File

@ -0,0 +1,54 @@
package engine.object;
import engine.Primitive;
import engine.graphics.VertexArray;
import engine.graphics.Shader;
import engine.math.Matrix4f;
import engine.math.Vector3f;
/**
*
*/
public class ObjectGl {
protected VertexArray vertexArray;
protected Shader shader;
protected Matrix4f transform;
public ObjectGl(float x, float y, float z, float h, float w){
this.vertexArray = new VertexArray(Primitive.createRectangle(x, y, z, h, w), Primitive.rectangle_indices, null, null);
this.transform = Matrix4f.identity();
this.shader = new Shader("shaders/ObjectGl/vert.glsl","shaders/ObjectGl/frag.glsl");
}
public void resetTransform(){
this.transform = Matrix4f.identity();
}
public void translate(Vector3f vec){
this.transform = this.transform.multiply(Matrix4f.translate(vec));
}
public void scale(Vector3f vec){
this.transform = this.transform.multiply(Matrix4f.scale(vec));
}
public void rotateX(float angle){
this.transform = this.transform.multiply(Matrix4f.rotateX(angle));
}
public void rotateY(float angle){
this.transform = this.transform.multiply(Matrix4f.rotateY(angle));
}
public void rotateZ(float angle){
this.transform = this.transform.multiply(Matrix4f.rotateZ(angle));
}
public void render(){
this.shader.enable();
this.vertexArray.render();
this.shader.disable();
}
}

View File

@ -0,0 +1,18 @@
package engine.object;
import engine.graphics.Shader;
public class ObjectGlColor extends ObjectGl{
public ObjectGlColor(float x, float y, float h, float w, float[] color) {
super(x, y, h, w);
this.shader = new Shader("shaders/ObjectGlColor/vert.glsl","shaders/ObjectGlColor/frag.glsl");
}
@Override
public void render() {
this.shader.enable();
this.vertexArray.render();
this.shader.disable();
}
}

View File

@ -0,0 +1,18 @@
package engine.object;
import engine.graphics.Shader;
public class ObjectGlTex extends ObjectGl{
public ObjectGlTex(float x, float y, float h, float w, float[] texCoord) {
super(x, y, h, w);
this.shader = new Shader("shaders/ObjectGlTex/vert.glsl","shaders/ObjectGlTex/frag.glsl");
}
@Override
public void render() {
this.shader.enable();
this.vertexArray.render();
this.shader.disable();
}
}