"L. Spiro Engine"
|
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__