bindInputTextures(program, inputs, k) {
    const gl = this.context

    inputs.forEach(({ input, name }, i) => {
      gl.activeTexture(gl.TEXTURE0 + i)
      if (input.glTextureFragments) {
        if (input.glTextureFragmentsAsColStack) {
          const { textureTarget } = this.getWebGLTextureOptions(input.glTextureType, input.glTextureFormat)
          gl.bindTexture(textureTarget, input.glTextureFragmentsAsColStack)
        } else {
          const { textureTarget } = this.getWebGLTextureOptions(input.glTextureType, input.glTextureFormat)
          gl.bindTexture(textureTarget, input.glTextureFragments[k])
        }
      } else {
        const { textureTarget } = this.getWebGLTextureOptions(input.glTextureType, input.glTextureFormat)
        gl.bindTexture(textureTarget, input.glTexture)
      }
      gl.uniform1i(gl.getUniformLocation(program, name), i)
    })
  }
Bind input textures within program, handling inputs that are fragmented

@param {WebGLProgram} program
@param {Object[]} inputs
@param {number} [k]