# HG changeset patch # User Sebastien Jodogne # Date 1675235091 -3600 # Node ID c6263f514f54f0cd5b23dc16254be1ae44eda9e0 # Parent e0906b7c67b95d52a014c6903a281e0e4feaee46 allow warnings while creating shaders diff -r e0906b7c67b9 -r c6263f514f54 OrthancStone/Sources/OpenGL/OpenGLShader.cpp --- a/OrthancStone/Sources/OpenGL/OpenGLShader.cpp Sat Jan 28 15:48:01 2023 +0100 +++ b/OrthancStone/Sources/OpenGL/OpenGLShader.cpp Wed Feb 01 08:04:51 2023 +0100 @@ -55,6 +55,8 @@ glCompileShader(shader); ORTHANC_OPENGL_CHECK("glCompileShader"); + GLenum error = glGetError(); + // Check if there were errors int infoLen = 0; glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); @@ -65,18 +67,24 @@ std::string infoLog; infoLog.resize(infoLen + 1); glGetShaderInfoLog(shader, infoLen, NULL, &infoLog[0]); - ORTHANC_OPENGL_CHECK("glGetShaderInfoLog"); - ORTHANC_OPENGL_TRACE_CURRENT_CONTEXT("About to call glDeleteShader"); - glDeleteShader(shader); - ORTHANC_OPENGL_CHECK("glDeleteShader"); - throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError, - "Error while creating an OpenGL shader: " + infoLog); + if (error) + { + ORTHANC_OPENGL_CHECK("glGetShaderInfoLog"); + ORTHANC_OPENGL_TRACE_CURRENT_CONTEXT("About to call glDeleteShader"); + glDeleteShader(shader); + ORTHANC_OPENGL_CHECK("glDeleteShader"); + + throw Orthanc::OrthancException(Orthanc::ErrorCode_InternalError, + "Error while creating an OpenGL shader: " + infoLog); + } + else + { + LOG(WARNING) << "Warning while creating an OpenGL shader: " << infoLog; + } } - else - { - return shader; - } + + return shader; } }