| <!DOCTYPE html> |
| <!-- |
| * Copyright 2014 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| --> |
| |
| <html> |
| <head> |
| <title>WebGL Clear Test</title> |
| <script type="text/javascript" src="tdl/base.js"></script> |
| <script type="text/javascript"> |
| tdl.require('tdl.fps'); |
| tdl.require('tdl.webgl'); |
| |
| window.onload = initialize; |
| |
| var g_fpsTimer; // object to measure frames per second |
| |
| function initialize() { |
| var then = 0.0; |
| var last = 0.0; |
| var fpsElem = document.getElementById('fps'); |
| var canvas = document.getElementById('canvas'); |
| var w = 1024; |
| var h = 1024; |
| |
| canvas.width = w; |
| canvas.height = h; |
| |
| tdl.fps.NUM_FRAMES_TO_AVERAGE = 120; |
| g_fpsTimer = new tdl.fps.FPSTimer(); |
| |
| gl = tdl.webgl.setupWebGL(canvas, {alpha:false,antialias:false}); |
| if (!gl) { |
| return false; |
| } |
| |
| gl.clearColor( |
| Math.random(), Math.random(), Math.random(), 1.0); |
| gl.viewport(0, 0, w, h); |
| |
| function render() { |
| tdl.webgl.requestAnimationFrame(render, canvas); |
| |
| var now = (new Date()).getTime(); |
| var elapsedTime = 0.0; |
| if (then != 0.0) { |
| elapsedTime = now - then; |
| } |
| then = now; |
| |
| g_fpsTimer.update(elapsedTime * 0.001); |
| fpsElem.innerHTML = g_fpsTimer.averageFPS; |
| |
| // Regulate how often we change the clear color over time. If we |
| // were to change the color every frame then, depending on the |
| // FPS rate, this would potentially happen very very fast and is |
| // really irritating to watch. I'm not sure how much impact |
| // changing the color really has on performance, if any. |
| // Nonetheless, changing the color periodically gives us a |
| // visual cue that somethings actually happening. |
| if (now - last > 500) { |
| gl.clearColor( |
| Math.random(), Math.random(), Math.random(), 1.0); |
| last = now; |
| } |
| |
| // Clear color and depth buffers |
| gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); |
| } |
| |
| render(); |
| |
| return true; |
| } |
| </script> |
| </head> |
| <body> |
| <div>fps: <span id="fps"></span></div> |
| <canvas id="canvas" width="1024" height="1024" style="width: 100%; height: 100%;"></canvas> |
| </body> |
| </html> |