Skip to content

⬅️ Back to Table of Contents

📄 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:

/**
     * Frees all internal resources.
     */

Returns: void

Code
dispose() {

        this.bundles = new ChainMap();

    }

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;

    }
dispose(): void
Code
dispose() {

        this.bundles = new ChainMap();

    }