void OGLShader::dumpInfoLog(GLuint hObj, long level, bool bIsProgram) { int infoLogLength; GLchar * pInfoLog; if (!hObj) { return; } if (bIsProgram) { glproc::GetProgramiv(hObj, GL_INFO_LOG_LENGTH, &infoLogLength); } else { glproc::GetShaderiv(hObj, GL_INFO_LOG_LENGTH, &infoLogLength); } GLContext::checkError("OGLShader::dumpInfoLog: glGetShaderiv()"); if (infoLogLength > 1) { pInfoLog = (GLchar*)malloc(infoLogLength); int charsWritten; if (bIsProgram) { glproc::GetProgramInfoLog(hObj, infoLogLength, &charsWritten, pInfoLog); } else { glproc::GetShaderInfoLog(hObj, infoLogLength, &charsWritten, pInfoLog); } string sLog = removeATIInfoLogSpam(pInfoLog); GLContext::checkError("OGLShader::dumpInfoLog: glGetShaderInfoLog()"); if (sLog.size() > 3) { AVG_TRACE(Logger::category::SHADER, level, sLog); } free(pInfoLog); } }
void OGLShader::dumpInfoLog(GLhandleARB hObj) { int InfoLogLength; GLcharARB * pInfoLog; glproc::GetObjectParameteriv(hObj, GL_OBJECT_INFO_LOG_LENGTH_ARB, &InfoLogLength); GLContext::getCurrent()->checkError( "OGLShader::dumpInfoLog: glGetObjectParameteriv()"); if (InfoLogLength > 1) { pInfoLog = (GLcharARB*)malloc(InfoLogLength); int CharsWritten; glproc::GetInfoLog(hObj, InfoLogLength, &CharsWritten, pInfoLog); string sLog = removeATIInfoLogSpam(pInfoLog); GLContext::getCurrent()->checkError("OGLShader::dumpInfoLog: glGetInfoLog()"); AVG_TRACE(Logger::WARNING, sLog); free(pInfoLog); } }