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");
}