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