📄 RenderBundles.js
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 2 |
🧱 Classes | 1 |
📦 Imports | 2 |
📊 Variables & Constants | 2 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 src/renderers/common/RenderBundles.js
📦 Imports¶
Name | Source |
---|---|
ChainMap |
./ChainMap.js |
RenderBundle |
./RenderBundle.js |
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
_chainKeys |
any[] |
let/var | [] |
✗ |
bundles |
ChainMap |
let/var | this.bundles |
✗ |
Functions¶
RenderBundles.get(bundleGroup: BundleGroup, camera: Camera): RenderBundle
¶
JSDoc:
/**
* 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.
*/
Parameters:
bundleGroup
BundleGroup
camera
Camera
Returns: RenderBundle
Calls:
bundles.get
bundles.set
Code
get( bundleGroup, camera ) {
const bundles = this.bundles;
_chainKeys[ 0 ] = bundleGroup;
_chainKeys[ 1 ] = camera;
let bundle = bundles.get( _chainKeys );
if ( bundle === undefined ) {
bundle = new RenderBundle( bundleGroup, camera );
bundles.set( _chainKeys, bundle );
}
_chainKeys.length = 0;
return bundle;
}
RenderBundles.dispose(): void
¶
JSDoc:
Returns: void
Classes¶
RenderBundles
¶
Class Code
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;
_chainKeys[ 0 ] = bundleGroup;
_chainKeys[ 1 ] = camera;
let bundle = bundles.get( _chainKeys );
if ( bundle === undefined ) {
bundle = new RenderBundle( bundleGroup, camera );
bundles.set( _chainKeys, bundle );
}
_chainKeys.length = 0;
return bundle;
}
/**
* Frees all internal resources.
*/
dispose() {
this.bundles = new ChainMap();
}
}
Methods¶
get(bundleGroup: BundleGroup, camera: Camera): RenderBundle
¶
Code
get( bundleGroup, camera ) {
const bundles = this.bundles;
_chainKeys[ 0 ] = bundleGroup;
_chainKeys[ 1 ] = camera;
let bundle = bundles.get( _chainKeys );
if ( bundle === undefined ) {
bundle = new RenderBundle( bundleGroup, camera );
bundles.set( _chainKeys, bundle );
}
_chainKeys.length = 0;
return bundle;
}