babylonjs-gui 5.42.2 → 5.43.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/babylon.gui.d.ts +5 -0
- package/babylon.gui.js +22 -2
- package/babylon.gui.js.map +1 -1
- package/babylon.gui.min.js +1 -1
- package/babylon.gui.min.js.map +1 -1
- package/babylon.gui.module.d.ts +10 -0
- package/package.json +2 -2
    
        package/babylon.gui.d.ts
    CHANGED
    
    | @@ -2065,9 +2065,14 @@ declare module BABYLON.GUI { | |
| 2065 2065 | 
             
                    private _populateNinePatchSlicesFromImage;
         | 
| 2066 2066 | 
             
                    private _detectPointerOnOpaqueOnly;
         | 
| 2067 2067 | 
             
                    private _imageDataCache;
         | 
| 2068 | 
            +
                    /**
         | 
| 2069 | 
            +
                     * Cache of images to avoid loading the same image multiple times
         | 
| 2070 | 
            +
                     */
         | 
| 2068 2071 | 
             
                    static SourceImgCache: Map<string, {
         | 
| 2069 2072 | 
             
                        img: BABYLON.IImage;
         | 
| 2070 2073 | 
             
                        timesUsed: number;
         | 
| 2074 | 
            +
                        loaded: boolean;
         | 
| 2075 | 
            +
                        waitingForLoadCallback: Array<() => void>;
         | 
| 2071 2076 | 
             
                    }>;
         | 
| 2072 2077 | 
             
                    /**
         | 
| 2073 2078 | 
             
                     * BABYLON.Observable notified when the content is loaded
         | 
    
        package/babylon.gui.js
    CHANGED
    
    | @@ -8449,14 +8449,31 @@ var Image = /** @class */ (function (_super) { | |
| 8449 8449 | 
             
                            var cachedData = Image.SourceImgCache.get(value);
         | 
| 8450 8450 | 
             
                            this._domImage = cachedData.img;
         | 
| 8451 8451 | 
             
                            cachedData.timesUsed += 1;
         | 
| 8452 | 
            -
                             | 
| 8452 | 
            +
                            if (cachedData.loaded) {
         | 
| 8453 | 
            +
                                this._onImageLoaded();
         | 
| 8454 | 
            +
                            }
         | 
| 8455 | 
            +
                            else {
         | 
| 8456 | 
            +
                                cachedData.waitingForLoadCallback.push(this._onImageLoaded.bind(this));
         | 
| 8457 | 
            +
                            }
         | 
| 8453 8458 | 
             
                            return;
         | 
| 8454 8459 | 
             
                        }
         | 
| 8455 8460 | 
             
                        this._domImage = engine.createCanvasImage();
         | 
| 8456 8461 | 
             
                        if (value) {
         | 
| 8457 | 
            -
                            Image.SourceImgCache.set(value, { img: this._domImage, timesUsed: 1 });
         | 
| 8462 | 
            +
                            Image.SourceImgCache.set(value, { img: this._domImage, timesUsed: 1, loaded: false, waitingForLoadCallback: [this._onImageLoaded.bind(this)] });
         | 
| 8458 8463 | 
             
                        }
         | 
| 8459 8464 | 
             
                        this._domImage.onload = function () {
         | 
| 8465 | 
            +
                            if (value) {
         | 
| 8466 | 
            +
                                var cachedData = Image.SourceImgCache.get(value);
         | 
| 8467 | 
            +
                                if (cachedData) {
         | 
| 8468 | 
            +
                                    cachedData.loaded = true;
         | 
| 8469 | 
            +
                                    for (var _i = 0, _a = cachedData.waitingForLoadCallback; _i < _a.length; _i++) {
         | 
| 8470 | 
            +
                                        var waitingCallback = _a[_i];
         | 
| 8471 | 
            +
                                        waitingCallback();
         | 
| 8472 | 
            +
                                    }
         | 
| 8473 | 
            +
                                    cachedData.waitingForLoadCallback.length = 0;
         | 
| 8474 | 
            +
                                    return;
         | 
| 8475 | 
            +
                                }
         | 
| 8476 | 
            +
                            }
         | 
| 8460 8477 | 
             
                            _this._onImageLoaded();
         | 
| 8461 8478 | 
             
                        };
         | 
| 8462 8479 | 
             
                        if (value) {
         | 
| @@ -8820,6 +8837,9 @@ var Image = /** @class */ (function (_super) { | |
| 8820 8837 | 
             
                    this.onSVGAttributesComputedObservable.clear();
         | 
| 8821 8838 | 
             
                    this._removeCacheUsage(this._source);
         | 
| 8822 8839 | 
             
                };
         | 
| 8840 | 
            +
                /**
         | 
| 8841 | 
            +
                 * Cache of images to avoid loading the same image multiple times
         | 
| 8842 | 
            +
                 */
         | 
| 8823 8843 | 
             
                Image.SourceImgCache = new Map();
         | 
| 8824 8844 | 
             
                // Static
         | 
| 8825 8845 | 
             
                /** STRETCH_NONE */
         |