如何从程序中获取顶点着色器

时间:2018-08-16 21:17:31

标签: webgl

我可以使用Webgl api从程序(WebGlProgram)获得顶点着色器吗(仅)? 有一个gl.getAttachedShaders()给了我它们一个数组。有没有办法确定哪个是哪个?

谢谢

1 个答案:

答案 0 :(得分:2)

请参见WebGL Specification; 5.13.9 Programs and Shaders

  

any getShaderParameter(WebGLShader shader, GLenum pname)

     

根据已传递的着色器,返回所传递的pname的值。返回的类型是请求的pname的自然类型,如下表所示:

SHADER_TYPE     unsigned long
DELETE_STATUS   boolean
COMPILE_STATUS  boolean

使用gl.getShaderParameter(shader, gl.SHADER_TYPE)来确定shader返回的着色器对象gl.getAttachedShaders是顶点着色器还是片段着色器。可能的返回值为gl.VERTEX_SHADERgl.FRAGMENT_SHADER