CBDL/cbdl.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.DIV);
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>