之前一直理解的是一个program有自己的slot
但是实际不是这样的,slot是全局的,且有max 暂时考虑max=16
意味着同时active最多16个图
于是用法应该是这样的,初始化的时候
gl.useProgram(program);
gl.activeTexture(gl.TEXTURE0 + textureID);
gl.bindTexture(gl.TEXTURE_2D, data);
const addr = gl.getUniformLocation(program, key);
gl.uniform1i(addr, textureID++);
激活纹理,绑上数据,然后和shader中的变量连接上
在DC的时候,先绑定program
仅仅需要activeTexture(ID),然后bind数据
就可以drawArray了
uniform1i只需要初始化一次
也就是说一个材质可以上16个图,那一般来说够了