美文网首页
Opengl相关API

Opengl相关API

作者: _RG | 来源:发表于2020-05-07 16:43 被阅读0次

    创建VertexShadere与FragmentShader

    创建一个对象,作为shader(着色器)的容器,该函数会返一个容器的句柄,函数原型中的参数shaderType有两种类型,当要创建VertexShader时,开发者应该传入类型GL_VERTEX_SHADER;当要创建FragmentShader时,开发者应该传入GL_FRAGMENT_SHADER类型

    GLuint glCreateShader(GLenum shaderType);

    为创建的这个shader(着色器)添加源代码,把开发者编写的着色器程序加载到着色器句柄所关联的内存中
    void glShaderSource(GLuint shader, int numOfStrings, const char **strings, int *lenOfStrings)

    编译该Shader
    void glCompileShader(GLuint shader);

    验证该Shader是否编译成功了,当返回值为1时,则说明该Shader是编译成功
    void glGetShaderiv (GLuint shader, GLenum pname, GLint* params);

    如果编译没有成功,那么开发者肯定需要知道到底是着色器代码中的哪一行出了问题
    void glGetShaderInfoLog(GLuint object, int maxLen, int *len, char *log);

    通过这两个Shader来创建Program(显卡可执行程序)

    首先创建一个对象,作为程序的容器,此函数将返回容器的句柄
    GLuint glCreateProgram(void)

    将把前文编译的Shader附加到刚刚创建的程序中
    void glAttachShader(GLuint program, GLuint shader);

    链接程序
    void glLinkProgram(GLuint program);

    检查是否链接成功,查看该程序的状态
    glGetProgramiv (GLuint program, GLenum pname, GLint* params);

    链接错误,打印链接错误信息
    void glGetProgramInfoLog(GLuint object, int maxLen, int *len, char *log);

    相关文章

      网友评论

          本文标题:Opengl相关API

          本文链接:https://www.haomeiwen.com/subject/xcwoghtx.html