可以在任何时候attach一个shader到program对象,不一定非要在指定source和编译以后,具体的描述如下:

Once you have a program object created, the next step is to attach shaders to it. In OpenGL ES 3.0, each program object needs to have one vertex shader and one fragment shader object attached to it. To attach shaders to a program, you use glAttachShader.

void glAttachShader(GLuint program, GLuint shader)

program handle to the program object

shader handle to the shader object to attach to the program

 

This function attaches the shader to the given program. Note that a shader can be attached at any point—it does not necessarily need to be compiled or even have source code before being attached to a program. The only requirement is that every program object must have one and only one vertex shader and fragment shader object attached to it. In addition to attaching shaders, you can detach shaders using glDetachShader.

posted on 2017-09-25 16:55  今夜太冷  阅读(270)  评论(0编辑  收藏  举报