Преглед изворни кода

Merge pull request #3185 from Temechon/master

Fixed issue when scene properties generates warning in infinite loop
David Catuhe пре 7 година
родитељ
комит
aa6d6d6b78

+ 12 - 0
Playground/debug.html

@@ -129,6 +129,9 @@
                     <div class="option" id="fullscreenButton1600">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton1600">Editor Fullscreen</div>
                     <div class="option" id="formatButton1600">Format code</div>
+                    <div class="option" id="minimapToggle1600">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                 </div>
             </div>
 
@@ -205,6 +208,9 @@
                     <div class="option" id="fullscreenButton1475">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton1475">Editor Fullscreen</div>
                     <div class="option" id="formatButton1475">Format code</div>
+                    <div class="option" id="minimapToggle1475">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                     <div class="option" id="debugButton1475">Debug layer<i class="fa fa-square-o" aria-hidden="true"></i></div>
                     <div class="option" id="metadataButton1475">Metadata</div>
                     <div class="option subSelect"><span id="currentVersion1475">Vers. : Latest</span><i class="fa fa-chevron-right" aria-hidden="true"></i>
@@ -271,6 +277,9 @@
                     <div class="option" id="fullscreenButton1030">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton1030">Editor Fullscreen</div>
                     <div class="option" id="formatButton1030">Format code</div>
+                    <div class="option" id="minimapToggle1030">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                     <div class="option" id="debugButton1030">Debug layer<i class="fa fa-square-o" aria-hidden="true"></i></div>
                     <div class="option" id="metadataButton1030">Metadata</div>
                     <div class="option subSelect"><span id="currentVersion1030">Vers. : Latest</span><i class="fa fa-chevron-right" aria-hidden="true"></i>
@@ -334,6 +343,9 @@
                     <div class="option" id="fullscreenButton750">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton750">Editor Fullscreen</div>
                     <div class="option" id="formatButton750">Format code</div>
+                    <div class="option" id="minimapToggle750">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                     <div class="option" id="debugButton750">Debug layer<i class="fa fa-square-o" aria-hidden="true"></i></div>
                     <div class="option" id="metadataButton750">Metadata</div>
                     <div class="option subSelect"><span id="currentVersion750">Vers. : Latest</span><i class="fa fa-chevron-right" aria-hidden="true"></i>

+ 12 - 0
Playground/index-local.html

@@ -71,6 +71,9 @@
                     <div class="option" id="fullscreenButton1600">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton1600">Editor Fullscreen</div>
                     <div class="option" id="formatButton1600">Format code</div>
+                    <div class="option" id="minimapToggle1600">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                 </div>
             </div>
 
@@ -146,6 +149,9 @@
                     <div class="option" id="fullscreenButton1475">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton1475">Editor Fullscreen</div>
                     <div class="option" id="formatButton1475">Format code</div>
+                    <div class="option" id="minimapToggle1475">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                     <div class="option" id="debugButton1475">Debug layer<i class="fa fa-square-o" aria-hidden="true"></i></div>
                     <div class="option" id="metadataButton1475">Metadata</div>
                     <div class="option subSelect"><span id="currentVersion1475">Vers. : Latest</span><i class="fa fa-chevron-right" aria-hidden="true"></i>
@@ -212,6 +218,9 @@
                     <div class="option" id="fullscreenButton1030">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton1030">Editor Fullscreen</div>
                     <div class="option" id="formatButton1030">Format code</div>
+                    <div class="option" id="minimapToggle1030">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                     <div class="option" id="debugButton1030">Debug layer<i class="fa fa-square-o" aria-hidden="true"></i></div>
                     <div class="option" id="metadataButton1030">Metadata</div>
                     <div class="option subSelect"><span id="currentVersion1030">Vers. : Latest</span><i class="fa fa-chevron-right" aria-hidden="true"></i>
@@ -275,6 +284,9 @@
                     <div class="option" id="fullscreenButton750">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton750">Editor Fullscreen</div>
                     <div class="option" id="formatButton750">Format code</div>
+                    <div class="option" id="minimapToggle750">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                     <div class="option" id="debugButton750">Debug layer<i class="fa fa-square-o" aria-hidden="true"></i></div>
                     <div class="option" id="metadataButton750">Metadata</div>
                     <div class="option subSelect"><span id="currentVersion750">Vers. : Latest</span><i class="fa fa-chevron-right" aria-hidden="true"></i>

+ 408 - 396
Playground/index.html

@@ -1,487 +1,499 @@
 <!DOCTYPE html>
 <html>
 
-    <head>
-        <title>Babylon.js Playground</title>
-        <meta charset='utf-8' />
-        <meta name="viewport" content="width=device-width, user-scalable=no">
-        <link rel="shortcut icon" href="https://www.babylonjs.com/img/favicon/favicon.ico">
-        <link rel="apple-touch-icon" sizes="57x57" href="https://www.babylonjs.com/img/favicon/apple-icon-57x57.png">
-        <link rel="apple-touch-icon" sizes="60x60" href="https://www.babylonjs.com/img/favicon/apple-icon-60x60.png">
-        <link rel="apple-touch-icon" sizes="72x72" href="https://www.babylonjs.com/img/favicon/apple-icon-72x72.png">
-        <link rel="apple-touch-icon" sizes="76x76" href="https://www.babylonjs.com/img/favicon/apple-icon-76x76.png">
-        <link rel="apple-touch-icon" sizes="114x114" href="https://www.babylonjs.com/img/favicon/apple-icon-114x114.png">
-        <link rel="apple-touch-icon" sizes="120x120" href="https://www.babylonjs.com/img/favicon/apple-icon-120x120.png">
-        <link rel="apple-touch-icon" sizes="144x144" href="https://www.babylonjs.com/img/favicon/apple-icon-144x144.png">
-        <link rel="apple-touch-icon" sizes="152x152" href="https://www.babylonjs.com/img/favicon/apple-icon-152x152.png">
-        <link rel="apple-touch-icon" sizes="180x180" href="https://www.babylonjs.com/img/favicon/apple-icon-180x180.png">
-        <link rel="icon" type="image/png" sizes="192x192" href="https://www.babylonjs.com/img/favicon/android-icon-192x192.png">
-        <link rel="icon" type="image/png" sizes="32x32" href="https://www.babylonjs.com/img/favicon/favicon-32x32.png">
-        <link rel="icon" type="image/png" sizes="96x96" href="https://www.babylonjs.com/img/favicon/favicon-96x96.png">
-        <link rel="icon" type="image/png" sizes="16x16" href="https://www.babylonjs.com/img/favicon/favicon-16x16.png">
-        <link rel="manifest" href="https://www.babylonjs.com/img/favicon/manifest.json">
-        <meta name="msapplication-TileColor" content="#ffffff">
-        <meta name="msapplication-TileImage" content="https://www.babylonjs.com/img/favicon/ms-icon-144x144.png">
-        <meta name="msapplication-config" content="https://www.babylonjs.com/img/favicon/browserconfig.xml">
-        <meta name="theme-color" content="#ffffff">
-
-        <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
-        <!--For canvas/code separator-->
-        <script src="js/libs/split.js"></script>
-
-        <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
-        <!-- jszip -->
-        <script src="js/libs/jszip.min.js"></script>
-        <script src="js/libs/fileSaver.js"></script>
-        <!--Monaco-->
-        <script src="node_modules/monaco-editor/min/vs/loader.js"></script>
-        <!-- Babylon.js -->
-        <script src="https://preview.babylonjs.com/cannon.js"></script>
-        <script src="https://preview.babylonjs.com/Oimo.js"></script>
-        <script src="https://preview.babylonjs.com/babylon.js"></script>
-        <script src="https://preview.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
-
-        <script src="https://preview.babylonjs.com/materialsLibrary/babylonjs.materials.min.js"></script>
-
-        <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js"></script>
-
-        <script src="https://preview.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js"></script>
-
-        <script src="https://preview.babylonjs.com/loaders/babylonjs.loaders.js"></script>
-
-        <script src="https://preview.babylonjs.com/gui/babylon.gui.min.js"></script>
-
-        <script src="https://rawgit.com/BabylonJS/Extensions/master/ClonerSystem/src/babylonx.cloner.js"></script>
-        <script src="https://rawgit.com/BabylonJS/Extensions/master/canvas2D/dist/preview%20release/babylon.canvas2d.min.js"></script>
-        <script src="https://rawgit.com/BabylonJS/Extensions/master/CompoundShader/src/babylonx.CompoundShader.js"></script>
-        <link href="css/index.css" rel="stylesheet" />
-    </head>
-
-    <body>
-        <div class="navbar navBar1600">
-            <div class="title">
-                Babylon.js Playground
-            </div>
-            <div class="version" id="mainTitle">
-            </div>
-
-            <div class="category">
-                <div class="button run" id="runButton1600">Run
-                    <i class="fa fa-play" aria-hidden="true"></i>
-                </div>
+<head>
+    <title>Babylon.js Playground</title>
+    <meta charset='utf-8' />
+    <meta name="viewport" content="width=device-width, user-scalable=no">
+    <link rel="shortcut icon" href="https://www.babylonjs.com/img/favicon/favicon.ico">
+    <link rel="apple-touch-icon" sizes="57x57" href="https://www.babylonjs.com/img/favicon/apple-icon-57x57.png">
+    <link rel="apple-touch-icon" sizes="60x60" href="https://www.babylonjs.com/img/favicon/apple-icon-60x60.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="https://www.babylonjs.com/img/favicon/apple-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="76x76" href="https://www.babylonjs.com/img/favicon/apple-icon-76x76.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="https://www.babylonjs.com/img/favicon/apple-icon-114x114.png">
+    <link rel="apple-touch-icon" sizes="120x120" href="https://www.babylonjs.com/img/favicon/apple-icon-120x120.png">
+    <link rel="apple-touch-icon" sizes="144x144" href="https://www.babylonjs.com/img/favicon/apple-icon-144x144.png">
+    <link rel="apple-touch-icon" sizes="152x152" href="https://www.babylonjs.com/img/favicon/apple-icon-152x152.png">
+    <link rel="apple-touch-icon" sizes="180x180" href="https://www.babylonjs.com/img/favicon/apple-icon-180x180.png">
+    <link rel="icon" type="image/png" sizes="192x192" href="https://www.babylonjs.com/img/favicon/android-icon-192x192.png">
+    <link rel="icon" type="image/png" sizes="32x32" href="https://www.babylonjs.com/img/favicon/favicon-32x32.png">
+    <link rel="icon" type="image/png" sizes="96x96" href="https://www.babylonjs.com/img/favicon/favicon-96x96.png">
+    <link rel="icon" type="image/png" sizes="16x16" href="https://www.babylonjs.com/img/favicon/favicon-16x16.png">
+    <link rel="manifest" href="https://www.babylonjs.com/img/favicon/manifest.json">
+    <meta name="msapplication-TileColor" content="#ffffff">
+    <meta name="msapplication-TileImage" content="https://www.babylonjs.com/img/favicon/ms-icon-144x144.png">
+    <meta name="msapplication-config" content="https://www.babylonjs.com/img/favicon/browserconfig.xml">
+    <meta name="theme-color" content="#ffffff">
+
+    <script src="https://code.jquery.com/pep/0.4.2/pep.min.js"></script>
+    <!--For canvas/code separator-->
+    <script src="js/libs/split.js"></script>
+
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js"></script>
+    <!-- jszip -->
+    <script src="js/libs/jszip.min.js"></script>
+    <script src="js/libs/fileSaver.js"></script>
+    <!--Monaco-->
+    <script src="node_modules/monaco-editor/min/vs/loader.js"></script>
+    <!-- Babylon.js -->
+    <script src="https://preview.babylonjs.com/cannon.js"></script>
+    <script src="https://preview.babylonjs.com/Oimo.js"></script>
+    <script src="https://preview.babylonjs.com/babylon.js"></script>
+    <script src="https://preview.babylonjs.com/inspector/babylon.inspector.bundle.js"></script>
+
+    <script src="https://preview.babylonjs.com/materialsLibrary/babylonjs.materials.min.js"></script>
+
+    <script src="https://preview.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js"></script>
+
+    <script src="https://preview.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js"></script>
+
+    <script src="https://preview.babylonjs.com/loaders/babylonjs.loaders.js"></script>
+
+    <script src="https://preview.babylonjs.com/gui/babylon.gui.min.js"></script>
+
+    <script src="https://rawgit.com/BabylonJS/Extensions/master/ClonerSystem/src/babylonx.cloner.js"></script>
+    <script src="https://rawgit.com/BabylonJS/Extensions/master/canvas2D/dist/preview%20release/babylon.canvas2d.min.js"></script>
+    <script src="https://rawgit.com/BabylonJS/Extensions/master/CompoundShader/src/babylonx.CompoundShader.js"></script>
+    <link href="css/index.css" rel="stylesheet" />
+</head>
+
+<body>
+    <div class="navbar navBar1600">
+        <div class="title">
+            Babylon.js Playground
+        </div>
+        <div class="version" id="mainTitle">
+        </div>
+
+        <div class="category">
+            <div class="button run" id="runButton1600">Run
+                <i class="fa fa-play" aria-hidden="true"></i>
             </div>
+        </div>
 
 
-            <div class="category">
-                <div class="button" id="newButton1600">New
-                    <i class="fa fa-file" aria-hidden="true"></i>
-                </div>
-                <div class="button removeOnPhone" id="clearButton1600">Clear
-                    <i class="fa fa-trash" aria-hidden="true"></i>
-                </div>
+        <div class="category">
+            <div class="button" id="newButton1600">New
+                <i class="fa fa-file" aria-hidden="true"></i>
+            </div>
+            <div class="button removeOnPhone" id="clearButton1600">Clear
+                <i class="fa fa-trash" aria-hidden="true"></i>
             </div>
+        </div>
 
-            <div class="category">
-                <div class="button" id="saveButton1600">Save
-                    <i class="fa fa-floppy-o" aria-hidden="true"></i>
-                </div>
-                <div class="button removeOnPhone" id="zipButton1600">Zip
-                    <i class="fa fa-download" aria-hidden="true"></i>
-                </div>
+        <div class="category">
+            <div class="button" id="saveButton1600">Save
+                <i class="fa fa-floppy-o" aria-hidden="true"></i>
+            </div>
+            <div class="button removeOnPhone" id="zipButton1600">Zip
+                <i class="fa fa-download" aria-hidden="true"></i>
             </div>
+        </div>
 
-            <div class="category">
-                <div class="button select">Settings
-                    <div class="toDisplay">
-                        <div class="option subSelect">Theme
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" id="darkTheme1600">Dark</div>
-                                <div class="option" id="lightTheme1600">Light</div>
-                            </div>
-                        </div>
-                        <div class="option subSelect">
-                            <span id="currentFontSize1600">Font: 14</span>
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" onclick="setFontSize(12);">12</div>
-                                <div class="option" onclick="setFontSize(14);">14</div>
-                                <div class="option" onclick="setFontSize(16);">16</div>
-                                <div class="option" onclick="setFontSize(18);">18</div>
-                                <div class="option" onclick="setFontSize(20);">20</div>
-                                <div class="option" onclick="setFontSize(22);">22</div>
-                            </div>
-                        </div>
-                        <div class="option" id="safemodeToggle1600">Safe mode
-                            <i class="fa fa-square-o" aria-hidden="true"></i>
+        <div class="category">
+            <div class="button select">Settings
+                <div class="toDisplay">
+                    <div class="option subSelect">Theme
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" id="darkTheme1600">Dark</div>
+                            <div class="option" id="lightTheme1600">Light</div>
                         </div>
-                        <div class="option checked" id="editorButton1600">Editor
-                            <i class="fa fa-check-square" aria-hidden="true"></i>
+                    </div>
+                    <div class="option subSelect">
+                        <span id="currentFontSize1600">Font: 14</span>
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" onclick="setFontSize(12);">12</div>
+                            <div class="option" onclick="setFontSize(14);">14</div>
+                            <div class="option" onclick="setFontSize(16);">16</div>
+                            <div class="option" onclick="setFontSize(18);">18</div>
+                            <div class="option" onclick="setFontSize(20);">20</div>
+                            <div class="option" onclick="setFontSize(22);">22</div>
                         </div>
-                        <div class="option" id="fullscreenButton1600">Fullscreen</div>
-                        <div class="option" id="editorFullscreenButton1600">Editor Fullscreen</div>
-                        <div class="option" id="formatButton1600">Format code</div>
+                    </div>
+                    <div class="option" id="safemodeToggle1600">Safe mode
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option checked" id="editorButton1600">Editor
+                        <i class="fa fa-check-square" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="fullscreenButton1600">Fullscreen</div>
+                    <div class="option" id="editorFullscreenButton1600">Editor Fullscreen</div>
+                    <div class="option" id="formatButton1600">Format code</div>
+                    <div class="option" id="minimapToggle1600">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
                     </div>
                 </div>
+            </div>
 
-                <div class="button uncheck" id="debugButton1600">Debug layer
-                    <i class="fa fa-square-o" aria-hidden="true"></i>
-                </div>
-                <div class="button" id="metadataButton1600">Metadata</div>
+            <div class="button uncheck" id="debugButton1600">Debug layer
+                <i class="fa fa-square-o" aria-hidden="true"></i>
             </div>
+            <div class="button" id="metadataButton1600">Metadata</div>
+        </div>
 
 
 
-            <div class="category right">
-                <div class="button select">
-                    <span id="currentVersion1600">Version: Latest</span>
-                    <div class="toDisplay">
-                        <div class="option" onclick="setVersion('latest');">Latest</div>
-                        <div class="option" onclick="setVersion('stable');">Stable</div>
-                    </div>
-                </div>
-                <div class="button select">
-                    <span id="currentScript1600">Scenes</span>
-                    <div class="toDisplayBig">
-                        <ul id="scriptsList1600">
-                        </ul>
-                    </div>
+        <div class="category right">
+            <div class="button select">
+                <span id="currentVersion1600">Version: Latest</span>
+                <div class="toDisplay">
+                    <div class="option" onclick="setVersion('latest');">Latest</div>
+                    <div class="option" onclick="setVersion('stable');">Stable</div>
                 </div>
             </div>
-            <div class="save-message" id="saveMessage">
-                This PG has missing metadata. Click save to add them.
+            <div class="button select">
+                <span id="currentScript1600">Scenes</span>
+                <div class="toDisplayBig">
+                    <ul id="scriptsList1600">
+                    </ul>
+                </div>
             </div>
         </div>
+        <div class="save-message" id="saveMessage">
+            This PG has missing metadata. Click save to add them.
+        </div>
+    </div>
 
-        <div class="navbar navBar1475">
-            <div class="title">
-                Babylon.js Playground
-            </div>
-            <div class="version" id="mainTitle">
-            </div>
+    <div class="navbar navBar1475">
+        <div class="title">
+            Babylon.js Playground
+        </div>
+        <div class="version" id="mainTitle">
+        </div>
 
-            <div class="category">
-                <div class="button run" id="runButton1475">Run
-                    <i class="fa fa-play" aria-hidden="true"></i>
-                </div>
+        <div class="category">
+            <div class="button run" id="runButton1475">Run
+                <i class="fa fa-play" aria-hidden="true"></i>
             </div>
+        </div>
 
 
-            <div class="category">
-                <div class="button" id="newButton1475">New
-                    <i class="fa fa-file" aria-hidden="true"></i>
-                </div>
-                <div class="button removeOnPhone" id="clearButton1475">Clear
-                    <i class="fa fa-trash" aria-hidden="true"></i>
-                </div>
+        <div class="category">
+            <div class="button" id="newButton1475">New
+                <i class="fa fa-file" aria-hidden="true"></i>
             </div>
+            <div class="button removeOnPhone" id="clearButton1475">Clear
+                <i class="fa fa-trash" aria-hidden="true"></i>
+            </div>
+        </div>
 
-            <div class="category">
-                <div class="button" id="saveButton1475">Save
-                    <i class="fa fa-floppy-o" aria-hidden="true"></i>
-                </div>
-                <div class="button removeOnPhone" id="zipButton1475">Zip
-                    <i class="fa fa-download" aria-hidden="true"></i>
-                </div>
+        <div class="category">
+            <div class="button" id="saveButton1475">Save
+                <i class="fa fa-floppy-o" aria-hidden="true"></i>
             </div>
+            <div class="button removeOnPhone" id="zipButton1475">Zip
+                <i class="fa fa-download" aria-hidden="true"></i>
+            </div>
+        </div>
 
-            <div class="category">
-                <div class="button select">Settings
-                    <div class="toDisplay">
-                        <div class="option subSelect">Theme
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" id="darkTheme1475">Dark</div>
-                                <div class="option" id="lightTheme1475">Light</div>
-                            </div>
-                        </div>
-                        <div class="option subSelect">
-                            <span id="currentFontSize1475">Font: 14</span>
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" onclick="setFontSize(12);">12</div>
-                                <div class="option" onclick="setFontSize(14);">14</div>
-                                <div class="option" onclick="setFontSize(16);">16</div>
-                                <div class="option" onclick="setFontSize(18);">18</div>
-                                <div class="option" onclick="setFontSize(20);">20</div>
-                                <div class="option" onclick="setFontSize(22);">22</div>
-                            </div>
-                        </div>
-                        <div class="option" id='safemodeToggle1475'>Safe mode
-                            <i class="fa fa-square-o" aria-hidden="true"></i>
-                        </div>
-                        <div class="option checked" id="editorButton1475">Editor
-                            <i class="fa fa-check-square" aria-hidden="true"></i>
+        <div class="category">
+            <div class="button select">Settings
+                <div class="toDisplay">
+                    <div class="option subSelect">Theme
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" id="darkTheme1475">Dark</div>
+                            <div class="option" id="lightTheme1475">Light</div>
                         </div>
-                        <div class="option" id="fullscreenButton1475">Fullscreen</div>
-                        <div class="option" id="editorFullscreenButton1475">Editor Fullscreen</div>
-                        <div class="option" id="formatButton1475">Format code</div>
-                        <div class="option" id="debugButton1475">Debug layer
-                            <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option subSelect">
+                        <span id="currentFontSize1475">Font: 14</span>
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" onclick="setFontSize(12);">12</div>
+                            <div class="option" onclick="setFontSize(14);">14</div>
+                            <div class="option" onclick="setFontSize(16);">16</div>
+                            <div class="option" onclick="setFontSize(18);">18</div>
+                            <div class="option" onclick="setFontSize(20);">20</div>
+                            <div class="option" onclick="setFontSize(22);">22</div>
                         </div>
-                        <div class="option" id="metadataButton1475">Metadata</div>
-                        <div class="option subSelect">
-                            <span id="currentVersion1475">Vers. : Latest</span>
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" onclick="setVersion('latest');">Latest</div>
-                                <div class="option" onclick="setVersion('stable');">Stable</div>
-                            </div>
+                    </div>
+                    <div class="option" id='safemodeToggle1475'>Safe mode
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option checked" id="editorButton1475">Editor
+                        <i class="fa fa-check-square" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="fullscreenButton1475">Fullscreen</div>
+                    <div class="option" id="editorFullscreenButton1475">Editor Fullscreen</div>
+                    <div class="option" id="formatButton1475">Format code</div>
+                    <div class="option" id="minimapToggle1475">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="debugButton1475">Debug layer
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="metadataButton1475">Metadata</div>
+                    <div class="option subSelect">
+                        <span id="currentVersion1475">Vers. : Latest</span>
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" onclick="setVersion('latest');">Latest</div>
+                            <div class="option" onclick="setVersion('stable');">Stable</div>
                         </div>
                     </div>
                 </div>
             </div>
+        </div>
 
-            <div class="category right">
-                <div class="button select">
-                    <span id="currentScript1475">Scenes</span>
-                    <div class="toDisplayBig">
-                        <ul id="scriptsList1475">
-                        </ul>
-                    </div>
+        <div class="category right">
+            <div class="button select">
+                <span id="currentScript1475">Scenes</span>
+                <div class="toDisplayBig">
+                    <ul id="scriptsList1475">
+                    </ul>
                 </div>
             </div>
-            <div class="save-message" id="saveMessage">
-                This PG has missing metadata. Click save to add them.
-            </div>
         </div>
+        <div class="save-message" id="saveMessage">
+            This PG has missing metadata. Click save to add them.
+        </div>
+    </div>
 
-        <div class="navbar navBar1030">
-            <div class="category">
-                <div class="button run" id="runButton1030">Run
-                    <i class="fa fa-play" aria-hidden="true"></i>
-                </div>
+    <div class="navbar navBar1030">
+        <div class="category">
+            <div class="button run" id="runButton1030">Run
+                <i class="fa fa-play" aria-hidden="true"></i>
             </div>
+        </div>
 
 
-            <div class="category">
-                <div class="button" id="newButton1030">New
-                    <i class="fa fa-file" aria-hidden="true"></i>
-                </div>
-                <div class="button removeOnPhone" id="clearButton1030">Clear
-                    <i class="fa fa-trash" aria-hidden="true"></i>
-                </div>
+        <div class="category">
+            <div class="button" id="newButton1030">New
+                <i class="fa fa-file" aria-hidden="true"></i>
             </div>
+            <div class="button removeOnPhone" id="clearButton1030">Clear
+                <i class="fa fa-trash" aria-hidden="true"></i>
+            </div>
+        </div>
 
-            <div class="category">
-                <div class="button" id="saveButton1030">Save
-                    <i class="fa fa-floppy-o" aria-hidden="true"></i>
-                </div>
-                <div class="button removeOnPhone" id="zipButton1030">Zip
-                    <i class="fa fa-download" aria-hidden="true"></i>
-                </div>
+        <div class="category">
+            <div class="button" id="saveButton1030">Save
+                <i class="fa fa-floppy-o" aria-hidden="true"></i>
             </div>
+            <div class="button removeOnPhone" id="zipButton1030">Zip
+                <i class="fa fa-download" aria-hidden="true"></i>
+            </div>
+        </div>
 
-            <div class="category">
-                <div class="button select">Settings
-                    <div class="toDisplay">
-                        <div class="option subSelect">Theme
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" id="darkTheme1030">Dark</div>
-                                <div class="option" id="lightTheme1030">Light</div>
-                            </div>
-                        </div>
-                        <div class="option subSelect">
-                            <span id="currentFontSize1030">Font: 14</span>
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" onclick="setFontSize(12);">12</div>
-                                <div class="option" onclick="setFontSize(14);">14</div>
-                                <div class="option" onclick="setFontSize(16);">16</div>
-                                <div class="option" onclick="setFontSize(18);">18</div>
-                                <div class="option" onclick="setFontSize(20);">20</div>
-                                <div class="option" onclick="setFontSize(22);">22</div>
-                            </div>
-                        </div>
-                        <div class="option" id="safemodeToggle1030">Safe mode
-                            <i class="fa fa-square-o" aria-hidden="true"></i>
+        <div class="category">
+            <div class="button select">Settings
+                <div class="toDisplay">
+                    <div class="option subSelect">Theme
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" id="darkTheme1030">Dark</div>
+                            <div class="option" id="lightTheme1030">Light</div>
                         </div>
-                        <div class="option checked" id="editorButton1030">Editor
-                            <i class="fa fa-check-square" aria-hidden="true"></i>
-                        </div>
-                        <div class="option" id="fullscreenButton1030">Fullscreen</div>
-                        <div class="option" id="editorFullscreenButton1030">Editor Fullscreen</div>
-                        <div class="option" id="formatButton1030">Format code</div>
-                        <div class="option" id="debugButton1030">Debug layer
-                            <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option subSelect">
+                        <span id="currentFontSize1030">Font: 14</span>
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" onclick="setFontSize(12);">12</div>
+                            <div class="option" onclick="setFontSize(14);">14</div>
+                            <div class="option" onclick="setFontSize(16);">16</div>
+                            <div class="option" onclick="setFontSize(18);">18</div>
+                            <div class="option" onclick="setFontSize(20);">20</div>
+                            <div class="option" onclick="setFontSize(22);">22</div>
                         </div>
-                        <div class="option" id="metadataButton1030">Metadata</div>
-                        <div class="option subSelect">
-                            <span id="currentVersion1030">Vers. : Latest</span>
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" onclick="setVersion('latest');">Latest</div>
-                                <div class="option" onclick="setVersion('stable');">Stable</div>
-                            </div>
+                    </div>
+                    <div class="option" id="safemodeToggle1030">Safe mode
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option checked" id="editorButton1030">Editor
+                        <i class="fa fa-check-square" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="fullscreenButton1030">Fullscreen</div>
+                    <div class="option" id="editorFullscreenButton1030">Editor Fullscreen</div>
+                    <div class="option" id="formatButton1030">Format code</div>
+                    <div class="option" id="minimapToggle1030">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="debugButton1030">Debug layer
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="metadataButton1030">Metadata</div>
+                    <div class="option subSelect">
+                        <span id="currentVersion1030">Vers. : Latest</span>
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" onclick="setVersion('latest');">Latest</div>
+                            <div class="option" onclick="setVersion('stable');">Stable</div>
                         </div>
                     </div>
                 </div>
             </div>
+        </div>
 
-            <div class="category right">
-                <div class="button select">
-                    <span id="currentScript1030">Scenes</span>
-                    <div class="toDisplayBig">
-                        <ul id="scriptsList1030">
-                        </ul>
-                    </div>
+        <div class="category right">
+            <div class="button select">
+                <span id="currentScript1030">Scenes</span>
+                <div class="toDisplayBig">
+                    <ul id="scriptsList1030">
+                    </ul>
                 </div>
             </div>
-            <div class="save-message" id="saveMessage">
-                This PG has missing metadata. Click save to add them.
-            </div>
         </div>
-
-        <div class="navbar navBar750">
-            <div class="category">
-                <div class="button select">File
-                    <div class="toDisplay">
-                        <div class="option" id="runButton750">Run
-                            <i class="fa fa-play" aria-hidden="true"></i>
-                        </div>
-                        <div class="option" id="newButton750">New
-                            <i class="fa fa-file" aria-hidden="true"></i>
-                        </div>
-                        <div class="option" id="clearButton750">Clear
-                            <i class="fa fa-trash" aria-hidden="true"></i>
-                        </div>
-                        <div class="option" id="saveButton750">Save
-                            <i class="fa fa-floppy-o" aria-hidden="true"></i>
-                        </div>
-                        <div class="option" id="zipButton750">Zip
-                            <i class="fa fa-download" aria-hidden="true"></i>
-                        </div>
+        <div class="save-message" id="saveMessage">
+            This PG has missing metadata. Click save to add them.
+        </div>
+    </div>
+
+    <div class="navbar navBar750">
+        <div class="category">
+            <div class="button select">File
+                <div class="toDisplay">
+                    <div class="option" id="runButton750">Run
+                        <i class="fa fa-play" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="newButton750">New
+                        <i class="fa fa-file" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="clearButton750">Clear
+                        <i class="fa fa-trash" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="saveButton750">Save
+                        <i class="fa fa-floppy-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="zipButton750">Zip
+                        <i class="fa fa-download" aria-hidden="true"></i>
                     </div>
                 </div>
             </div>
+        </div>
 
-            <div class="category">
-                <div class="button select">Settings
-                    <div class="toDisplay">
-                        <div class="option subSelect">Theme
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" id="darkTheme750">Dark</div>
-                                <div class="option" id="lightTheme750">Light</div>
-                            </div>
-                        </div>
-                        <div class="option subSelect">
-                            <span id="currentFontSize750">Font: 14</span>
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" onclick="setFontSize(12);">12</div>
-                                <div class="option" onclick="setFontSize(14);">14</div>
-                                <div class="option" onclick="setFontSize(16);">16</div>
-                                <div class="option" onclick="setFontSize(18);">18</div>
-                                <div class="option" onclick="setFontSize(20);">20</div>
-                                <div class="option" onclick="setFontSize(22);">22</div>
-                            </div>
-                        </div>
-                        <div class="option" id="safemodeToggle750">Safe mode
-                            <i class="fa fa-square-o" aria-hidden="true"></i>
-                        </div>
-                        <div style="display:none;" class="option checked" id="editorButton750">Editor
-                            <i class="fa fa-check-square" aria-hidden="true"></i>
+        <div class="category">
+            <div class="button select">Settings
+                <div class="toDisplay">
+                    <div class="option subSelect">Theme
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" id="darkTheme750">Dark</div>
+                            <div class="option" id="lightTheme750">Light</div>
                         </div>
-                        <div class="option" id="fullscreenButton750">Fullscreen</div>
-                        <div class="option" id="editorFullscreenButton750">Editor Fullscreen</div>
-                        <div class="option" id="formatButton750">Format code</div>
-                        <div class="option" id="debugButton750">Debug layer
-                            <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option subSelect">
+                        <span id="currentFontSize750">Font: 14</span>
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" onclick="setFontSize(12);">12</div>
+                            <div class="option" onclick="setFontSize(14);">14</div>
+                            <div class="option" onclick="setFontSize(16);">16</div>
+                            <div class="option" onclick="setFontSize(18);">18</div>
+                            <div class="option" onclick="setFontSize(20);">20</div>
+                            <div class="option" onclick="setFontSize(22);">22</div>
                         </div>
-                        <div class="option" id="metadataButton750">Metadata</div>
-                        <div class="option subSelect">
-                            <span id="currentVersion750">Vers. : Latest</span>
-                            <i class="fa fa-chevron-right" aria-hidden="true"></i>
-                            <div class="toDisplaySub">
-                                <div class="option" onclick="setVersion('latest');">Latest</div>
-                                <div class="option" onclick="setVersion('stable');">Stable</div>
-                            </div>
+                    </div>
+                    <div class="option" id="safemodeToggle750">Safe mode
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div style="display:none;" class="option checked" id="editorButton750">Editor
+                        <i class="fa fa-check-square" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="fullscreenButton750">Fullscreen</div>
+                    <div class="option" id="editorFullscreenButton750">Editor Fullscreen</div>
+                    <div class="option" id="formatButton750">Format code</div>
+                    <div class="option" id="minimapToggle750">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="debugButton750">Debug layer
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
+                    <div class="option" id="metadataButton750">Metadata</div>
+                    <div class="option subSelect">
+                        <span id="currentVersion750">Vers. : Latest</span>
+                        <i class="fa fa-chevron-right" aria-hidden="true"></i>
+                        <div class="toDisplaySub">
+                            <div class="option" onclick="setVersion('latest');">Latest</div>
+                            <div class="option" onclick="setVersion('stable');">Stable</div>
                         </div>
                     </div>
                 </div>
             </div>
+        </div>
 
-            <div class="category right">
-                <div class="button select">
-                    <span id="currentScript750">Scenes</span>
-                    <div class="toDisplayBig">
-                        <ul id="scriptsList750">
-                        </ul>
-                    </div>
+        <div class="category right">
+            <div class="button select">
+                <span id="currentScript750">Scenes</span>
+                <div class="toDisplayBig">
+                    <ul id="scriptsList750">
+                    </ul>
                 </div>
             </div>
-            <div class="save-message" id="saveMessage">
-                This PG has missing metadata. Click save to add them.
-            </div>
         </div>
+        <div class="save-message" id="saveMessage">
+            This PG has missing metadata. Click save to add them.
+        </div>
+    </div>
 
-        <div class="wrapper">
-            <div id="jsEditor"></div>
-            <div id="canvasZone">
-                <canvas touch-action="none" id="renderCanvas"></canvas>
-            </div>
+    <div class="wrapper">
+        <div id="jsEditor"></div>
+        <div id="canvasZone">
+            <canvas touch-action="none" id="renderCanvas"></canvas>
         </div>
+    </div>
 
-        <span class="label" id="fpsLabel">FPS</span>
+    <span class="label" id="fpsLabel">FPS</span>
 
-        <div id="errorZone">
-        </div>
+    <div id="errorZone">
+    </div>
 
-        <div class="navbarBottom">
-            <div id="statusBar"></div>
-            <div class="links">
-                <div class='link'>
-                    <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
-                </div>
-                <div class='link'>
-                    <a target='_new' href="http://www.html5gamedevs.com/forum/16-babylonjs/">Forum</a>
-                </div>
-                <div class='link'>
-                    <a target='_new' href="https://www.babylonjs.com/sandbox">Sandbox</a>
-                </div>
-                <div class='link'>
-                    <a target='_new' href="https://doc.babylonjs.com">Documentation</a>
-                </div>
-                <div class='link'>
-                    <a target='_new' href="https://doc.babylonjs.com/playground">Search</a>
-                </div>
+    <div class="navbarBottom">
+        <div id="statusBar"></div>
+        <div class="links">
+            <div class='link'>
+                <a target='_new' href="https://www.netlify.com/">Deployed by Netlify</a>
+            </div>
+            <div class='link'>
+                <a target='_new' href="http://www.html5gamedevs.com/forum/16-babylonjs/">Forum</a>
+            </div>
+            <div class='link'>
+                <a target='_new' href="https://www.babylonjs.com/sandbox">Sandbox</a>
+            </div>
+            <div class='link'>
+                <a target='_new' href="https://doc.babylonjs.com">Documentation</a>
+            </div>
+            <div class='link'>
+                <a target='_new' href="https://doc.babylonjs.com/playground">Search</a>
             </div>
         </div>
+    </div>
 
-        <div id="saveLayer" class="save-layer">
-            <div class="save-form">
-                <label for="saveFormTitle">TITLE</label>
-                <div class="separator"></div>
-                <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
+    <div id="saveLayer" class="save-layer">
+        <div class="save-form">
+            <label for="saveFormTitle">TITLE</label>
+            <div class="separator"></div>
+            <input type="text" maxlength="120" id="saveFormTitle" class="save-form-title">
 
-                <label for="saveFormDescription">DESCRIPTION</label>
-                <div class="separator"></div>
-                <textarea id="saveFormDescription" rows="4" cols="10"></textarea>
+            <label for="saveFormDescription">DESCRIPTION</label>
+            <div class="separator"></div>
+            <textarea id="saveFormDescription" rows="4" cols="10"></textarea>
 
-                <label for="saveFormTags">TAGS (separated by comma)</label>
-                <div class="separator"></div>
-                <textarea id="saveFormTags" rows="4" cols="10"></textarea>
+            <label for="saveFormTags">TAGS (separated by comma)</label>
+            <div class="separator"></div>
+            <textarea id="saveFormTags" rows="4" cols="10"></textarea>
 
-                <div class="save-form-buttons" id="saveFormButtons">
+            <div class="save-form-buttons" id="saveFormButtons">
 
-                    <div id="saveFormButtonOk" class="button">OK</div>
-                    <div id="saveFormButtonCancel" class="button">Cancel</div>
-                </div>
+                <div id="saveFormButtonOk" class="button">OK</div>
+                <div id="saveFormButtonCancel" class="button">Cancel</div>
             </div>
         </div>
-
-        <div id="waitDiv">
-            <span id="waitTitle">Babylon.js Playground
-                <BR>
-                <BR>
-                <BR>
-            </span>
-            <img src="waitlogo.png" id="waitLogo" />
-        </div>
-
-        <script src="https://code.jquery.com/jquery.js"></script>
+    </div>
+
+    <div id="waitDiv">
+        <span id="waitTitle">Babylon.js Playground
+            <BR>
+            <BR>
+            <BR>
+        </span>
+        <img src="waitlogo.png" id="waitLogo" />
+    </div>
+
+    <script src="https://code.jquery.com/jquery.js"></script>
 
     <script src="js/actions.js"></script>
     <script src="js/pbt.js"></script>

+ 12 - 3
Playground/indexStable.html

@@ -99,6 +99,9 @@
                     <div class="option" id="fullscreenButton1600">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton1600">Editor Fullscreen</div>
                     <div class="option" id="formatButton1600">Format code</div>
+                    <div class="option" id="minimapToggle1600">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                 </div>
             </div>
 
@@ -171,7 +174,9 @@
                     </div>
                     <div class="option" id="fullscreenButton1475">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton1475">Editor Fullscreen</div>
-                    <div class="option" id="formatButton1475">Format code</div>
+                    <div class="option" id="formatButton1475">Format code</div><div class="option" id="minimapToggle1475">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                     <div class="option" id="debugButton1475">Debug layer<i class="fa fa-square-o" aria-hidden="true"></i></div>
                     <div class="option" id="metadataButton1475">Metadata</div>
                     <div class="option subSelect"><span id="currentVersion1475">Vers. : Latest</span><i class="fa fa-chevron-right" aria-hidden="true"></i>
@@ -237,7 +242,9 @@
                     </div>
                     <div class="option" id="fullscreenButton1030">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton1030">Editor Fullscreen</div>
-                    <div class="option" id="formatButton1030">Format code</div>
+                    <div class="option" id="formatButton1030">Format code</div><div class="option" id="minimapToggle1030">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                     <div class="option" id="debugButton1030">Debug layer<i class="fa fa-square-o" aria-hidden="true"></i></div>
                     <div class="option" id="metadataButton1030">Metadata</div>
                     <div class="option subSelect"><span id="currentVersion1030">Vers. : Latest</span><i class="fa fa-chevron-right" aria-hidden="true"></i>
@@ -300,7 +307,9 @@
                     </div>
                     <div class="option" id="fullscreenButton750">Fullscreen</div>
                     <div class="option" id="editorFullscreenButton750">Editor Fullscreen</div>
-                    <div class="option" id="formatButton750">Format code</div>
+                    <div class="option" id="formatButton750">Format code</div><div class="option" id="minimapToggle750">Minimap
+                        <i class="fa fa-square-o" aria-hidden="true"></i>
+                    </div>
                     <div class="option" id="debugButton750">Debug layer<i class="fa fa-square-o" aria-hidden="true"></i></div>
                     <div class="option" id="metadataButton750">Metadata</div>
                     <div class="option subSelect"><span id="currentVersion750">Vers. : Latest</span><i class="fa fa-chevron-right" aria-hidden="true"></i>

+ 17 - 2
Playground/js/index.js

@@ -67,6 +67,7 @@
 
             setToMultipleID("currentScript", "innerHTML", "Custom");
             setToMultipleID("safemodeToggle", "addClass", "checked");
+            setToMultipleID("minimapToggle", "addClass", "checked");
 
             setToMultipleID('safemodeToggle', 'innerHTML', 'Safe mode <i class="fa fa-check-square" aria-hidden="true"></i>');
         }
@@ -326,7 +327,7 @@
                 var showDebugLayer = false;
                 var initialTabIndex = 0;
                 showBJSPGMenu();
-                jsEditor.updateOptions({readOnly: false});
+                jsEditor.updateOptions({ readOnly: false });
 
                 if (document.getElementsByClassName('insp-wrapper').length > 0) {
                     for (var i = 0; i < engine.scenes.length; i++) {
@@ -640,7 +641,7 @@
         // Fonts
         setFontSize = function (size) {
             fontSize = size;
-            jsEditor.updateOptions({fontSize: size});
+            jsEditor.updateOptions({ fontSize: size });
             setToMultipleID("currentFontSize", "innerHTML", "Font: " + size);
         };
 
@@ -762,6 +763,18 @@
             jsEditor.getAction('editor.action.format').run();
         }
 
+        var toggleMinimap = function () {
+            var minimapToggle = document.getElementById("minimapToggle1600");
+            if (minimapToggle.classList.contains('checked')) {
+                jsEditor.updateOptions({ minimap: { enabled: false } });
+                setToMultipleID("minimapToggle", "innerHTML", 'Minimap <i class="fa fa-square-o" aria-hidden="true"></i>');
+            } else {
+                jsEditor.updateOptions({ minimap: { enabled: true } });
+                setToMultipleID("minimapToggle", "innerHTML", 'Minimap <i class="fa fa-check-square" aria-hidden="true"></i>');
+            }
+            minimapToggle.classList.toggle('checked');
+        }
+
 
         //Navigation Overwrites
         var exitPrompt = function (e) {
@@ -971,6 +984,8 @@
         setToMultipleID("editorFullscreenButton", "click", editorGoFullscreen);
         // Format
         setToMultipleID("formatButton", "click", formatCode);
+        // Format
+        setToMultipleID("minimapToggle", "click", toggleMinimap);
         // Debug
         setToMultipleID("debugButton", "click", toggleDebug);
         // Metadata

+ 2 - 2
inspector/src/helpers/Helpers.ts

@@ -202,12 +202,12 @@ module INSPECTOR {
          * Returns an array of string corresponding to tjhe list of properties of the object to be displayed
          * @param obj 
          */
-        public static GetAllLinesPropertiesAsString(obj: any): Array<string> {
+        public static GetAllLinesPropertiesAsString(obj: any, dontTakeThis: Array<string>): Array<string> {
             let props: Array<string> = [];
 
             for (let prop in obj) {
                 //No private and no function
-                if (prop.substring(0, 1) !== '_' && typeof obj[prop] !== 'function') {
+                if (dontTakeThis.indexOf(prop) === -1 && prop.substring(0, 1) !== '_' && typeof obj[prop] !== 'function') {
                     props.push(prop);
                 }
             }

+ 6 - 2
inspector/src/tabs/SceneTab.ts

@@ -27,8 +27,12 @@ module INSPECTOR {
 
             // build propertiesline
             let details = [];
-            let props = Helpers.GetAllLinesProperties(this._inspector.scene);
-            for (let prop of props) {
+            // Remove deprecated properties generating warning in console
+            let dontTakeThis = ['interFramePerfCounter', 'lastFramePerfCounter', 'evaluateActiveMeshesDurationPerfCounter', 'renderDurationPerfCounter', 'particlesDurationPerfCounter', 'spriteDuractionPerfCounter'];
+            let props = Helpers.GetAllLinesPropertiesAsString(this._inspector.scene, dontTakeThis);
+
+            for (let propString of props) {
+                let prop = new PropertyLine(new Property(propString, this._inspector.scene));
                 details.push(prop);
             }
             this._detailsPanel.details = details;

+ 189 - 189
inspector/src/tabs/StatsTab.ts

@@ -2,19 +2,19 @@ module INSPECTOR {
 
     export class StatsTab extends Tab {
 
-        private _inspector : Inspector;
+        private _inspector: Inspector;
 
         /** 
          * Properties in this array will be updated
          * in a render loop - Mostly stats properties
          */
-        private _updatableProperties : Array<{elem:HTMLElement, updateFct : () => string}> = [];
+        private _updatableProperties: Array<{ elem: HTMLElement, updateFct: () => string }> = [];
 
-        private _scene : BABYLON.Scene;
-        private _engine : BABYLON.Engine;
-        private _glInfo : any;
+        private _scene: BABYLON.Scene;
+        private _engine: BABYLON.Engine;
+        private _glInfo: any;
 
-        private _updateLoopHandler : any;
+        private _updateLoopHandler: any;
 
         private _sceneInstrumentation: BABYLON.Nullable<BABYLON.SceneInstrumentation>;
         private _engineInstrumentation: BABYLON.Nullable<BABYLON.EngineInstrumentation>;
@@ -39,298 +39,298 @@ module INSPECTOR {
             this._engineInstrumentation.captureGPUFrameTime = true;
         }
 
-        constructor(tabbar:TabBar, insp:Inspector) {
-            super(tabbar, 'Stats');        
+        constructor(tabbar: TabBar, insp: Inspector) {
+            super(tabbar, 'Stats');
 
-            this._inspector         = insp;  
+            this._inspector = insp;
 
-            this._scene             = this._inspector.scene;
-            this._engine            = this._scene.getEngine();
-            this._glInfo            = this._engine.getGlInfo();
+            this._scene = this._inspector.scene;
+            this._engine = this._scene.getEngine();
+            this._glInfo = this._engine.getGlInfo();
 
             this._connectToInstrumentation();
 
             // Build the stats panel: a div that will contains all stats
-            this._panel             = Helpers.CreateDiv('tab-panel') as HTMLDivElement; 
+            this._panel = Helpers.CreateDiv('tab-panel') as HTMLDivElement;
             this._panel.classList.add("stats-panel")
-            
-            let title               = Helpers.CreateDiv('stat-title1', this._panel);
-            let fpsSpan             = Helpers.CreateElement('span', 'stats-fps');
-            this._updatableProperties.push({ 
-                elem:fpsSpan, 
-                updateFct:() => { return BABYLON.Tools.Format(this._inspector.scene.getEngine().getFps(), 0) + " fps"}
+
+            let title = Helpers.CreateDiv('stat-title1', this._panel);
+            let fpsSpan = Helpers.CreateElement('span', 'stats-fps');
+            this._updatableProperties.push({
+                elem: fpsSpan,
+                updateFct: () => { return BABYLON.Tools.Format(this._inspector.scene.getEngine().getFps(), 0) + " fps" }
             });
-                
+
             let versionSpan = Helpers.CreateElement('span');
             versionSpan.textContent = `Babylon.js v${BABYLON.Engine.Version} - `;
             title.appendChild(versionSpan);
             title.appendChild(fpsSpan);
-                        
+
             this._updateLoopHandler = this._update.bind(this);
 
             // Count block
             title = Helpers.CreateDiv('stat-title2', this._panel);
             title.textContent = "Count";
-            {                
-                let elemLabel = this._createStatLabel("Total meshes", this._panel);
+            {
+                this._createStatLabel("Total meshes", this._panel);
                 let elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._scene.meshes.length.toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._scene.meshes.length.toString() }
                 });
 
-                elemLabel = this._createStatLabel("Draw calls", this._panel);
+                this._createStatLabel("Draw calls", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._sceneInstrumentation!.drawCallsCounter.current.toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._sceneInstrumentation!.drawCallsCounter.current.toString() }
                 });
 
-                elemLabel = this._createStatLabel("Total lights", this._panel);
+                this._createStatLabel("Total lights", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._scene.lights.length.toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._scene.lights.length.toString() }
                 });
 
-                elemLabel = this._createStatLabel("Total vertices", this._panel);
+                this._createStatLabel("Total vertices", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._scene.getTotalVertices().toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._scene.getTotalVertices().toString() }
                 });
 
-                elemLabel = this._createStatLabel("Total materials", this._panel);
+                this._createStatLabel("Total materials", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._scene.materials.length.toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._scene.materials.length.toString() }
                 });
 
-                elemLabel = this._createStatLabel("Total textures", this._panel);
+                this._createStatLabel("Total textures", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._scene.textures.length.toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._scene.textures.length.toString() }
                 });
 
-                elemLabel = this._createStatLabel("Active meshes", this._panel);
+                this._createStatLabel("Active meshes", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._scene.getActiveMeshes().length.toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._scene.getActiveMeshes().length.toString() }
                 });
 
-                elemLabel = this._createStatLabel("Active indices", this._panel);
+                this._createStatLabel("Active indices", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._scene.getActiveIndices().toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._scene.getActiveIndices().toString() }
                 });
 
-                elemLabel = this._createStatLabel("Active bones", this._panel);
+                this._createStatLabel("Active bones", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._scene.getActiveBones().toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._scene.getActiveBones().toString() }
                 });
 
-                elemLabel = this._createStatLabel("Active particles", this._panel);
+                this._createStatLabel("Active particles", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._scene.getActiveParticles().toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._scene.getActiveParticles().toString() }
                 });
-            }            
-            
+            }
+
             title = Helpers.CreateDiv('stat-title2', this._panel);
             title.textContent = "Duration";
             {
-                let elemLabel = this._createStatLabel("Meshes selection", this._panel);
+                this._createStatLabel("Meshes selection", this._panel);
                 let elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._sceneInstrumentation!.activeMeshesEvaluationTimeCounter.current)}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._sceneInstrumentation!.activeMeshesEvaluationTimeCounter.current) }
                 });
-                elemLabel = this._createStatLabel("Render targets", this._panel);
+                this._createStatLabel("Render targets", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._sceneInstrumentation!.renderTargetsRenderTimeCounter.current)}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._sceneInstrumentation!.renderTargetsRenderTimeCounter.current) }
                 });
-                elemLabel = this._createStatLabel("Particles", this._panel);
+                this._createStatLabel("Particles", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._sceneInstrumentation!.particlesRenderTimeCounter.current)}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._sceneInstrumentation!.particlesRenderTimeCounter.current) }
                 });
-                elemLabel = this._createStatLabel("Sprites", this._panel);
+                this._createStatLabel("Sprites", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._sceneInstrumentation!.spritesRenderTimeCounter.current)}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._sceneInstrumentation!.spritesRenderTimeCounter.current) }
                 });
-                elemLabel = this._createStatLabel("Animations", this._panel);
+                this._createStatLabel("Animations", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._sceneInstrumentation!.animationsTimeCounter.current)}
-                });                       
-                elemLabel = this._createStatLabel("Physics", this._panel);
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._sceneInstrumentation!.animationsTimeCounter.current) }
+                });
+                this._createStatLabel("Physics", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._sceneInstrumentation!.physicsTimeCounter.current)}
-                });                
-                elemLabel = this._createStatLabel("Render", this._panel);
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._sceneInstrumentation!.physicsTimeCounter.current) }
+                });
+                this._createStatLabel("Render", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._sceneInstrumentation!.renderTimeCounter.current)}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._sceneInstrumentation!.renderTimeCounter.current) }
                 });
-                elemLabel = this._createStatLabel("Frame", this._panel);
+                this._createStatLabel("Frame", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._sceneInstrumentation!.frameTimeCounter.current)}
-                });                
-                elemLabel = this._createStatLabel("Inter-frame", this._panel);
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._sceneInstrumentation!.frameTimeCounter.current) }
+                });
+                this._createStatLabel("Inter-frame", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._sceneInstrumentation!.interFrameTimeCounter.current)}
-                });       
-                elemLabel = this._createStatLabel("GPU Frame time", this._panel);
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._sceneInstrumentation!.interFrameTimeCounter.current) }
+                });
+                this._createStatLabel("GPU Frame time", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._engineInstrumentation!.gpuFrameTimeCounter.current * 0.000001)}
-                });                  
-                elemLabel = this._createStatLabel("GPU Frame time (average)", this._panel);
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._engineInstrumentation!.gpuFrameTimeCounter.current * 0.000001) }
+                });
+                this._createStatLabel("GPU Frame time (average)", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(this._engineInstrumentation!.gpuFrameTimeCounter.average * 0.000001)}
-                });                                 
-                elemLabel = this._createStatLabel("Potential FPS", this._panel);
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(this._engineInstrumentation!.gpuFrameTimeCounter.average * 0.000001) }
+                });
+                this._createStatLabel("Potential FPS", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return BABYLON.Tools.Format(1000.0 / this._sceneInstrumentation!.frameTimeCounter.current, 0)}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return BABYLON.Tools.Format(1000.0 / this._sceneInstrumentation!.frameTimeCounter.current, 0) }
                 });
-                elemLabel = this._createStatLabel("Resolution", this._panel);
+                this._createStatLabel("Resolution", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._engine.getRenderWidth() + "x" + this._engine.getRenderHeight()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._engine.getRenderWidth() + "x" + this._engine.getRenderHeight() }
                 });
             }
-            
+
             title = Helpers.CreateDiv('stat-title2', this._panel);
             title.textContent = "Extensions";
             {
-                let elemLabel = this._createStatLabel("Std derivatives", this._panel);
+                this._createStatLabel("Std derivatives", this._panel);
                 let elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.getCaps().standardDerivatives ? "Yes" : "No")}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.getCaps().standardDerivatives ? "Yes" : "No") }
                 });
-                elemLabel = this._createStatLabel("Compressed textures", this._panel);
+                this._createStatLabel("Compressed textures", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.getCaps().s3tc ? "Yes" : "No")}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.getCaps().s3tc ? "Yes" : "No") }
                 });
-                elemLabel = this._createStatLabel("Hardware instances", this._panel);
+                this._createStatLabel("Hardware instances", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.getCaps().instancedArrays ? "Yes" : "No")}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.getCaps().instancedArrays ? "Yes" : "No") }
                 });
-                elemLabel = this._createStatLabel("Texture float", this._panel);
+                this._createStatLabel("Texture float", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.getCaps().textureFloat ? "Yes" : "No")}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.getCaps().textureFloat ? "Yes" : "No") }
                 });
-                elemLabel = this._createStatLabel("32bits indices", this._panel);
+                this._createStatLabel("32bits indices", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.getCaps().uintIndices ? "Yes" : "No")}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.getCaps().uintIndices ? "Yes" : "No") }
                 });
-                elemLabel = this._createStatLabel("Fragment depth", this._panel);
+                this._createStatLabel("Fragment depth", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.getCaps().fragmentDepthSupported ? "Yes" : "No")}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.getCaps().fragmentDepthSupported ? "Yes" : "No") }
                 });
-                elemLabel = this._createStatLabel("High precision shaders", this._panel);
+                this._createStatLabel("High precision shaders", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.getCaps().highPrecisionShaderSupported ? "Yes" : "No")}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.getCaps().highPrecisionShaderSupported ? "Yes" : "No") }
                 });
-                elemLabel = this._createStatLabel("Draw buffers", this._panel);
+                this._createStatLabel("Draw buffers", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.getCaps().drawBuffersExtension ? "Yes" : "No")}
-                });                 
-                elemLabel = this._createStatLabel("Vertex array object", this._panel);
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.getCaps().drawBuffersExtension ? "Yes" : "No") }
+                });
+                this._createStatLabel("Vertex array object", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.getCaps().vertexArrayObject ? "Yes" : "No")}
-                }); 
-                elemLabel = this._createStatLabel("Timer query", this._panel);
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.getCaps().vertexArrayObject ? "Yes" : "No") }
+                });
+                this._createStatLabel("Timer query", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.getCaps().timerQuery ? "Yes" : "No")}
-                });                 
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.getCaps().timerQuery ? "Yes" : "No") }
+                });
             }
 
             title = Helpers.CreateDiv('stat-title2', this._panel);
             title.textContent = "Caps.";
             {
-                let elemLabel = this._createStatLabel("Stencil", this._panel);
+                this._createStatLabel("Stencil", this._panel);
                 let elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return (this._engine.isStencilEnable ? "Enabled" : "Disabled")}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return (this._engine.isStencilEnable ? "Enabled" : "Disabled") }
                 });
-                elemLabel = this._createStatLabel("Max textures units", this._panel);
+                this._createStatLabel("Max textures units", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._engine.getCaps().maxTexturesImageUnits.toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._engine.getCaps().maxTexturesImageUnits.toString() }
                 });
-                elemLabel = this._createStatLabel("Max textures size", this._panel);
+                this._createStatLabel("Max textures size", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._engine.getCaps().maxTextureSize.toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._engine.getCaps().maxTextureSize.toString() }
                 });
-                elemLabel = this._createStatLabel("Max anisotropy", this._panel);
+                this._createStatLabel("Max anisotropy", this._panel);
                 elemValue = Helpers.CreateDiv('stat-value', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return this._engine.getCaps().maxAnisotropy.toString()}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return this._engine.getCaps().maxAnisotropy.toString() }
                 });
             }
             title = Helpers.CreateDiv('stat-title2', this._panel);
             title.textContent = "Info";
             {
                 let elemValue = Helpers.CreateDiv('stat-infos', this._panel);
-                this._updatableProperties.push({ 
-                    elem:elemValue, 
-                    updateFct:() => { return "WebGL v" + this._engine.webGLVersion + " - " + this._glInfo.version + " - "+this._glInfo.renderer}
+                this._updatableProperties.push({
+                    elem: elemValue,
+                    updateFct: () => { return "WebGL v" + this._engine.webGLVersion + " - " + this._glInfo.version + " - " + this._glInfo.renderer }
                 });
             }
         }
-        
-        private _createStatLabel(content:string, parent: HTMLElement) : HTMLElement {
+
+        private _createStatLabel(content: string, parent: HTMLElement): HTMLElement {
             let elem = Helpers.CreateDiv('stat-label', parent);
             elem.textContent = content;
             return elem;
@@ -351,9 +351,9 @@ module INSPECTOR {
             this._engineInstrumentation = null;
         }
 
-        public active(b: boolean){
+        public active(b: boolean) {
             super.active(b);
-            if (b){
+            if (b) {
                 this._connectToInstrumentation();
                 this._scene.registerAfterRender(this._updateLoopHandler);
             }