view mde/mde.d @ 27:0aa621b3e070

Some GUI work, plus a small fix in the paths module. Implemented GUI code to load windows from file with a basic widget and draw. Fixed a bug in mde.resource.paths.mdeDirectory.makeMTReader when called with readOrder == PRIORITY.HIGH_ONLY. committer: Diggory Hardy <diggory.hardy@gmail.com>
author Diggory Hardy <diggory.hardy@gmail.com>
date Fri, 04 Apr 2008 17:07:38 +0100
parents 611f7b9063c6
children 467c74d4804d
line wrap: on
line source

/* LICENSE BLOCK
Part of mde: a Modular D game-oriented Engine
Copyright © 2007-2008 Diggory Hardy

This program is free software: you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation, either
version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>. */

/** Modular D Engine
 *
 * This module contains main(), which calls Init and runs the main loop.
 */
module mde.mde;

// 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 mde.scheduler.Init;
import mde.scheduler.runTime;           // Scheduler.run()
import mde.scheduler.exception;         // InitException

import tango.core.Thread : Thread;	// Thread.sleep()
import tango.time.Clock;                // Clock.now()
import tango.util.log.Log : Log, Logger;

int main()
{
    //BEGIN Initialisation
    Logger logger = Log.getLogger ("mde.mde");
    logger.info ("Starting mde...");
    
    scope Init init;
    try {
        init = new Init();	// initialisation
    } catch (InitException e) {
        logger.fatal ("Initialisation failed: " ~ e.msg);
        return 1;
    }
    //END Initialisation
    
    while (global.run) {
        Scheduler.run (Clock.now());
        
        Thread.sleep (0.050);	// sleep this many seconds
    }
    
    return 0;		// cleanup handled by init's DTOR
}