瀏覽代碼

Cache IsSupported.

sebavan 5 年之前
父節點
當前提交
d75b3ff7c9
共有 1 個文件被更改,包括 11 次插入6 次删除
  1. 11 6
      src/Engines/thinEngine.ts

+ 11 - 6
src/Engines/thinEngine.ts

@@ -4188,20 +4188,25 @@ export class ThinEngine {
 
     // Statics
 
+    private static _isSupported: Nullable<boolean> = null;
     /**
      * Gets a boolean indicating if the engine can be instanciated (ie. if a webGL context can be found)
      * @returns true if the engine can be created
      * @ignorenaming
      */
     public static isSupported(): boolean {
-        try {
-            var tempcanvas = CanvasGenerator.CreateCanvas(1, 1);
-            var gl = tempcanvas.getContext("webgl") || (tempcanvas as any).getContext("experimental-webgl");
+        if (this._isSupported === null) {
+            try {
+                var tempcanvas = CanvasGenerator.CreateCanvas(1, 1);
+                var gl = tempcanvas.getContext("webgl") || (tempcanvas as any).getContext("experimental-webgl");
 
-            return gl != null && !!window.WebGLRenderingContext;
-        } catch (e) {
-            return false;
+                this._isSupported = gl != null && !!window.WebGLRenderingContext;
+            } catch (e) {
+                this._isSupported = false;
+            }
         }
+
+        return this._isSupported;
     }
 
     /**