OpenGL将着色器附加到程序

OpenGL将着色器附加到程序,opengl,glsl,Opengl,Glsl,是否有方法访问附加到程序的着色器?也就是说,给定一个程序,我可以做如下操作: vertexShader = getVertexShaderFromProgram(program); (我想在验证程序的函数中记录着色器编译状态,但我只保留对程序的引用,而不保留着色器。) 获取附加到给定程序对象的着色器的名称 获取着色器的类型(顶点、几何体、片段) 在每个着色器名称上,计算源的长度 获取每个附加着色器的源字符串 编辑:如果只需要着色器名称和类型,则可以在步骤2后停止。如果着色器对象已被删除,会发生

是否有方法访问附加到程序的着色器?也就是说,给定一个程序,我可以做如下操作:

vertexShader = getVertexShaderFromProgram(program);
(我想在验证程序的函数中记录着色器编译状态,但我只保留对程序的引用,而不保留着色器。)

  • 获取附加到给定程序对象的着色器的名称

  • 获取着色器的类型(顶点、几何体、片段)

  • 在每个着色器名称上,计算源的长度

  • 获取每个附加着色器的源字符串


  • 编辑:如果只需要着色器名称和类型,则可以在步骤2后停止。

    如果着色器对象已被删除,会发生什么情况?