"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSEngine/Src/LSEEngine.h

00001 
00017 #ifndef __LSE_ENGINE_H__
00018 #define __LSE_ENGINE_H__
00019 
00020 // Include the memory library.
00021 #include "LSAMemLib.h"
00022 using namespace ::lsa;
00023 
00024 // Include the compression library.
00025 #include "LSCCompressionLib.h"
00026 using namespace ::lsc;
00027 
00028 // Include the model library.
00029 #include "LSDModelLib.h"
00030 using namespace ::lsd;
00031 
00032 // Include the file library.
00033 #include "LSFFileLib.h"
00034 using namespace ::lsf;
00035 
00036 // Include the graphics library.
00037 #include "LSGGraphicsLib.h"
00038 using namespace ::lsg;
00039 
00040 // Include the threading library.
00041 #include "LSHThreadLib.h"
00042 using namespace ::lsh;
00043 
00044 // Include the image library.
00045 #include "LSIImageLib.h"
00046 using namespace ::lsi;
00047 
00048 // Include the math library.
00049 #include "LSMMathLib.h"
00050 using namespace ::lsm;
00051 
00052 // Include the network library.
00053 #include "LSNNetLib.h"
00054 using namespace ::lsn;
00055 
00056 // Include the physics library.
00057 #include "LSPPhysicsLib.h"
00058 using namespace ::lsp;
00059 
00060 // Include the terrain library.
00061 #include "LSTTerrainLib.h"
00062 using namespace ::lst;
00063 
00064 // Include the LSTL.
00065 #include "LSTLib.h"
00066 using namespace ::lstl;
00067 
00068 // Include the sound library.
00069 #include "LSSSoundLib.h"
00070 using namespace ::lss;
00071 
00072 // Include the standard library.
00073 #include "LSSTDStandardLib.h"
00074 using namespace ::lsstd;
00075 
00076 
00077 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00078 // MACROS
00079 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00085 #ifndef LSE_CONSTANTTIMESTEP
00086 #define LSE_CONSTANTTIMESTEP            (1000000ULL / 45ULL)
00087 #endif  // #ifndef LSE_CONSTANTTIMESTEP
00088 
00089 namespace lse {
00090 
00091         /*
00092          * Class CEngine
00093          *
00094          * Description: Cross-platform file functions.
00095          */
00096         class CEngine {
00097         public :
00098                 // == Types.
00103                 typedef struct LSE_ENGINE_INIT {
00107                         LSUINT32                                ui32HeapSize;
00108 
00112                         LSBOOL                                  bHeapIsGrowable;
00113                 } * LPLSE_ENGINE_INIT, * const LPCLSE_ENGINE_INIT;
00114 
00119                 typedef struct LSE_ENGINE_SECONDARY_INIT {
00124                         class CGame *                   pgGame;
00125 
00129                         LSUINT32                                ui32WindowWidth;
00130 
00134                         LSUINT32                                ui32WindowHeight;
00135 
00139                         LSUINT32                                ui32FullWidth;
00140 
00144                         LSUINT32                                ui32FullHeight;
00145 
00149                         const char *                    pcWindowTitle;
00150 
00154                         LSBOOL                                  bFullScreen;
00155                 } * LPLSE_ENGINE_SECONDARY_INIT, * const LPCLSE_ENGINE_SECONDARY_INIT;
00156 
00157                 
00158                 // == Functions.
00164                 static LSVOID LSE_CALL          InitEngine( const LSE_ENGINE_INIT &_eiParms );
00165 
00171                 static LSVOID LSE_CALL          SecondaryInit( const LSE_ENGINE_SECONDARY_INIT &_esiParms );
00172 
00178                 static LSINT32 LSE_CALL         Run();
00179                 
00183                 static LSVOID LSE_CALL          DestroyEngine();
00184                 
00185 
00186         protected :
00187                 // == Members.
00191                 static class CWindow *  m_pwWindow;
00192 
00193 #ifdef LSE_OSX
00194                 
00195 #endif  // #ifdef LSE_OSX
00196         };
00197 
00198 }       // namespace lse
00199 
00200 #endif  // __LSE_ENGINE_H__
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator