Small refactors and Log::Success function

This commit is contained in:
2025-08-20 22:08:48 +01:00
parent 5900117194
commit 78efce5cb3
2 changed files with 35 additions and 19 deletions

View File

@@ -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);

View File

@@ -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;
}