![在这里插入图片描述](https://img-blog.csdnimg.cn/20200603212820382.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpbmpmNTIw,size_16,color_FFFFFF,t_70)
https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glCreateProgram.xhtml
名称
glCreateProgram ---- 创建着色器程序对象。
原型
GLuint glCreateProgram(void);
描述
glCreateProgram 创建一个空的着色器程序对象,并返回一个可用于引用的非0值。着色器程序对象是用于附加着色器对象的。提供机制将指定 着色器对象 链接 到创建的 着色器程序。也提供检测用于创建着色器程序的 shader 兼容性(例如,检测 顶点着色器 与 片元着色器 的兼容性)。当不在需要着色器程序中部分对象,可以解除附加这些着色器对象。
一个或多个可执行着色器通过 glAttachShader 附加到程序对象来创建,通过 glComileShader 成功编译的 shader 对象,通过 glLinkProgram 成功链接到一个程序对象。通过调用 glUseProgram 将这些可执行的对象组成了当前的状态。程序对象可以通过 glDeleteProgram 来删除。当他不再是当前上下文渲染状态后对象的程序内存将被删除。
注意
像 buffer 和 texture 对象,他们的name space 命名空间都可以在上下文集合中共享使用,就像是上下文中的服务端共享了相同的地址空间。如果 name space 命名空间共享于上下文之间,那么所有附加的对象和附加对象的数据都是共享的。
应用程序负责提供API来同步对象的执行,在不同线程中的访问。
错误
如果创建着色器程序对象发生了错误,那么函数返回 0。