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


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

本文整理汇总了C++中GLShader::CreateProgramAndAttachShaders方法的典型用法代码示例。如果您正苦于以下问题:C++ GLShader::CreateProgramAndAttachShaders方法的具体用法?C++ GLShader::CreateProgramAndAttachShaders怎么用?C++ GLShader::CreateProgramAndAttachShaders使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GLShader的用法示例。


在下文中一共展示了GLShader::CreateProgramAndAttachShaders方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: InitProgramWithShaders

/**
 * Loads the vertex and fragment shader, compiles the program and returns a
 * new and ready for use GLShader* object.
 */
GLShader* GLShader::InitProgramWithShaders(const std::string& vertexShaderFile
                                         , const std::string& fragmentShaderFile)
{
    GLShader* shader = new GLShader();
    qui::VirtualFS fs;
    cpp0x::shared_ptr<char> vertexFile = fs.GetFileContentsAsText(vertexShaderFile);
    char *vertexShader = vertexFile.get();
    if (vertexShader == NULL)
    {
        LOG(FATAL) << "Vertex Shader wasn't loaded!";
    }

    GLuint vsh = qui::GLShader::LoadShader(GL_VERTEX_SHADER, vertexShader);
    cpp0x::shared_ptr<char> fragmentFile = fs.GetFileContentsAsText(fragmentShaderFile);
    char *fragmentShader = fragmentFile.get();
    if (fragmentShader == NULL)
    {
        LOG(FATAL) << "Fragment Shader wasn't loaded!";
    }
    GLuint fsh = qui::GLShader::LoadShader(GL_FRAGMENT_SHADER, fragmentShader);
    shader->SetVertexShader(vsh);
    shader->SetFragmentShader(fsh);
    shader->CreateProgramAndAttachShaders();
    shader->Compile();
    return shader;
}
开发者ID:amogos,项目名称:tests,代码行数:30,代码来源:GLShader.cpp


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