dispose method

void dispose()

Implementation

void dispose() {
  if(_didDispose) return;
  _didDispose = true;
  state.reset();
  attributes.dispose();
  renderLists.dispose();
  renderStates.dispose();
  cubemaps.dispose();
  cubeuvmaps.dispose();
  bindingStates.dispose();
  programCache.dispose();

  currentRenderList?.dispose();
  for(final stack in renderListStack){
    stack.dispose();
  }
  renderListStack.clear();
  for(final stack in renderStateStack){
    stack.dispose();
  }

  renderStateStack.clear();
  debug.clear();

  _currentCamera?.clear();
  _frustum.dispose();
  _emptyScene.dispose();

  extensions.dispose();
  capabilities.dispose();
  clipping.dispose();
  utils.dispose();

  state.dispose();
  materials.dispose();
  objects.dispose();
  morphtargets.dispose();
  indexedBufferRenderer.dispose();
  background.dispose();
  textures.dispose();
  geometries.dispose();
  shadowMap.dispose();

  properties.dispose();

  _gl.deleteFramebuffer(_scratchFrameBuffer);
  _gl.deleteFramebuffer(_srcFramebuffer);
  _gl.deleteFramebuffer(_dstFramebuffer);
}