123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /**
- * @author Mugen87 / https://github.com/Mugen87
- */
- import { WebGLLights } from './WebGLLights.js';
- function WebGLRenderState() {
- var lights = new WebGLLights();
- var lightsArray = [];
- var shadowsArray = [];
- function init() {
- lightsArray.length = 0;
- shadowsArray.length = 0;
- }
- function pushLight( light ) {
- lightsArray.push( light );
- }
- function pushShadow( shadowLight ) {
- shadowsArray.push( shadowLight );
- }
- function setupLights( camera ) {
- lights.setup( lightsArray, shadowsArray, camera );
- }
- var state = {
- lightsArray: lightsArray,
- shadowsArray: shadowsArray,
- lights: lights
- };
- return {
- init: init,
- state: state,
- setupLights: setupLights,
- pushLight: pushLight,
- pushShadow: pushShadow
- };
- }
- function WebGLRenderStates() {
- var renderStates = {};
- function get( scene, camera ) {
- var renderState;
- if ( renderStates[ scene.id ] === undefined ) {
- renderState = new WebGLRenderState();
- renderStates[ scene.id ] = {};
- renderStates[ scene.id ][ camera.id ] = renderState;
- } else {
- if ( renderStates[ scene.id ][ camera.id ] === undefined ) {
- renderState = new WebGLRenderState();
- renderStates[ scene.id ][ camera.id ] = renderState;
- } else {
- renderState = renderStates[ scene.id ][ camera.id ];
- }
- }
- return renderState;
- }
- function dispose() {
- renderStates = {};
- }
- return {
- get: get,
- dispose: dispose
- };
- }
- export { WebGLRenderStates };
|