drawObjects method

void drawObjects(
  1. Scene scene,
  2. Camera camera
)

Implementation

void drawObjects(Scene scene, Camera camera) {
  for (var object in scene.children) {
    ProgramInfo programInfo = object.programInfo!;
    // Tell it to use our program (pair of shaders)
    // rememeber !!! for each model - object3d in the scene, some times is better
    // to use a seperate programe.
    gl.useProgram(programInfo.program);

    // Setup all the needed attributes.
    gl.bindVertexArray(object.vao);

    // Set the camera uniforms.
    Flutter3D.setUniforms(programInfo, camera.uniforms);

    // Set the object uniforms
    Flutter3D.setUniforms(programInfo, object.uniforms);

    // Set the object material related uniforms
    Flutter3D.setUniforms(programInfo, object.material.uniforms);

    if (object.geometry is EdgedBoxGeometry) {
      Flutter3D.drawBufferInfo(gl, object.geometry.bufferInfo, gl.LINES);
    } else {
      // calls gl.drawArrays or gl.drawElements
      Flutter3D.drawBufferInfo(gl, object.geometry.bufferInfo);
    }
  }
}