ObjectGl, ObjectGlColor, ObjectGlTex added
This commit is contained in:
54
src/engine/object/ObjectGl.java
Normal file
54
src/engine/object/ObjectGl.java
Normal 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();
|
||||
}
|
||||
|
||||
}
|
18
src/engine/object/ObjectGlColor.java
Normal file
18
src/engine/object/ObjectGlColor.java
Normal 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();
|
||||
}
|
||||
}
|
18
src/engine/object/ObjectGlTex.java
Normal file
18
src/engine/object/ObjectGlTex.java
Normal 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();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user