1 /*  NAME:
2         E3Prefix.h
3 
4     DESCRIPTION:
5         Global prefix file for Quesa.
6 
7     COPYRIGHT:
8         Copyright (c) 1999-2004, Quesa Developers. All rights reserved.
9 
10         For the current release of Quesa, please see:
11 
12             <http://www.quesa.org/>
13 
14         Redistribution and use in source and binary forms, with or without
15         modification, are permitted provided that the following conditions
16         are met:
17 
18             o Redistributions of source code must retain the above copyright
19               notice, this list of conditions and the following disclaimer.
20 
21             o Redistributions in binary form must reproduce the above
22               copyright notice, this list of conditions and the following
23               disclaimer in the documentation and/or other materials provided
24               with the distribution.
25 
26             o Neither the name of Quesa nor the names of its contributors
27               may be used to endorse or promote products derived from this
28               software without specific prior written permission.
29 
30         THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
31         "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
32         LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
33         A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
34         OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
35         SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
36         TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
37         PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
38         LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
39         NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
40         SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41     ___________________________________________________________________________
42 */
43 #ifndef E3PREFIX_HDR
44 #define E3PREFIX_HDR
45 //=============================================================================
46 //      External build constants
47 //-----------------------------------------------------------------------------
48 // Enable inline APIs in non-debug builds
49 #if !defined(QUESA_ALLOW_INLINE_APIS) && !Q3_DEBUG
50 	#define QUESA_ALLOW_INLINE_APIS								1
51 #endif
52 
53 
54 
55 
56 
57 //=============================================================================
58 //      Temporary build constants
59 //-----------------------------------------------------------------------------
60 // Should TQ3Object be private within Quesa?
61 //
62 // For transitioning to private implementation.
63 #ifndef QUESA_OBJECTS_ARE_OPAQUE
64 	#define QUESA_OBJECTS_ARE_OPAQUE							1
65 #endif
66 
67 
68 
69 
70 
71 //=============================================================================
72 //      Include files
73 //-----------------------------------------------------------------------------
74 // Quesa (public)
75 #include "Quesa.h"
76 
77 
78 // Quesa (private, platform specific)
79 #if QUESA_OS_MACINTOSH
80 
81 	#include "E3MacPrefix.h"
82 
83 	#if QUESA_OS_COCOA
84 		#include "E3CocoaPrefix.h"
85 	#endif
86 
87 #elif QUESA_OS_WIN32
88 	#include "E3WindowsPrefix.h"
89 
90 #elif QUESA_OS_UNIX
91 	#include "E3UnixPrefix.h"
92 
93 #elif QUESA_OS_BE
94 	#include "E3BePrefix.h"
95 
96 #endif
97 
98 
99 
100 // Quesa (public)
101 #include "QuesaCamera.h"
102 #include "QuesaController.h"
103 #include "QuesaCustomElements.h"
104 #include "QuesaDrawContext.h"
105 #include "QuesaErrors.h"
106 #include "QuesaExtension.h"
107 #include "QuesaGeometry.h"
108 #include "QuesaGroup.h"
109 #include "QuesaIO.h"
110 #include "QuesaLight.h"
111 #include "QuesaMath.h"
112 #include "QuesaMemory.h"
113 #include "QuesaPick.h"
114 #include "QuesaRenderer.h"
115 #include "QuesaSet.h"
116 #include "QuesaShader.h"
117 #include "QuesaStorage.h"
118 #include "QuesaString.h"
119 #include "QuesaStyle.h"
120 #include "QuesaTransform.h"
121 #include "QuesaView.h"
122 
123 
124 // Quesa (private, platform independent)
125 #include "E3Debug.h"
126 #include "E3Globals.h"
127 #include "E3Main.h"
128 #include "E3Utils.h"
129 #include "E3System.h"
130 #include "E3ErrorManager.h"
131 
132 
133 // ANSI
134 #include <string.h>
135 #include <math.h>
136 
137 
138 
139 
140 
141 //=============================================================================
142 //      Internal build constants
143 //-----------------------------------------------------------------------------
144 // Make sure extensions are turned on when we're building Quesa itself
145 #if !QUESA_ALLOW_QD3D_EXTENSIONS
146 	#error "QD3D extensions should never be turned off when building Quesa itself"
147 #endif
148 
149 
150 // Dumps class tree stats on Q3Exit
151 #ifndef QUESA_DUMP_STATS_ON_EXIT
152 	#define QUESA_DUMP_STATS_ON_EXIT							0
153 #endif
154 
155 
156 // Enable internal timing stats
157 #ifndef QUESA_TIMING_STATS
158 	#define QUESA_TIMING_STATS									0
159 #endif
160 
161 
162 // Should we register the built-in plug-ins?
163 #ifndef QUESA_REGISTER_BUILTIN_PLUGINS
164 	#define QUESA_REGISTER_BUILTIN_PLUGINS						1
165 #endif
166 
167 
168 // Are we being built as a static library?
169 #ifndef QUESA_BUILD_AS_STATIC_LIBRARY
170 	#define QUESA_BUILD_AS_STATIC_LIBRARY						0
171 #endif
172 
173 
174 // Do we have to be binary compatible with QD3D?
175 #ifndef QUESA_BUILD_AS_BINARY_COMPATIBLE
176 	#define QUESA_BUILD_AS_BINARY_COMPATIBLE					0
177 #endif
178 
179 
180 // Are C++ exceptions enabled?
181 #ifndef QUESA_USE_EXCEPTIONS
182 	#ifdef __MWERKS__
183 		#if __option(exceptions)
184 			#define	QUESA_USE_EXCEPTIONS						1
185 		#else
186 			#define	QUESA_USE_EXCEPTIONS						0
187 		#endif
188 	#else
189 		#define QUESA_USE_EXCEPTIONS							1
190 	#endif
191 #endif
192 
193 #if	QUESA_USE_EXCEPTIONS
194 	#define		TRY			try
195 	#define		CATCH_ALL	catch (...) {}
196 #else
197 	#define		TRY
198 	#define		CATCH_ALL
199 #endif
200 
201 
202 #endif
203