Mercurial > projects > mde
diff mde/mde.d @ 30:467c74d4804d
Major changes to the scheduler, previously only used by the main loop.
Revamped Scheduler. Functions can be removed, have multiple schedules, have their scheduling changed, etc.
Scheduler has a unittest. Checked all pass.
Main loop scheduler moved to mde. Draw-on-demand currently disabled, simplifying this.
Made mtunitest.d remove the temporary file it uses afterwards.
committer: Diggory Hardy <diggory.hardy@gmail.com>
author | Diggory Hardy <diggory.hardy@gmail.com> |
---|---|
date | Mon, 28 Apr 2008 10:59:47 +0100 |
parents | 0aa621b3e070 |
children | baa87e68d7dc |
line wrap: on
line diff
--- a/mde/mde.d Sat Apr 12 14:10:13 2008 +0100 +++ b/mde/mde.d Mon Apr 28 10:59:47 2008 +0100 @@ -22,12 +22,11 @@ // Comment to show use, where only used minimally: import global = mde.global; // global.run -import mde.SDL; // unused (but must be linked in) -import mde.events; // unused (but must be linked in) -import mde.gui.gui; // unused (but must be linked in) +import gl = mde.gl; // gl.draw +import mde.events; // pollEvents import mde.scheduler.Init; -import mde.scheduler.runTime; // Scheduler.run() +import mde.scheduler.Scheduler; // Scheduler.run() import mde.scheduler.exception; // InitException import tango.core.Thread : Thread; // Thread.sleep() @@ -49,8 +48,15 @@ } //END Initialisation + //BEGIN Main loop setup + Scheduler scheduler = new Scheduler; // main loop's scheduler + + scheduler.add (scheduler.getNewID, &mde.events.pollEvents).frame = true; + scheduler.add (global.SCHEDULE.DRAW, &gl.draw).frame = true; // draw. for now, every frame. + //END Main loop setup + while (global.run) { - Scheduler.run (Clock.now()); + scheduler.execute (Clock.now()); Thread.sleep (0.050); // sleep this many seconds }