start method

Starts the renderer and loads the scene's assets.

Implementation

Future<DV3DDegradation> start() async {
  if (_disposed) return _degradation;
  if (!_enabled) return _degrade(DV3DDegradation.disabledByConfig);
  final DVSceneRenderer? renderer = _renderer;
  if (renderer == null) return _degrade(DV3DDegradation.unsupportedTarget);
  DV3DDegradation initial;
  try {
    initial = await renderer.initialize();
  } on Object catch (error) {
    _initialized = true;
    return _degrade(DV3DDegradation.gpuInitFailed, error: error);
  }
  _initialized = true;
  if (_disposed) return _degradation;
  if (initial != DV3DDegradation.none) return _degrade(initial);
  return _sync(_document);
}