1 //****************************************************************************** 2 /// 3 /// @file povms/configpovms.h 4 /// 5 /// This header file defines all types that can be configured by platform 6 /// specific code for parser layer use. It further allows insertion of platform 7 /// specific function prototypes making use of those types. 8 /// 9 /// @copyright 10 /// @parblock 11 /// 12 /// Persistence of Vision Ray Tracer ('POV-Ray') version 3.8. 13 /// Copyright 1991-2018 Persistence of Vision Raytracer Pty. Ltd. 14 /// 15 /// POV-Ray is free software: you can redistribute it and/or modify 16 /// it under the terms of the GNU Affero General Public License as 17 /// published by the Free Software Foundation, either version 3 of the 18 /// License, or (at your option) any later version. 19 /// 20 /// POV-Ray is distributed in the hope that it will be useful, 21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of 22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 /// GNU Affero General Public License for more details. 24 /// 25 /// You should have received a copy of the GNU Affero General Public License 26 /// along with this program. If not, see <http://www.gnu.org/licenses/>. 27 /// 28 /// ---------------------------------------------------------------------------- 29 /// 30 /// POV-Ray is based on the popular DKB raytracer version 2.12. 31 /// DKBTrace was originally written by David K. Buck. 32 /// DKBTrace Ver 2.0-2.12 were written by David K. Buck & Aaron A. Collins. 33 /// 34 /// @endparblock 35 /// 36 //****************************************************************************** 37 38 #ifndef POVRAY_POVMS_CONFIGPOVMS_H 39 #define POVRAY_POVMS_CONFIGPOVMS_H 40 41 #if !defined(__cplusplus) 42 // When compiling as part of the POV-Ray project, povms.c must be compiled as a C++ file, 43 // due to potential C++-isms in the base/configbase.h header included via this file. 44 #error "povms.c must be compiled as a C++ file when used as part of the POV-Ray project." 45 #endif 46 47 #include "base/configbase.h" 48 #include "syspovconfigpovms.h" 49 50 //############################################################################## 51 /// 52 /// @defgroup PovMSConfig POVMS Compile-Time Configuration 53 /// @ingroup PovMS 54 /// @ingroup PovConfig 55 /// 56 /// @{ 57 58 //****************************************************************************** 59 // The following override the defaults in povms.h and povms.c, as those are 60 // chosen for a C environment potentially detached from POV-Ray, while we have 61 // C++ and the POV-Ray base configuration at our disposal. 62 63 #ifndef POVMSType 64 #define POVMSType POV_UINT32 65 #endif 66 67 #ifndef POVMSLong 68 #define POVMSLong POV_INT64 69 #define SetPOVMSLong(v,h,l) *v = (((((POVMSLong)(h)) & 0x00000000ffffffff) << 32) | (((POVMSLong)(l)) & 0x00000000ffffffff)) 70 #define GetPOVMSLong(h,l,v) *h = ((v) >> 32) & 0x00000000ffffffff; *l = (v) & 0x00000000ffffffff 71 #endif 72 73 #ifndef POVMSBool 74 #define POVMSBool bool 75 #endif 76 77 #ifndef POVMSTrue 78 #define POVMSTrue true 79 #endif 80 81 #ifndef POVMSFalse 82 #define POVMSFalse false 83 #endif 84 85 #ifndef POVMSUCS2 86 #define POVMSUCS2 UCS2 87 #endif 88 89 #ifndef kDefaultTimeout 90 #ifdef _DEBUG 91 // a long timeout so we can break into the debugger 92 #define kDefaultTimeout 100 93 #endif 94 #endif 95 96 //****************************************************************************** 97 98 /// @} 99 /// 100 //############################################################################## 101 102 #endif // POVRAY_POVMS_CONFIGPOVMS_H 103