首页 > 解决方案 > 如何从程序中获取顶点着色器

问题描述

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

谢谢

标签: webgl

解决方案


参见WebGL 规范;5.13.9 程序和着色器

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


推荐阅读