manually ignore unexplainable opengl error
Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit

This commit is contained in:
austin 2024-08-28 20:59:23 -04:00
parent 1374c1c240
commit d558e60fd7
6 changed files with 31 additions and 14 deletions

View File

@ -1,3 +1,3 @@
#maven.buildNumber.plugin properties file #maven.buildNumber.plugin properties file
#Wed Aug 28 13:34:16 EDT 2024 #Wed Aug 28 20:50:08 EDT 2024
buildNumber=298 buildNumber=300

View File

@ -604,6 +604,7 @@ public class Globals {
Globals.clientSceneWrapper = new ClientSceneWrapper(Globals.clientScene, new CollisionEngine()); Globals.clientSceneWrapper = new ClientSceneWrapper(Globals.clientScene, new CollisionEngine());
Globals.clientSynchronizationManager = new ClientSynchronizationManager(); Globals.clientSynchronizationManager = new ClientSynchronizationManager();
Globals.realmManager = null; Globals.realmManager = null;
Globals.assetManager = null;
} }

View File

@ -102,7 +102,10 @@ public class ThreadManager {
try { try {
thread.getThread().join(10); thread.getThread().join(10);
if(thread.getThread().isAlive()){ if(thread.getThread().isAlive()){
throw new IllegalStateException("Failed to interrupt thread! " + thread.getLabel()); String errorMessage = "Failed to interrupt thread! " + thread.getLabel();
System.err.println(errorMessage);
new IllegalStateException().printStackTrace();
System.exit(1);
} }
} catch (InterruptedException e) { } catch (InterruptedException e) {
CodeUtils.todo(e, "Think about how to handle this"); CodeUtils.todo(e, "Think about how to handle this");

View File

@ -231,7 +231,7 @@ public class RenderingEngine {
//Gives hints to glfw to control how opengl will be used //Gives hints to glfw to control how opengl will be used
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glslVersion = "#version 410"; glslVersion = "#version 430";
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
//headless option //headless option
if(Globals.RUN_HIDDEN){ if(Globals.RUN_HIDDEN){

View File

@ -411,8 +411,7 @@ public class Mesh {
if(texture != null){ if(texture != null){
texture.bind(openGLState,5+i); texture.bind(openGLState,5+i);
} }
glUniform1i(glGetUniformLocation(openGLState.getActiveShader().getShaderId(), textureMask.getUniformNames().get(i)),5+i); openGLState.getActiveShader().setUniform(openGLState, textureMask.getUniformNames().get(i), 5+i);
Globals.renderingEngine.checkError();
i++; i++;
} }
} else if(textureMask.getTexturePaths() != null){ } else if(textureMask.getTexturePaths() != null){
@ -435,8 +434,7 @@ public class Mesh {
Globals.renderingEngine.checkError(); Globals.renderingEngine.checkError();
openGLState.glBindTexture(GL_TEXTURE_2D, RenderingEngine.lightBufferDepthTexture.getTexturePointer()); openGLState.glBindTexture(GL_TEXTURE_2D, RenderingEngine.lightBufferDepthTexture.getTexturePointer());
Globals.renderingEngine.checkError(); Globals.renderingEngine.checkError();
glUniform1i(glGetUniformLocation(openGLState.getActiveShader().getShaderId(), "shadowMap"), 3); openGLState.getActiveShader().setUniform(openGLState, "shadowMap", 3);
Globals.renderingEngine.checkError();
} }

View File

@ -39,6 +39,7 @@ import org.lwjgl.system.MemoryStack;
import electrosphere.engine.Globals; import electrosphere.engine.Globals;
import electrosphere.logger.LoggerInterface; import electrosphere.logger.LoggerInterface;
import electrosphere.renderer.OpenGLState; import electrosphere.renderer.OpenGLState;
import electrosphere.renderer.RenderingEngine;
import electrosphere.util.FileUtils; import electrosphere.util.FileUtils;
/** /**
@ -159,7 +160,7 @@ public class ShaderProgram {
LoggerInterface.loggerRenderer.ERROR("Runtime Exception", new RuntimeException(GL20.glGetShaderInfoLog(rVal.fragmentShader))); LoggerInterface.loggerRenderer.ERROR("Runtime Exception", new RuntimeException(GL20.glGetShaderInfoLog(rVal.fragmentShader)));
} }
//This creates a shader program opengl object and assigns its 'pointer' to the integer shaderProgram //This creates a shader program opengl object and assigns its 'pointer' to the integer shaderProgram
rVal.shaderId = glCreateProgram(); rVal.shaderId = GL40.glCreateProgram();
//This attaches the vertex and fragment shaders to the program //This attaches the vertex and fragment shaders to the program
glAttachShader(rVal.shaderId, rVal.vertexShader); glAttachShader(rVal.shaderId, rVal.vertexShader);
glAttachShader(rVal.shaderId, rVal.fragmentShader); glAttachShader(rVal.shaderId, rVal.fragmentShader);
@ -279,7 +280,7 @@ public class ShaderProgram {
LoggerInterface.loggerRenderer.ERROR("Runtime Exception", new RuntimeException(GL20.glGetShaderInfoLog(rVal.fragmentShader))); LoggerInterface.loggerRenderer.ERROR("Runtime Exception", new RuntimeException(GL20.glGetShaderInfoLog(rVal.fragmentShader)));
} }
//This creates a shader program opengl object and assigns its 'pointer' to the integer shaderProgram //This creates a shader program opengl object and assigns its 'pointer' to the integer shaderProgram
rVal.shaderId = glCreateProgram(); rVal.shaderId = GL40.glCreateProgram();
//This attaches the vertex and fragment shaders to the program //This attaches the vertex and fragment shaders to the program
glAttachShader(rVal.shaderId, rVal.vertexShader); glAttachShader(rVal.shaderId, rVal.vertexShader);
glAttachShader(rVal.shaderId, rVal.fragmentShader); glAttachShader(rVal.shaderId, rVal.fragmentShader);
@ -380,7 +381,7 @@ public class ShaderProgram {
LoggerInterface.loggerRenderer.ERROR("Runtime Exception", new RuntimeException(GL20.glGetShaderInfoLog(rVal.fragmentShader))); LoggerInterface.loggerRenderer.ERROR("Runtime Exception", new RuntimeException(GL20.glGetShaderInfoLog(rVal.fragmentShader)));
} }
//This creates a shader program opengl object and assigns its 'pointer' to the integer shaderProgram //This creates a shader program opengl object and assigns its 'pointer' to the integer shaderProgram
rVal.shaderId = glCreateProgram(); rVal.shaderId = GL40.glCreateProgram();
//This attaches the vertex and fragment shaders to the program //This attaches the vertex and fragment shaders to the program
glAttachShader(rVal.shaderId, rVal.vertexShader); glAttachShader(rVal.shaderId, rVal.vertexShader);
glAttachShader(rVal.shaderId, rVal.fragmentShader); glAttachShader(rVal.shaderId, rVal.fragmentShader);
@ -557,7 +558,7 @@ public class ShaderProgram {
} }
} }
//This creates a shader program opengl object and assigns its 'pointer' to the integer shaderProgram //This creates a shader program opengl object and assigns its 'pointer' to the integer shaderProgram
rVal.shaderId = glCreateProgram(); rVal.shaderId = GL40.glCreateProgram();
//This attaches the vertex and fragment shaders to the program //This attaches the vertex and fragment shaders to the program
glAttachShader(rVal.shaderId, rVal.vertexShader); glAttachShader(rVal.shaderId, rVal.vertexShader);
glAttachShader(rVal.shaderId, rVal.fragmentShader); glAttachShader(rVal.shaderId, rVal.fragmentShader);
@ -646,7 +647,7 @@ public class ShaderProgram {
LoggerInterface.loggerRenderer.ERROR("Runtime Exception", new RuntimeException(GL20.glGetShaderInfoLog(rVal.fragmentShader))); LoggerInterface.loggerRenderer.ERROR("Runtime Exception", new RuntimeException(GL20.glGetShaderInfoLog(rVal.fragmentShader)));
} }
//This creates a shader program opengl object and assigns its 'pointer' to the integer shaderProgram //This creates a shader program opengl object and assigns its 'pointer' to the integer shaderProgram
rVal.shaderId = glCreateProgram(); rVal.shaderId = GL40.glCreateProgram();
//This attaches the vertex and fragment shaders to the program //This attaches the vertex and fragment shaders to the program
glAttachShader(rVal.shaderId, rVal.vertexShader); glAttachShader(rVal.shaderId, rVal.vertexShader);
glAttachShader(rVal.shaderId, rVal.geometryShader); glAttachShader(rVal.shaderId, rVal.geometryShader);
@ -719,13 +720,27 @@ public class ShaderProgram {
* @param value The value to set the uniform to * @param value The value to set the uniform to
*/ */
public void setUniform(OpenGLState openGLState, String uniformName, Object value){ public void setUniform(OpenGLState openGLState, String uniformName, Object value){
//
//Error checking
if(uniformName == null || uniformName.equals("")){ if(uniformName == null || uniformName.equals("")){
throw new IllegalArgumentException("Trying to set invalid uniform name"); throw new IllegalArgumentException("Trying to set invalid uniform name");
} }
if(this.getShaderId() != openGLState.getActiveShader().getShaderId()){
throw new IllegalStateException("Trying to set uniform on shader that is not active");
}
//
//get uniform location
int uniformLocation = GL40.glGetUniformLocation(this.getShaderId(), uniformName); int uniformLocation = GL40.glGetUniformLocation(this.getShaderId(), uniformName);
if(Globals.renderingEngine.checkError()){ int glErrorCode = Globals.renderingEngine.getError();
//TODO: fix manually ignoring GL_INVALID_VALUE from call
if(glErrorCode != 0 && glErrorCode != GL40.GL_INVALID_VALUE){
LoggerInterface.loggerRenderer.DEBUG_LOOP(RenderingEngine.getErrorInEnglish(glErrorCode));
LoggerInterface.loggerRenderer.WARNING("Shader id: " + this.getShaderId()); LoggerInterface.loggerRenderer.WARNING("Shader id: " + this.getShaderId());
} }
//
//set the uniform
if(uniformLocation == INVALID_UNIFORM_NAME){ if(uniformLocation == INVALID_UNIFORM_NAME){
LoggerInterface.loggerRenderer.DEBUG_LOOP("Searched for uniform in a shader that does not contain it. Uniform name: \"" + uniformName + "\""); LoggerInterface.loggerRenderer.DEBUG_LOOP("Searched for uniform in a shader that does not contain it. Uniform name: \"" + uniformName + "\"");
} else { } else {