source: nrEngine/include/Prerequisities.h @ 31

Revision 31, 5.5 KB checked in by art, 12 years ago (diff)

dynamicResourceManagment Plugin added.

TODO: change file association list of resources. This is required
by the drm plugin to be able to reload the resource as soon as one of
the associated file changes.

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 8
39        #define NR_VERSION_NAME "Alores"
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                                                                                 CPriority;
92        template<class T, class value_parser> class CDator;
93        template<class T, class value_parser> class CDatorList;
94        class                                                                           CStringDator;
95        template<class T> class                                         CValueParser;
96        */
97       
98        class                                                                           Clock;
99        class                                                                           Engine;
100        class                                                                           ExceptionManager;
101        class                                                                           Exception;
102        class                                                                           ITask;
103        class                                                                           ITimeObserver;
104        class                                                                           Profiler;
105        class                                                                           Profile;
106        class                                                                           TimeSource;
107               
108        class                                                                           EmptyPlugin;
109        class                                                                           PluginLoader;
110        class                                                                           Plugin;
111       
112        class                                                                           IResourcePtr;
113        class                                                                           IResource;
114        class                                                                           ResourceManager;
115        class                                                                           ResourceHolder;
116        template<class ResType> class                           ResourcePtr;
117        class                                                                           IResourceLoader;
118       
119        class                                                                           Kernel;
120        class                                                                           Log;
121        //class                                                                                 NameValuePairs;
122        class                                                                           Timer; 
123
124        class                                                                           IStream;
125
126        class                                                                           IFileSystem;
127        class                                                                           FileSystem;
128
129        class                                                                           ScriptEngine;
130        class                                                                           IScript;
131        class                                                                           Script;
132        class                                                                           ScriptLoader;
133
134        class                                                                           EventManager;
135        class                                                                           EventChannel;
136        class                                                                           EventActor;
137        class                                                                           Event;
138        class                                                                           EventFactory;
139       
140        class                                                                           VarArg;
141        class                                                                           Property;
142        class                                                                           PropertyManager;
143       
144}; // end namespace
145
146
147//----------------------------------------------------------------------------------
148// Some includes that are essential for engine's work
149//----------------------------------------------------------------------------------
150#include "Result.h"
151#include "KeySym.h"
152#include "StdHelpers.h"
153#include "SmartPtr.h"
154#include "GetTime.h"
155#include "VariadicArgument.h"
156
157#endif
Note: See TracBrowser for help on using the repository browser.