mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 16:40:05 +00:00
Shader warnings
This commit is contained in:
parent
289ed430c7
commit
f21523d88b
1 changed files with 28 additions and 10 deletions
|
|
@ -11,6 +11,8 @@ namespace qt
|
|||
|
||||
static const std::string logPrefix_ = "[scwx::qt::util::shader_program] ";
|
||||
|
||||
static constexpr GLsizei INFO_LOG_BUF_SIZE = 512;
|
||||
|
||||
class ShaderProgramImpl
|
||||
{
|
||||
public:
|
||||
|
|
@ -49,12 +51,15 @@ GLuint ShaderProgram::id() const
|
|||
bool ShaderProgram::Load(const std::string& vertexPath,
|
||||
const std::string& fragmentPath)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(debug) << logPrefix_ << "Load()";
|
||||
BOOST_LOG_TRIVIAL(debug) << logPrefix_ << "Load(\"" << vertexPath << "\", \""
|
||||
<< fragmentPath << "\")";
|
||||
|
||||
OpenGLFunctions& gl = p->gl_;
|
||||
|
||||
GLint glSuccess;
|
||||
bool success = true;
|
||||
GLint glSuccess;
|
||||
bool success = true;
|
||||
char infoLog[INFO_LOG_BUF_SIZE];
|
||||
GLsizei logLength;
|
||||
|
||||
QFile vertexFile(vertexPath.c_str());
|
||||
QFile fragmentFile(fragmentPath.c_str());
|
||||
|
|
@ -98,14 +103,18 @@ bool ShaderProgram::Load(const std::string& vertexPath,
|
|||
|
||||
// Check for errors
|
||||
gl.glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &glSuccess);
|
||||
gl.glGetShaderInfoLog(vertexShader, INFO_LOG_BUF_SIZE, &logLength, infoLog);
|
||||
if (!glSuccess)
|
||||
{
|
||||
char infoLog[512];
|
||||
gl.glGetShaderInfoLog(vertexShader, 512, NULL, infoLog);
|
||||
BOOST_LOG_TRIVIAL(error)
|
||||
<< logPrefix_ << "Vertex shader compilation failed";
|
||||
<< logPrefix_ << "Vertex shader compilation failed: " << infoLog;
|
||||
success = false;
|
||||
}
|
||||
else if (logLength > 0)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(error)
|
||||
<< logPrefix_ << "Vertex shader compiled with warnings: " << infoLog;
|
||||
}
|
||||
|
||||
// Create a fragment shader
|
||||
GLuint fragmentShader = gl.glCreateShader(GL_FRAGMENT_SHADER);
|
||||
|
|
@ -116,14 +125,19 @@ bool ShaderProgram::Load(const std::string& vertexPath,
|
|||
|
||||
// Check for errors
|
||||
gl.glGetShaderiv(fragmentShader, GL_COMPILE_STATUS, &glSuccess);
|
||||
gl.glGetShaderInfoLog(
|
||||
fragmentShader, INFO_LOG_BUF_SIZE, &logLength, infoLog);
|
||||
if (!glSuccess)
|
||||
{
|
||||
char infoLog[512];
|
||||
gl.glGetShaderInfoLog(fragmentShader, 512, NULL, infoLog);
|
||||
BOOST_LOG_TRIVIAL(error)
|
||||
<< logPrefix_ << "Fragment shader compilation failed: " << infoLog;
|
||||
success = false;
|
||||
}
|
||||
else if (logLength > 0)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(error)
|
||||
<< logPrefix_ << "Fragment shader compiled with warnings: " << infoLog;
|
||||
}
|
||||
|
||||
if (success)
|
||||
{
|
||||
|
|
@ -133,14 +147,18 @@ bool ShaderProgram::Load(const std::string& vertexPath,
|
|||
|
||||
// Check for errors
|
||||
gl.glGetProgramiv(p->id_, GL_LINK_STATUS, &glSuccess);
|
||||
gl.glGetProgramInfoLog(p->id_, INFO_LOG_BUF_SIZE, &logLength, infoLog);
|
||||
if (!glSuccess)
|
||||
{
|
||||
char infoLog[512];
|
||||
gl.glGetProgramInfoLog(p->id_, 512, NULL, infoLog);
|
||||
BOOST_LOG_TRIVIAL(error)
|
||||
<< logPrefix_ << "Shader program link failed: " << infoLog;
|
||||
success = false;
|
||||
}
|
||||
else if (logLength > 0)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(error)
|
||||
<< logPrefix_ << "Shader program linked with warnings: " << infoLog;
|
||||
}
|
||||
}
|
||||
|
||||
// Delete shaders
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue