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