Bladeren bron

bind elements buffer explicitely as it is not always recorded in the VAO

Alexander Rose 6 jaren geleden
bovenliggende
commit
30e57ba066
2 gewijzigde bestanden met toevoegingen van 4 en 2 verwijderingen
  1. 3 1
      src/mol-gl/webgl/render-item.ts
  2. 1 1
      src/mol-gl/webgl/vertex-array.ts

+ 3 - 1
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) {

+ 1 - 1
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!)
     }