1
//----------------------------------------------------------
3
//----------------------------------------------------------
17
//----------------------------------------------------------
18
// getShader collects shader and compiles it. Errors are printed in alert
19
//----------------------------------------------------------
21
function getShader(gl, id) {
22
var shaderScript = document.getElementById(id);
28
var k = shaderScript.firstChild;
30
if (k.nodeType == 3) {
37
if (shaderScript.type == "x-shader/x-fragment") {
38
shader = gl.createShader(gl.FRAGMENT_SHADER);
39
} else if (shaderScript.type == "x-shader/x-vertex") {
40
shader = gl.createShader(gl.VERTEX_SHADER);
45
gl.shaderSource(shader, str);
46
gl.compileShader(shader);
48
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
49
alert(gl.getShaderInfoLog(shader));
56
//----------------------------------------------------------
57
// Matrix stack variables
58
//----------------------------------------------------------
60
var mvMatrix = mat4.create();
61
var mvMatrixStack = [];
62
var pMatrix = mat4.create();
64
//----------------------------------------------------------
66
//----------------------------------------------------------
68
function mvPushMatrix() {
69
var copy = mat4.create();
70
mat4.set(mvMatrix, copy);
71
mvMatrixStack.push(copy);
74
//----------------------------------------------------------
76
//----------------------------------------------------------
78
function mvPopMatrix() {
79
if (mvMatrixStack.length == 0) {
80
throw "Invalid popMatrix!";
82
mvMatrix = mvMatrixStack.pop();
85
//----------------------------------------------------------
86
// Startup webGL and alert if not available
87
//----------------------------------------------------------
89
function initGL(canvas) {
91
gl = canvas.getContext("experimental-webgl");
92
gl.viewportWidth = canvas.width;
93
gl.viewportHeight = canvas.height;
96
alert("Could not initialise WebGL, sorry :-(");
100
//----------------------------------------------------------
101
// Measure fps and update div if available
102
//----------------------------------------------------------
104
function updatefps(elapsed,fpsdiv)
107
timecount+=(elapsed/1000.0);
108
fpssum+=(elapsed/10.0);
110
if(elapsed<1) elapsed=1;
113
fps=Math.round((100.0/(fpssum/fpscount))*10.0)/10.0;
115
if(fps>fpsmax&&timecount>5.0) fpsmax=fps;
117
fpsd=document.getElementById(fpsdiv);
118
if(fpsd!=null) fpsd.innerHTML=fps;
122
//----------------------------------------------------------
123
// Sends benchmark every X seconds
124
//----------------------------------------------------------
126
function sendbenchmark(delay,app)
128
// Every 8 seconds send benchmark data to server!
129
if(Math.abs(timecount-benchtime)>delay){
131
Benchmark(username,app,fps,fpsmax,Math.round(timecount*10.0)/10.0);
135
//----------------------------------------------------------
136
// Generate benchmark userID
137
//----------------------------------------------------------
141
username = localStorage.getItem("Benchuser"); //Try to fetch username data
142
if (username==null||username==""){
143
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
145
for( var i=0; i < 16; i++ ) text += possible.charAt(Math.floor(Math.random() * possible.length));
147
localStorage.setItem("Benchuser",username);
151
Benchmark(username,app,fps,fpsmax,Math.round(timecount*10.0)/10.0);
154
//----------------------------------------------------------
155
// Send Benchmark using httpajax.js
156
//----------------------------------------------------------
158
function Benchmark(username,app,fps,maxfps,runtime)
160
var paramstr='User='+escape(username);
161
paramstr+="&App="+escape(app);
162
paramstr+="&Fps="+escape(fps);
163
paramstr+="&MaxFps="+escape(maxfps);
164
paramstr+="&RunTime="+escape(runtime);
165
AjaxService("Benchy.php",paramstr);
b'\\ No newline at end of file'
1
//----------------------------------------------------------
3
//----------------------------------------------------------
17
//----------------------------------------------------------
18
// getShader collects shader and compiles it. Errors are printed in alert
19
//----------------------------------------------------------
21
function getShader(gl, id) {
22
var shaderScript = document.getElementById(id);
28
var k = shaderScript.firstChild;
30
if (k.nodeType == 3) {
37
if (shaderScript.type == "x-shader/x-fragment") {
38
shader = gl.createShader(gl.FRAGMENT_SHADER);
39
} else if (shaderScript.type == "x-shader/x-vertex") {
40
shader = gl.createShader(gl.VERTEX_SHADER);
45
gl.shaderSource(shader, str);
46
gl.compileShader(shader);
48
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
49
alert(gl.getShaderInfoLog(shader));
56
//----------------------------------------------------------
57
// Matrix stack variables
58
//----------------------------------------------------------
60
var mvMatrix = mat4.create();
61
var mvMatrixStack = [];
62
var pMatrix = mat4.create();
64
//----------------------------------------------------------
66
//----------------------------------------------------------
68
function mvPushMatrix() {
69
var copy = mat4.create();
70
mat4.set(mvMatrix, copy);
71
mvMatrixStack.push(copy);
74
//----------------------------------------------------------
76
//----------------------------------------------------------
78
function mvPopMatrix() {
79
if (mvMatrixStack.length == 0) {
80
throw "Invalid popMatrix!";
82
mvMatrix = mvMatrixStack.pop();
85
//----------------------------------------------------------
86
// Startup webGL and alert if not available
87
//----------------------------------------------------------
89
function initGL(canvas) {
91
gl = canvas.getContext("experimental-webgl");
92
gl.viewportWidth = canvas.width;
93
gl.viewportHeight = canvas.height;
98
alert("Could not initialise WebGL, sorry :-(");
102
//----------------------------------------------------------
103
// Measure fps and update div if available
104
//----------------------------------------------------------
106
function updatefps(elapsed,fpsdiv) {
107
if(!isNaN(elapsed)) {
108
timecount += (elapsed / 1000.0);
109
fpssum += (elapsed / 10.0);
116
fps = Math.round((100.0 / (fpssum / fpscount)) * 10.0) / 10.0;
118
if(fps > fpsmax&&timecount > 5.0) {
122
fpsd = document.getElementById(fpsdiv);
124
fpsd.innerHTML = fps;
129
//----------------------------------------------------------
130
// Sends benchmark every X seconds
131
//----------------------------------------------------------
133
function sendbenchmark(delay,app) {
134
// Every 8 seconds send benchmark data to server!
135
if(Math.abs(timecount - benchtime) > delay) {
136
benchtime = timecount;
137
benchmark(username, app, fps, fpsmax, Math.round(timecount * 10.0) / 10.0);
141
//----------------------------------------------------------
142
// Generate benchmark userID
143
//----------------------------------------------------------
145
function genID(app) {
146
username = localStorage.getItem("Benchuser"); //Try to fetch username data
147
if (username == null || username == "") {
148
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
150
for(var i = 0; i < 16; i++) {
151
text += possible.charAt(Math.floor(Math.random() * possible.length));
154
localStorage.setItem("Benchuser", username);
157
benchmark(username, app, fps, fpsmax, Math.round(timecount * 10.0) / 10.0);
160
//----------------------------------------------------------
161
// Send benchmark using httpajax.js
162
//----------------------------------------------------------
164
function benchmark(username, app, fps, maxfps, runtime) {
165
var paramstr = 'User=' + escape(username);
166
paramstr += "&App=" + escape(app);
167
paramstr += "&Fps=" + escape(fps);
168
paramstr += "&MaxFps=" + escape(maxfps);
169
paramstr += "&RunTime=" + escape(runtime);
170
AjaxService("Benchy.php", paramstr);