mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	emscripten: replace shell_minimal.html with 'soft fullscreen' version
This commit is contained in:
		@@ -2,150 +2,61 @@
 | 
				
			|||||||
<html lang="en-us">
 | 
					<html lang="en-us">
 | 
				
			||||||
  <head>
 | 
					  <head>
 | 
				
			||||||
    <meta charset="utf-8">
 | 
					    <meta charset="utf-8">
 | 
				
			||||||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>
 | 
				
			||||||
    <title>Dear ImGui Emscripten example</title>
 | 
					    <title>Dear ImGui Emscripten example</title>
 | 
				
			||||||
    <style>
 | 
					    <style>
 | 
				
			||||||
      .emscripten { padding-right: 0; margin-left: auto; margin-right: auto; display: block; }
 | 
					        body { margin: 0; background-color: black }
 | 
				
			||||||
      textarea.emscripten { font-family: monospace; width: 80%; }
 | 
					        .emscripten {
 | 
				
			||||||
      div.emscripten { text-align: center; }
 | 
					            position: absolute;
 | 
				
			||||||
      /* div.emscripten_border { border: 1px solid black; } */
 | 
					            top: 0px;
 | 
				
			||||||
      /* the canvas *must not* have any border or padding, or mouse coords will be wrong */
 | 
					            left: 0px;
 | 
				
			||||||
      canvas.emscripten { border: 0px none; background-color: black; }
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					            border: 0;
 | 
				
			||||||
      a:link { color: #000000; }
 | 
					            width: 100%;
 | 
				
			||||||
      a:visited { color: #000000; }
 | 
					            height: 100%;
 | 
				
			||||||
      a:active { color: #000000; }
 | 
					            overflow: hidden;
 | 
				
			||||||
 | 
					            display: block;
 | 
				
			||||||
      .spinner {
 | 
					            image-rendering: optimizeSpeed;
 | 
				
			||||||
        height: 50px;
 | 
					            image-rendering: -moz-crisp-edges;
 | 
				
			||||||
        width: 50px;
 | 
					            image-rendering: -o-crisp-edges;
 | 
				
			||||||
        margin: 0px auto;
 | 
					            image-rendering: -webkit-optimize-contrast;
 | 
				
			||||||
        -webkit-animation: rotation .8s linear infinite;
 | 
					            image-rendering: optimize-contrast;
 | 
				
			||||||
        -moz-animation: rotation .8s linear infinite;
 | 
					            image-rendering: crisp-edges;
 | 
				
			||||||
        -o-animation: rotation .8s linear infinite;
 | 
					            image-rendering: pixelated;
 | 
				
			||||||
        animation: rotation 0.8s linear infinite;
 | 
					            -ms-interpolation-mode: nearest-neighbor;
 | 
				
			||||||
        border-left: 10px solid rgb(0,150,240);
 | 
					 | 
				
			||||||
        border-right: 10px solid rgb(0,150,240);
 | 
					 | 
				
			||||||
        border-bottom: 10px solid rgb(0,150,240);
 | 
					 | 
				
			||||||
        border-top: 10px solid rgb(100,0,200);
 | 
					 | 
				
			||||||
        border-radius: 100%;
 | 
					 | 
				
			||||||
        background-color: rgb(200,100,250);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      @-webkit-keyframes rotation {
 | 
					 | 
				
			||||||
        from {-webkit-transform: rotate(0deg);}
 | 
					 | 
				
			||||||
        to {-webkit-transform: rotate(360deg);}
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      @-moz-keyframes rotation {
 | 
					 | 
				
			||||||
        from {-moz-transform: rotate(0deg);}
 | 
					 | 
				
			||||||
        to {-moz-transform: rotate(360deg);}
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      @-o-keyframes rotation {
 | 
					 | 
				
			||||||
        from {-o-transform: rotate(0deg);}
 | 
					 | 
				
			||||||
        to {-o-transform: rotate(360deg);}
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      @keyframes rotation {
 | 
					 | 
				
			||||||
        from {transform: rotate(0deg);}
 | 
					 | 
				
			||||||
        to {transform: rotate(360deg);}
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    </style>
 | 
					    </style>
 | 
				
			||||||
  </head>
 | 
					  </head>
 | 
				
			||||||
  <body>
 | 
					  <body>
 | 
				
			||||||
    <figure style="overflow:visible;" id="spinner"><div class="spinner"></div><center style="margin-top:0.5em"><strong>emscripten</strong></center></figure>
 | 
					 | 
				
			||||||
    <div class="emscripten" id="status">Downloading...</div>
 | 
					 | 
				
			||||||
    <div class="emscripten">
 | 
					 | 
				
			||||||
      <progress value="0" max="100" id="progress" hidden=1></progress>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    <div class="emscripten">
 | 
					 | 
				
			||||||
    <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas>
 | 
					    <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas>
 | 
				
			||||||
      Example compiled from <a href="https://github.com/ocornut/imgui">https://github.com/ocornut/imgui</a>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    <br>
 | 
					 | 
				
			||||||
    <div class="emscripten">
 | 
					 | 
				
			||||||
      <input type="button" value="Fullscreen" onclick="Module.requestFullscreen(false, false)">
 | 
					 | 
				
			||||||
      <!-- <input type="checkbox" id="resize">Resize canvas -->
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
    <br>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <textarea class="emscripten" id="output" rows="4"></textarea>
 | 
					 | 
				
			||||||
    <script type='text/javascript'>
 | 
					    <script type='text/javascript'>
 | 
				
			||||||
      var statusElement = document.getElementById('status');
 | 
					 | 
				
			||||||
      var progressElement = document.getElementById('progress');
 | 
					 | 
				
			||||||
      var spinnerElement = document.getElementById('spinner');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      var Module = {
 | 
					      var Module = {
 | 
				
			||||||
        preRun: [],
 | 
					        preRun: [],
 | 
				
			||||||
        postRun: [],
 | 
					        postRun: [],
 | 
				
			||||||
        print: (function() {
 | 
					        print: (function() {
 | 
				
			||||||
          var element = document.getElementById('output');
 | 
					 | 
				
			||||||
          if (element) element.value = ''; // clear browser cache
 | 
					 | 
				
			||||||
            return function(text) {
 | 
					            return function(text) {
 | 
				
			||||||
            if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' ');
 | 
					                text = Array.prototype.slice.call(arguments).join(' ');
 | 
				
			||||||
            // These replacements are necessary if you render to raw HTML
 | 
					 | 
				
			||||||
            //text = text.replace(/&/g, "&");
 | 
					 | 
				
			||||||
            //text = text.replace(/</g, "<");
 | 
					 | 
				
			||||||
            //text = text.replace(/>/g, ">");
 | 
					 | 
				
			||||||
            //text = text.replace('\n', '<br>', 'g');
 | 
					 | 
				
			||||||
                console.log(text);
 | 
					                console.log(text);
 | 
				
			||||||
            if (element) {
 | 
					 | 
				
			||||||
              element.value += text + "\n";
 | 
					 | 
				
			||||||
              element.scrollTop = element.scrollHeight; // focus on bottom
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
        })(),
 | 
					        })(),
 | 
				
			||||||
        printErr: function(text) {
 | 
					        printErr: function(text) {
 | 
				
			||||||
          if (arguments.length > 1) text = Array.prototype.slice.call(arguments).join(' ');
 | 
					            text = Array.prototype.slice.call(arguments).join(' ');
 | 
				
			||||||
          if (0) { // XXX disabled for safety typeof dump == 'function') {
 | 
					 | 
				
			||||||
            dump(text + '\n'); // fast, straight to the real console
 | 
					 | 
				
			||||||
          } else {
 | 
					 | 
				
			||||||
            console.error(text);
 | 
					            console.error(text);
 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        canvas: (function() {
 | 
					        canvas: (function() {
 | 
				
			||||||
            var canvas = document.getElementById('canvas');
 | 
					            var canvas = document.getElementById('canvas');
 | 
				
			||||||
 | 
					            //canvas.addEventListener("webglcontextlost", function(e) { alert('FIXME: WebGL context lost, please reload the page'); e.preventDefault(); }, false);
 | 
				
			||||||
          // As a default initial behavior, pop up an alert when webgl context is lost. To make your
 | 
					 | 
				
			||||||
          // application robust, you may want to override this behavior before shipping!
 | 
					 | 
				
			||||||
          // See http://www.khronos.org/registry/webgl/specs/latest/1.0/#5.15.2
 | 
					 | 
				
			||||||
          canvas.addEventListener("webglcontextlost", function(e) { alert('WebGL context lost. You will need to reload the page.'); e.preventDefault(); }, false);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            return canvas;
 | 
					            return canvas;
 | 
				
			||||||
        })(),
 | 
					        })(),
 | 
				
			||||||
        setStatus: function(text) {
 | 
					        setStatus: function(text) {
 | 
				
			||||||
          if (!Module.setStatus.last) Module.setStatus.last = { time: Date.now(), text: '' };
 | 
					            console.log("status: " + text);
 | 
				
			||||||
          if (text === Module.setStatus.last.text) return;
 | 
					 | 
				
			||||||
          var m = text.match(/([^(]+)\((\d+(\.\d+)?)\/(\d+)\)/);
 | 
					 | 
				
			||||||
          var now = Date.now();
 | 
					 | 
				
			||||||
          if (m && now - Module.setStatus.last.time < 30) return; // if this is a progress update, skip it if too soon
 | 
					 | 
				
			||||||
          Module.setStatus.last.time = now;
 | 
					 | 
				
			||||||
          Module.setStatus.last.text = text;
 | 
					 | 
				
			||||||
          if (m) {
 | 
					 | 
				
			||||||
            text = m[1];
 | 
					 | 
				
			||||||
            progressElement.value = parseInt(m[2])*100;
 | 
					 | 
				
			||||||
            progressElement.max = parseInt(m[4])*100;
 | 
					 | 
				
			||||||
            progressElement.hidden = false;
 | 
					 | 
				
			||||||
            spinnerElement.hidden = false;
 | 
					 | 
				
			||||||
          } else {
 | 
					 | 
				
			||||||
            progressElement.value = null;
 | 
					 | 
				
			||||||
            progressElement.max = null;
 | 
					 | 
				
			||||||
            progressElement.hidden = true;
 | 
					 | 
				
			||||||
            if (!text) spinnerElement.hidden = true;
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
          statusElement.innerHTML = text;
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        totalDependencies: 0,
 | 
					 | 
				
			||||||
        monitorRunDependencies: function(left) {
 | 
					        monitorRunDependencies: function(left) {
 | 
				
			||||||
          this.totalDependencies = Math.max(this.totalDependencies, left);
 | 
					            // no run dependencies to log
 | 
				
			||||||
          Module.setStatus(left ? 'Preparing... (' + (this.totalDependencies-left) + '/' + this.totalDependencies + ')' : 'All downloads complete.');
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      Module.setStatus('Downloading...');
 | 
					 | 
				
			||||||
      window.onerror = function() {
 | 
					      window.onerror = function() {
 | 
				
			||||||
        Module.setStatus('Exception thrown, see JavaScript console');
 | 
					        console.log("onerror: " + event);
 | 
				
			||||||
        spinnerElement.style.display = 'none';
 | 
					 | 
				
			||||||
        Module.setStatus = function(text) {
 | 
					 | 
				
			||||||
          if (text) Module.printErr('[post-exception status] ' + text);
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    </script>
 | 
					    </script>
 | 
				
			||||||
    {{{ SCRIPT }}}
 | 
					    {{{ SCRIPT }}}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user