本文整理汇总了C++中GLShader::getProgramId方法的典型用法代码示例。如果您正苦于以下问题:C++ GLShader::getProgramId方法的具体用法?C++ GLShader::getProgramId怎么用?C++ GLShader::getProgramId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GLShader
的用法示例。
在下文中一共展示了GLShader::getProgramId方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: render
void GLRenderData::render(Shader* shader, Renderer* renderer)
{
GLShader* glshader = static_cast<GLShader*>(shader);
int programId = glshader->getProgramId();
int indexCount = mesh_->getIndexCount();
int vertexCount = mesh_->getVertexCount();
int mode = draw_mode();
#ifdef DEBUG_SHADER
LOGV("SHADER: RenderData::render binding vertex arrays to program %d %p %d vertices, %d indices",
programId, this, vertexCount, indexCount);
#endif
if (shader->hasBones())
{
Skin* skin = (Skin*) owner_object()->getComponent(Skin::getComponentType());
if (skin)
{
skin->bindBuffer(renderer, shader);
}
}
mesh_->getVertexBuffer()->bindToShader(shader, mesh_->getIndexBuffer());
checkGLError("renderMesh::mesh_->getVertexBuffer()->bindToShader(");
switch (mesh_->getIndexSize())
{
case 2:
glDrawElements(mode, indexCount, GL_UNSIGNED_SHORT, 0);
break;
case 4:
glDrawElements(mode, indexCount, GL_UNSIGNED_INT, 0);
break;
default:
glDrawArrays(mode, 0, vertexCount);
break;
}
checkGLError(" RenderData::render after draw");
glBindVertexArray(0);
}