PHP 7.4.33
Preview: WebGLRenderStates.js Size: 1.63 KB
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/three/src/renderers/webgl/WebGLRenderStates.js
import { WebGLLights } from './WebGLLights.js';

function WebGLRenderState( extensions ) {

	const lights = new WebGLLights( extensions );

	const lightsArray = [];
	const shadowsArray = [];

	function init( camera ) {

		state.camera = camera;

		lightsArray.length = 0;
		shadowsArray.length = 0;

	}

	function pushLight( light ) {

		lightsArray.push( light );

	}

	function pushShadow( shadowLight ) {

		shadowsArray.push( shadowLight );

	}

	function setupLights() {

		lights.setup( lightsArray );

	}

	function setupLightsView( camera ) {

		lights.setupView( lightsArray, camera );

	}

	const state = {
		lightsArray: lightsArray,
		shadowsArray: shadowsArray,

		camera: null,

		lights: lights,

		transmissionRenderTarget: {}
	};

	return {
		init: init,
		state: state,
		setupLights: setupLights,
		setupLightsView: setupLightsView,

		pushLight: pushLight,
		pushShadow: pushShadow
	};

}

function WebGLRenderStates( extensions ) {

	let renderStates = new WeakMap();

	function get( scene, renderCallDepth = 0 ) {

		const renderStateArray = renderStates.get( scene );
		let renderState;

		if ( renderStateArray === undefined ) {

			renderState = new WebGLRenderState( extensions );
			renderStates.set( scene, [ renderState ] );

		} else {

			if ( renderCallDepth >= renderStateArray.length ) {

				renderState = new WebGLRenderState( extensions );
				renderStateArray.push( renderState );

			} else {

				renderState = renderStateArray[ renderCallDepth ];

			}

		}

		return renderState;

	}

	function dispose() {

		renderStates = new WeakMap();

	}

	return {
		get: get,
		dispose: dispose
	};

}


export { WebGLRenderStates };

Directory Contents

Dirs: 0 × Files: 30
Name Size Perms Modified Actions
767 B lrw-r--r-- 2025-03-28 11:04:39
Edit Download
4.86 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
7.57 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
12.14 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.61 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
3.70 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
3.29 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.86 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
2.87 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.87 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
3.33 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.86 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.00 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
12.91 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
13.66 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
4.46 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.54 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
30.46 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
20.88 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
639 B lrw-r--r-- 2025-03-28 11:04:39
Edit Download
3.96 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.63 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
196 B lrw-r--r-- 2025-03-28 11:04:39
Edit Download
1.93 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
11.32 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
25.73 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
60.56 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
20.31 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
8.39 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
9.39 KB lrw-r--r-- 2025-03-28 11:04:39
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).