OpenGL Shader附加到程序

时间:2013-03-21 00:36:05

标签: opengl glsl

有没有办法访问附加到程序的着色器?也就是说,给定一个程序,我可以这样做:

vertexShader = getVertexShaderFromProgram(program);

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

1 个答案:

答案 0 :(得分:8)

  1. glGetAttachedShaders()获取附加到给定程序对象的着色器的名称。

  2. glGetShaderiv( ..., GL_SHADER_TYPE, ... )获取着色器的类型(顶点,几何体,片段)。

  3. 每个着色器名称上的
  4. glGetShaderiv( ..., GL_SHADER_SOURCE_LENGTH, ... )以确定源的持续时间。

  5. glGetShaderSource()获取每个附加着色器的源字符串。

  6. 编辑:如果你需要的只是着色器名称&您可以在第2步之后停止的类型。