本文整理汇总了C++中IRenderable::ComponentsForTag方法的典型用法代码示例。如果您正苦于以下问题:C++ IRenderable::ComponentsForTag方法的具体用法?C++ IRenderable::ComponentsForTag怎么用?C++ IRenderable::ComponentsForTag使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IRenderable
的用法示例。
在下文中一共展示了IRenderable::ComponentsForTag方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: renderObject
void renderObject(IRenderable& object, glm::mat4 mvp, uint32_t matrix)
{
auto mesh = dynamic_cast<MeshComponent*>(&object.ComponentsForTag(MeshComponent::TAG)[0]);
auto transform = dynamic_cast<TransformComponent*>(&object.ComponentsForTag(TransformComponent::TAG)[0]);
auto vbuffer = dynamic_cast<GLVertexBuffer*>(mesh->vertexBuffer.get());
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, vbuffer->vbo);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);
glEnableVertexAttribArray(1);
glBindBuffer(GL_ARRAY_BUFFER, vbuffer->cbo);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);
glUniformMatrix4fv(matrix, 1, GL_FALSE, &mvp[0][0]);
glDrawArrays(GL_TRIANGLES, 0, 12 * 3);
glDisableVertexAttribArray(0);
glDisableVertexAttribArray(1);
for (IRenderable child : object.children.begin)
{
renderObject(child, mvp, matrix);
}
}