source: nrEngine/include/Prerequisities.h @ 1

Revision 1, 5.5 KB checked in by art, 13 years ago (diff)
Line 
1/***************************************************************************
2 *                                                                         *
3 *   (c) Art Tevs, MPI Informatik Saarbruecken                             *
4 *       mailto: <tevs@mpi-sb.mpg.de>                                      *
5 *                                                                         *
6 *   This program is free software; you can redistribute it and/or modify  *
7 *   it under the terms of the GNU General Public License as published by  *
8 *   the Free Software Foundation; either version 2 of the License, or     *
9 *   (at your option) any later version.                                   *
10 *                                                                         *
11 ***************************************************************************/
12
13#ifndef __NR_PREREQUISITIES_H_
14#define __NR_PREREQUISITIES_H_
15
16
17//------------------------------------------------------------------------------
18//      First get all information about the used platform
19//------------------------------------------------------------------------------
20#include "Platform.h"
21
22//------------------------------------------------------------------------------
23//      Standard library includings and definitions
24//------------------------------------------------------------------------------
25#include "StdHeaders.h"
26
27//------------------------------------------------------------------------------
28//      Now follows all forward declarations and type definitions
29//------------------------------------------------------------------------------
30namespace nrEngine{
31
32        //------------------------------------------------------------------------------
33        //      Version Information
34        //  MAJOR.MINOR.PATH  - for example  0.3.1
35        //------------------------------------------------------------------------------
36        #define NR_VERSION_MAJOR 0
37        #define NR_VERSION_MINOR 0
38        #define NR_VERSION_PATCH 7
39        #define NR_VERSION_NAME "Azuro"
40        #define NR_DEFAULT_EVENT_CHANNEL "nrEngine_default_channel"
41       
42        //------------------------------------------------------------------------------
43        //      Version Information unsigned integer
44        //  We have 8 bit for each component of the version part.
45        //  The integer is build in the way to be ably to test it against each self.
46        //  Lesser number means we have got one of the version parts smaller than
47        //  another one.
48        //------------------------------------------------------------------------------
49        const unsigned int nrEngineVersion =    NR_VERSION_MAJOR * 256 * 256 +
50                                                                                        NR_VERSION_MINOR * 256 +
51                                                                                        NR_VERSION_PATCH;
52       
53        //------------------------------------------------------------------------------
54        //      Some macros that makes the life easier
55        //------------------------------------------------------------------------------       
56        #define NR_SAFE_DELETE(p)       { if(p) { delete (p);     (p)=NULL; } }
57        #define NR_SAFE_DELETE_ARRAY(p) { if(p) { delete[] (p);   (p)=NULL; } }
58       
59        #define NR_ENGINE_PROFILING
60       
61        //------------------------------------------------------------------------------
62        //      Basic-type definitions used in the engine
63        //------------------------------------------------------------------------------
64        typedef unsigned char   BYTE;
65        typedef unsigned char   byte;
66        typedef unsigned char   uchar;
67       
68        typedef char                    int8;
69        typedef unsigned char   uint8;
70       
71        typedef signed short    int16;
72        typedef unsigned short  uint16;
73       
74        typedef signed int              int32;
75        typedef unsigned int    uint32;
76       
77        typedef float                   float32;
78        typedef double                  float64;
79       
80        #if NR_PLATFORM == NR_PLATFORM_WIN32
81                typedef   signed __int64  int64;
82                typedef unsigned __int64 uint64;
83        #else
84                typedef   signed long long  int64;
85                typedef unsigned long long uint64;
86        #endif
87       
88        //----------------------------------------------------------------------------------
89        // Forward declarations of used classes.
90        //----------------------------------------------------------------------------------
91        class                                                                           Clock;
92        class                                                                           CPriority;
93        template<class T, class value_parser> class CDator;
94        template<class T, class value_parser> class CDatorList;
95        class                                                                           CStringDator;
96        template<class T> class                                         CValueParser;
97        class                                                                           Engine;
98        class                                                                           ExceptionManager;
99        class                                                                           Exception;
100        class                                                                           IDator;
101        class                                                                           ITask;
102        class                                                                           ITimeObserver;
103        class                                                                           Profiler;
104        class                                                                           Profile;
105        class                                                                           TimeSource;
106               
107        class                                                                           EmptyPlugin;
108        class                                                                           PluginLoader;
109        class                                                                           Plugin;
110       
111        class                                                                           IResourcePtr;
112        class                                                                           IResource;
113        class                                                                           ResourceManager;
114        class                                                                           ResourceHolder;
115        template<class ResType> class                           ResourcePtr;
116        class                                                                           IResourceLoader;
117       
118        class                                                                           Kernel;
119        class                                                                           Log;
120        class                                                                           NameValuePairs;
121        class                                                                           Timer; 
122
123        class                                                                           IStream;
124
125        class                                                                           IFileSystem;
126        class                                                                           FileSystem;
127
128        class                                                                           ScriptEngine;
129        class                                                                           IScript;
130        class                                                                           Script;
131        class                                                                           ScriptLoader;
132
133        class                                                                           EventManager;
134        class                                                                           EventChannel;
135        class                                                                           EventActor;
136        class                                                                           Event;
137        class                                                                           EventFactory;
138       
139        class                                                                           VarArg;
140       
141}; // end namespace
142
143
144//----------------------------------------------------------------------------------
145// Some includes that are essential for engine's work
146//----------------------------------------------------------------------------------
147#include "Result.h"
148#include "KeySym.h"
149#include "StdHelpers.h"
150#include "SmartPtr.h"
151#include "GetTime.h"
152#include "VariadicArgument.h"
153
154#endif
Note: See TracBrowser for help on using the repository browser.