当前位置: 首页>>代码示例>>C++>>正文


C++ GLShader::getProgramId方法代码示例

本文整理汇总了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);
    }
开发者ID:NolaDonato,项目名称:GearVRf,代码行数:40,代码来源:gl_render_data.cpp


注:本文中的GLShader::getProgramId方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。