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
     }