diff --git a/src/mol-gl/webgl/render-item.ts b/src/mol-gl/webgl/render-item.ts index 721d4720e9147509950284e433bbe79a59c473d8..a9a8244b0571a8877afbb116b711e18902fcbe36 100644 --- a/src/mol-gl/webgl/render-item.ts +++ b/src/mol-gl/webgl/render-item.ts @@ -117,9 +117,11 @@ export function createRenderItem(ctx: Context, drawMode: DrawMode, shaderCode: S program.setUniforms(uniformValues) if (oesVertexArrayObject && vertexArray) { oesVertexArrayObject.bindVertexArrayOES(vertexArray) + // TODO need to bind elements buffer explicitely since it is not always recorded in the VAO + if (elementsBuffer) elementsBuffer.bind() } else { - program.bindAttributes(attributeBuffers) if (elementsBuffer) elementsBuffer.bind() + program.bindAttributes(attributeBuffers) } program.bindTextures(textures) if (elementsBuffer) { diff --git a/src/mol-gl/webgl/vertex-array.ts b/src/mol-gl/webgl/vertex-array.ts index eef6217aa50859de5b7cb7d86c440724dce539fc..aaf92f2754036dca4b0e5cbb89f13e5e6b748d9a 100644 --- a/src/mol-gl/webgl/vertex-array.ts +++ b/src/mol-gl/webgl/vertex-array.ts @@ -14,8 +14,8 @@ export function createVertexArray(ctx: Context, program: Program, attributeBuffe if (oesVertexArrayObject) { vertexArray = oesVertexArrayObject.createVertexArrayOES() oesVertexArrayObject.bindVertexArrayOES(vertexArray) - program.bindAttributes(attributeBuffers) if (elementsBuffer) elementsBuffer.bind() + program.bindAttributes(attributeBuffers) ctx.vaoCount += 1 oesVertexArrayObject.bindVertexArrayOES(null!) }