public void draw()

in app/src/main/java/com/facebook/sample/rendering/SampleGLTFRenderer.java [192:225]


    public void draw(float[] cameraView, float[] cameraPerspective) {
        GLHelpers.checkGlError("Before draw");

        Matrix.multiplyMM(modelViewMatrix, 0, cameraView, 0, modelMatrix, 0);
        Matrix.multiplyMM(modelViewProjectionMatrix, 0, cameraPerspective, 0, modelViewMatrix, 0);

        GLES20.glUseProgram(shaderProgram.getShaderHandle());

        GLES20.glUniformMatrix4fv(modelViewProjectionUniform, 1, false, modelViewProjectionMatrix, 0);

        for (int i = 0; i < gltfRenderObjects.size(); ++i) {
            GLTFRenderObject renderObject = gltfRenderObjects.get(i);

            GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, renderObject.vertexBufferId);

            int verticesBaseAddress = 0;

            GLES20.glVertexAttribPointer(
                    positionAttribute, COORDS_PER_VERTEX, GLES20.GL_FLOAT, false, 0, verticesBaseAddress);

            GLES20.glBindBuffer(GLES20.GL_ARRAY_BUFFER, 0);

            GLES20.glEnableVertexAttribArray(positionAttribute);

            GLES20.glBindBuffer(GLES20.GL_ELEMENT_ARRAY_BUFFER, renderObject.indexBufferId);
            int numElements = renderObject.indexByteLength / BYTES_PER_SHORT;
            GLES20.glDrawElements(GLES20.GL_TRIANGLES, numElements, GLES20.GL_UNSIGNED_SHORT, 0);
            GLES20.glBindBuffer(GLES20.GL_ELEMENT_ARRAY_BUFFER, 0);

            GLES20.glDisableVertexAttribArray(positionAttribute);
        }

        GLHelpers.checkGlError("After draw");
    }