[英]Qt: QGLShaderProgram turn off log messages
調用QGLShaderProgram :: link()時,是否可以打開日志消息? http://qt-project.org/doc/qt-4.8/qglshaderprogram.html#link
消息看起來像:
QGLShader::link: "Vertex shader(s) linked, fragment shader(s) linked.
"
Qt代碼如下所示:src / opengl / qglshaderprogram.cpp:893
glLinkProgram(program);
value = 0;
glGetProgramiv(program, GL_LINK_STATUS, &value);
d->linked = (value != 0);
value = 0;
glGetProgramiv(program, GL_INFO_LOG_LENGTH, &value);
d->log = QString();
if (value > 1) {
char *logbuf = new char [value];
GLint len;
glGetProgramInfoLog(program, value, &len, logbuf);
d->log = QString::fromLatin1(logbuf);
QString name = objectName();
if (name.isEmpty())
qWarning() << "QGLShader::link:" << d->log;
else
qWarning() << "QGLShader::link[" << name << "]:" << d->log;
delete [] logbuf;
}
return d->linked;
}
因此,似乎唯一可行的解決方案是按照以下方法進行重定向qWarning(): 如何重定向qDebug,qWarning,qCritical等輸出?
qInstallMsgHandler([](QtMsgType , const char* ) { }); // empty message handler
bool result = program.link();
qInstallMsgHandler(0); // restore default message handling
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.