Como dice el título tengo una aplicación WebGL. Estoy haciendo uso de drawArrays de tal manera
gl.drawArrays(gl.LINES, 0, 44);Pero parece que me estoy encontrando con un problema en el que si trato de dibujar más de 44 puntos, aparece el siguiente error
[.WebGL-0x7000c6e700] GL_INVALID_OPERATION: Vertex buffer is not big enough for the draw callY he verificado para asegurarme de que tengo suficiente espacio en el búfer, incluso codificando los valores, sucede en cualquier navegador en el que esté.
Creo que el problema es mi computadora portátil (M1 MacBook Pro), ya que cuando muevo el código a mi escritorio de Windows, funciona bien.
// editar En cuanto a un ejemplo de código
// points is an array of 46 points ie [[0,0,1,1],....] let wBuffer = gl.createBuffer(); gl.bindBuffer(gl.ARRAY_BUFFER, wBuffer); gl.bufferData(gl.ARRAY_BUFFER, flatten(points), gl.STATIC_DRAW); let vPosition = gl.getAttribLocation(program, "vPosition"); gl.vertexAttribPointer(vPosition, 4, gl.FLOAT, false, 0, 0); gl.enableVertexAttribArray(vPosition); gl.drawArrays(gl.LINES, 0, 46);No estoy seguro de los detalles específicos de por qué esto funciona, pero al desactivar la aceleración de hardware en mi navegador se solucionó.