162 lines
3.7 KiB
HTML
162 lines
3.7 KiB
HTML
<!DOCTYPE html>
|
|
<head>
|
|
<script type="text/javascript" src="CBDL.js"></script>
|
|
<script type="text/javascript">
|
|
myBenchmark = function() {
|
|
var events;
|
|
|
|
this.Main = function() {
|
|
var results = 0;
|
|
events = new CBDL.Event();
|
|
console.log("first test, 50 iterations of 1000:");
|
|
for(var i=0;i<50;i++) {
|
|
results += this.firstTest();
|
|
}
|
|
console.log("results: "+(results/50));
|
|
console.log("second test, 50 iterations of 1000:");
|
|
results = 0;
|
|
for(var i=0;i<50;i++) {
|
|
results += this.secondTest();
|
|
}
|
|
console.log("results: "+(results/50));
|
|
};
|
|
|
|
this.firstTest = function() {
|
|
var time_start = new Date().getTime();
|
|
for(var i=0;i<1000;i++) {
|
|
var object = {};
|
|
object.type = "test";
|
|
events.event_pool.push(object);
|
|
}
|
|
while(event = events.pollEvent()) {
|
|
if (object.type == "test") {
|
|
// just a test
|
|
} else if (object.type == "mousemove") {
|
|
// doot doot
|
|
} else if (object.type == "keypress") {
|
|
//la la
|
|
}
|
|
}
|
|
var time_end = new Date().getTime();
|
|
return(time_end-time_start);
|
|
};
|
|
|
|
TEST = 0x01;
|
|
MOUSEMOVE = 0x02;
|
|
KEYPRESS = 0x03;
|
|
|
|
this.events_list = {
|
|
"test": TEST,
|
|
"mousemove": MOUSEMOVE,
|
|
"keypress": KEYPRESS
|
|
};
|
|
|
|
this.secondTest = function() {
|
|
var time_start = new Date().getTime();
|
|
for(var i=0;i<1000;i++) {
|
|
var object = {};
|
|
object.type = "test";
|
|
events.event_pool.push(object);
|
|
}
|
|
while(event = events.pollEvent()) {
|
|
switch(this.events_list[object.type]) {
|
|
case TEST:
|
|
// something
|
|
break;
|
|
case MOUSEMOVE:
|
|
// something else
|
|
break;
|
|
case KEYPRESS:
|
|
// doop doop
|
|
break;
|
|
}
|
|
}
|
|
var time_end = new Date().getTime();
|
|
return(time_end-time_start);
|
|
};
|
|
}; CBDL.extend(CBDL.App, myBenchmark);
|
|
|
|
myApp2 = function() {
|
|
this.name = "myApp2";
|
|
this.requires = ["CBDL_graphics.js"];
|
|
var display; // private member
|
|
var main_loop; // private member
|
|
var events;
|
|
var event;
|
|
|
|
var drawable, drawable2, drawable3;
|
|
var rotation = 0;
|
|
var x = 0, y = 0;
|
|
|
|
this.Main = function() {
|
|
display = new CBDL.Graphics.Display(document.body, new CBDL.Graphics.VideoMode(320, 240, CBDL.Graphics.VM_SCALE), CBDL.Graphics.BACKEND.WEBGL);
|
|
console.log("Display Type: "+display.type);
|
|
display.Init();
|
|
display.Fill(0x00, 0x00, 0x00);
|
|
|
|
drawable = new display.Image("test.gif", {x: 1, y: 1}, rotation);
|
|
drawable2 = new display.Image("test.gif", {x: 2, y: 2}, rotation);
|
|
drawable3 = new display.Image("test.gif", {x: 3, y: 3}, rotation);
|
|
|
|
events = new CBDL.Event(["keydown", "keyup"], document.body);
|
|
events.addEvent(["blur", "focus"], window);
|
|
|
|
(main_loop = new CBDL.Loop(this, onLoop)).start();
|
|
};
|
|
|
|
var keys = [];
|
|
|
|
function onLoop(delta) {
|
|
display.clear();
|
|
while(event = events.pollEvent()) {
|
|
if (event.type == "blur") {
|
|
onBlur();
|
|
} else if (event.type == "focus") {
|
|
onFocus();
|
|
} else if (event.type == "keydown") {
|
|
keys[event.keyCode] = true;
|
|
} else if (event.type == "keyup") {
|
|
keys[event.keyCode] = false;
|
|
}
|
|
}
|
|
if (keys[39]) {
|
|
rotation += 1;
|
|
x += 1;
|
|
drawable.setRotation(rotation);
|
|
drawable2.setRotation(rotation);
|
|
drawable3.setRotation(rotation);
|
|
}
|
|
if (keys[37]) {
|
|
rotation -= 1;
|
|
x -= 1;
|
|
drawable.setRotation(rotation);
|
|
drawable2.setRotation(rotation);
|
|
drawable3.setRotation(rotation);
|
|
}
|
|
display.draw(drawable, {x:0, y:0}, {x: x, y: y});
|
|
display.draw(drawable2, {x:0, y:0}, {x: x+32, y: y+32});
|
|
display.draw(drawable3, {x:0, y:0}, {x: x+96, y: y+96});
|
|
return(10);
|
|
};
|
|
|
|
function onFocus() {
|
|
display.Fill(0x00, 0x00, 0x00);
|
|
};
|
|
|
|
function onBlur() {
|
|
display.Fill(0x4F, 0x4F, 0x4F);
|
|
};
|
|
|
|
}; CBDL.extend(CBDL.App, myApp2);
|
|
|
|
init = function() {
|
|
var app_2 = new myApp2();
|
|
app_2.Go();
|
|
}
|
|
CBDL.addEvent(window, 'load', init);
|
|
</script>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
</html>
|