本文整理汇总了C++中QOpenGLShaderProgram::isLinked方法的典型用法代码示例。如果您正苦于以下问题:C++ QOpenGLShaderProgram::isLinked方法的具体用法?C++ QOpenGLShaderProgram::isLinked怎么用?C++ QOpenGLShaderProgram::isLinked使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QOpenGLShaderProgram
的用法示例。
在下文中一共展示了QOpenGLShaderProgram::isLinked方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: draw
void AssimpScene::draw(
OpenGLFunctions & gl
, QOpenGLShaderProgram & program
, const GLenum mode)
{
if (!m_valid)
return;
if (!program.isLinked())
return;
std::vector<AssimpMesh *>::const_iterator i = m_meshes.begin();
const std::vector<AssimpMesh *>::const_iterator iEnd = m_meshes.end();
program.bind();
program.setUniformValue("model", m_transform * m_normalize);
for (; i != iEnd; ++i)
{
AssimpMesh * mesh(*i);
program.setUniformValue("diffuse", mesh->material.diffuse);
program.setUniformValue("ambient", mesh->material.ambient);
program.setUniformValue("specular", mesh->material.specular);
program.setUniformValue("emissive", mesh->material.emissive);
program.setUniformValue("shininess", mesh->material.shininess);
program.setUniformValue("texCount", mesh->material.texCount);
if (mesh->material.texCount > 0)
{
program.setUniformValue("difftex", 0);
gl.glActiveTexture(GL_TEXTURE0);
gl.glBindTexture(GL_TEXTURE_2D, mesh->material.texture);
}
mesh->vao.bind();
gl.glDrawElements(mode, mesh->faces * 3, GL_UNSIGNED_INT, nullptr);
mesh->vao.release();
if (mesh->material.texCount > 0)
gl.glBindTexture(GL_TEXTURE_2D, 0);
}
program.release();
}