Small refactors and Log::Success function
This commit is contained in:
@@ -39,6 +39,7 @@ public class Shader {
|
||||
@Getter @Setter private int vertexID;
|
||||
@Getter @Setter private int fragmentID;
|
||||
@Getter @Setter private int shaderProgramID;
|
||||
@Getter @Setter private int vaoID, vboID, eboID;
|
||||
|
||||
private float[] vertexArray = {
|
||||
0.5f, -0.5f, 0.0f, /* */ 1.0f, 0.0f, 0.0f, 1.0f, //
|
||||
@@ -52,8 +53,6 @@ public class Shader {
|
||||
0, 1, 3
|
||||
};
|
||||
|
||||
@Getter private int vaoID, vboID, eboID;
|
||||
|
||||
public Shader(String fragPath, String vertPath) {
|
||||
this.fragmentSource = readFromFile(fragPath);
|
||||
this.vertexSource = readFromFile(vertPath);
|
||||
@@ -97,21 +96,23 @@ public class Shader {
|
||||
}
|
||||
|
||||
private void createProgram() {
|
||||
setShaderProgramID(glCreateProgram());
|
||||
glAttachShader(shaderProgramID, getVertexID());
|
||||
glAttachShader(shaderProgramID, getFragmentID());
|
||||
glLinkProgram(shaderProgramID);
|
||||
int id = glCreateProgram();
|
||||
glAttachShader(id, getVertexID());
|
||||
glAttachShader(id, getFragmentID());
|
||||
glLinkProgram(id);
|
||||
|
||||
int success = glGetProgrami(getShaderProgramID(), GL_LINK_STATUS);
|
||||
int success = glGetProgrami(id, GL_LINK_STATUS);
|
||||
if (success == GL_FALSE) {
|
||||
int len = glGetProgrami(getShaderProgramID(), GL_INFO_LOG_LENGTH);
|
||||
int len = glGetProgrami(id, GL_INFO_LOG_LENGTH);
|
||||
|
||||
Log.error(
|
||||
"Shader initialisation",
|
||||
String.format(
|
||||
"Failed to create Shader Program: %s",
|
||||
glGetShaderInfoLog(getShaderProgramID(), len)));
|
||||
String.format("Failed to create Shader Program: %s", glGetShaderInfoLog(id, len)));
|
||||
} else {
|
||||
Log.success("Shader initialisation", "Shader Program created.");
|
||||
}
|
||||
|
||||
setShaderProgramID(id);
|
||||
}
|
||||
|
||||
private String readFromFile(String stringFilePath) {
|
||||
@@ -134,21 +135,21 @@ public class Shader {
|
||||
}
|
||||
|
||||
private void thingy() {
|
||||
this.vaoID = glGenVertexArrays();
|
||||
glBindVertexArray(this.vaoID);
|
||||
setVaoID(glGenVertexArrays());
|
||||
glBindVertexArray(getVaoID());
|
||||
|
||||
FloatBuffer vertexBuffer = BufferUtils.createFloatBuffer(this.vertexArray.length);
|
||||
vertexBuffer.put(this.vertexArray).flip();
|
||||
|
||||
this.vboID = glGenBuffers();
|
||||
glBindBuffer(GL_ARRAY_BUFFER, this.vboID);
|
||||
setVboID(glGenBuffers());
|
||||
glBindBuffer(GL_ARRAY_BUFFER, getVboID());
|
||||
glBufferData(GL_ARRAY_BUFFER, vertexBuffer, GL_STATIC_DRAW);
|
||||
|
||||
IntBuffer elementBuffer = BufferUtils.createIntBuffer(this.elementArray.length);
|
||||
elementBuffer.put(this.elementArray).flip();
|
||||
|
||||
this.eboID = glGenBuffers();
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, this.eboID);
|
||||
setEboID(glGenBuffers());
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, getEboID());
|
||||
glBufferData(GL_ELEMENT_ARRAY_BUFFER, elementBuffer, GL_STATIC_DRAW);
|
||||
|
||||
int positionsSize = 3;
|
||||
@@ -163,9 +164,17 @@ public class Shader {
|
||||
glEnableVertexAttribArray(1);
|
||||
}
|
||||
|
||||
public void use() {
|
||||
glUseProgram(getShaderProgramID());
|
||||
}
|
||||
|
||||
public void detach() {
|
||||
glUseProgram(0);
|
||||
}
|
||||
|
||||
public void update() {
|
||||
glUseProgram(this.shaderProgramID);
|
||||
glBindVertexArray(this.vaoID);
|
||||
glUseProgram(getShaderProgramID());
|
||||
glBindVertexArray(getVaoID());
|
||||
glEnableVertexAttribArray(0);
|
||||
glEnableVertexAttribArray(1);
|
||||
glDrawElements(GL_TRIANGLES, this.elementArray.length, GL_UNSIGNED_INT, 0);
|
||||
|
||||
@@ -25,6 +25,13 @@ public final class Log {
|
||||
System.err.println(fancyError + fancyErrorStage + errorDescription);
|
||||
}
|
||||
|
||||
public static void success(String successStage, String successDescription) {
|
||||
String fancySuccess = String.format("[%s] ", colourisedString(Colours.GREEN, "SUCCESS"));
|
||||
String fancySucessStage =
|
||||
colourisedString(Colours.YELLOW, String.format("<%s> ", successStage));
|
||||
System.out.println(fancySuccess + fancySucessStage + successDescription);
|
||||
}
|
||||
|
||||
private static String colourisedString(String colour, String string) {
|
||||
return colour + string + Colours.ANSI_RESET;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user