Accueil / npm / three@0.172.0 / src / renderers / common / RenderBundles.js
RenderBundles.js
import ChainMap from './ChainMap.js';
import RenderBundle from './RenderBundle.js';
/**
* This renderer module manages render bundles.
*
* @private
*/
class RenderBundles {
/**
* Constructs a new render bundle management component.
*/
constructor() {
/**
* A chain map for maintaining the render bundles.
*
* @type {ChainMap}
*/
this.bundles = new ChainMap();
}
/**
* Returns a render bundle for the given bundle group and camera.
*
* @param {BundleGroup} bundleGroup - The bundle group.
* @param {Camera} camera - The camera the bundle group is rendered with.
* @return {RenderBundle} The render bundle.
*/
get( bundleGroup, camera ) {
const bundles = this.bundles;
const keys = [ bundleGroup, camera ];
let bundle = bundles.get( keys );
if ( bundle === undefined ) {
bundle = new RenderBundle( bundleGroup, camera );
bundles.set( keys, bundle );
}
return bundle;
}
/**
* Frees all internal resources.
*/
dispose() {
this.bundles = new ChainMap();
}
}
export default RenderBundles;