CBDL/cbdl.html

136 lines
2.9 KiB
HTML

<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;
this.Main = function() {
display = new CBDL.Graphics.Display(document.body, new CBDL.Graphics.VideoMode(320, 240, CBDL.Graphics.VM_SCALE), CBDL.Graphics.BACKEND.CANVAS_2D);
display.Init();
display.Fill(0x00, 0x00, 0x00);
var drawable = new display.Drawable();
console.log(drawable.testFunc);
drawable.testFunc();
events = new CBDL.Event(["keydown", "keyup", "focus", "blur"]);
(main_loop = new CBDL.Loop(this, onLoop)).start();
};
function onLoop(delta) {
while(event = events.pollEvent()) {
if (event.type == "blur") {
onBlur();
} else if (event.type == "focus") {
onFocus();
} else if (event.type == "keydown") {
console.log("keydown: "+event.keyCode);
} else if (event.type == "keyup") {
console.log("keyup: "+event.keyCode);
}
}
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>