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