initGLContext method

void initGLContext()

Implementation

void initGLContext() {
  _scratchFrameBuffer = _gl.createFramebuffer();
  _srcFramebuffer = _gl.createFramebuffer();
	  _dstFramebuffer = _gl.createFramebuffer();

  extensions = AngleExtensions(_gl);
  extensions.init();
  utils = AngleUtils(extensions);

  capabilities = AngleCapabilities(_gl, extensions, parameters, utils);
  state = AngleState(_gl,extensions);

  if ( (capabilities as AngleCapabilities).reverseDepthBuffer && reverseDepthBuffer ) {
    state.buffers['depth'].setReversed( true );
  }

  info = AngleInfo(_gl);
  properties = AngleProperties();
  textures = AngleTextures(_gl, extensions, state as AngleState, properties, capabilities as AngleCapabilities, utils, info);
  cubemaps = AngleCubeMaps(this);
  cubeuvmaps = AngleCubeUVMaps(this);
  attributes = AngleAttributes(_gl);
  bindingStates = AngleBindingStates(_gl, attributes);
  geometries = AngleGeometries(_gl, attributes, info, bindingStates);
  objects = AngleObjects(_gl, geometries, attributes, info);
  morphtargets = AngleMorphtargets(_gl, capabilities as AngleCapabilities, textures);
  clipping = AngleClipping(properties);
  programCache = AnglePrograms(this, cubemaps, cubeuvmaps, extensions, capabilities as AngleCapabilities, bindingStates, clipping);
  materials = AngleMaterials(this, properties);
  renderLists = AngleRenderLists();
  renderStates = AngleRenderStates(extensions);
  background = AngleBackground(this, cubemaps, cubeuvmaps, state as AngleState, objects, alpha, premultipliedAlpha);
  shadowMap = AngleShadowMap(this, objects, capabilities as AngleCapabilities);
  uniformsGroups = AngleUniformsGroups( _gl, info, capabilities as AngleCapabilities, state as AngleState );

  bufferRenderer = AngleBufferRenderer(_gl, extensions, info);
  indexedBufferRenderer = AngleIndexedBufferRenderer(_gl, extensions, info);

  info.programs = programCache.programs;

  xr = _setXR?.call(this,gl) ?? XRManager(this, _gl);
  xr.init();
		xr.addEventListener( 'sessionstart', onXRSessionStart );
		xr.addEventListener( 'sessionend', onXRSessionEnd );
}