ImagingOptions.inc
上传用户:yj_qiu
上传日期:2022-08-08
资源大小:23636k
文件大小:6k
源码类别:

游戏引擎

开发平台:

Delphi

  1. { $Id: ImagingOptions.inc 154 2008-12-27 15:41:09Z galfar $ }
  2. {
  3.   User Options
  4.   Following defines and options can be changed by user.
  5. }
  6. { Source options. }
  7. {$DEFINE USE_INLINE}          // use function inlining for some functions
  8.                               // works in Free Pascal and Delphi 9+
  9. {$DEFINE USE_ASM}             // if defined, assembler versions of some
  10.                               // functions will be used (only for x86)
  11. {.$DEFINE DEBUG}               // if defined, debug info, range/IO/overflow
  12.                               // checking, stack frames, assertions, and
  13.                               // other debugging options will be turned on
  14. { File format support linking options.
  15.   Define formats which you don't want to be registred automatically.
  16.   Default: all formats are registered, no symbols defined.}
  17. {$DEFINE DONT_LINK_JPEG}        // link support for Jpeg images
  18. {$DEFINE DONT_LINK_PNG}         // link support for PNG images
  19. {$DEFINE DONT_LINK_TARGA}       // link support for Targa images
  20. {.$DEFINE DONT_LINK_BITMAP}      // link support for Windows Bitmap images
  21. {$DEFINE DONT_LINK_DDS}         // link support for DDS images
  22. {$DEFINE DONT_LINK_GIF}         // link support for GIF images
  23. {$DEFINE DONT_LINK_MNG}         // link support for MNG images
  24. {$DEFINE DONT_LINK_JNG}         // link support for JNG images
  25. {$DEFINE DONT_LINK_PNM}         // link support for PortableMap images (PBM, PGM, PPM, PAM, PFM)
  26. {.$DEFINE DONT_LINK_EXTRAS}  // link support for file formats defined in
  27.                              // Extras package. Exactly which formats will be
  28.                              // registered depends on settings in
  29.                              // ImagingExtras.pas unit.
  30. {.$DEFINE DONT_LINK_JPEG2000}    // link support for JPEG2000 images
  31. {$DEFINE DONT_LINK_TIFF}        // link support for TIFF images
  32. {$DEFINE DONT_LINK_PSD}         // link support for PSD images
  33. {$DEFINE DONT_LINK_PCX}         // link support for PCX images
  34. {$DEFINE DONT_LINK_XPM}         // link support for XPM images
  35. {$DEFINE DONT_LINK_ELDER}        // link support for Elder Imagery images
  36. { Component set used in ImagignComponents.pas unit. You usually don't need
  37.   to be concerned with this - proper component library is selected automatically
  38.   according to your compiler. }
  39. {.$DEFINE COMPONENT_SET_VCL}   // use Delphi VCL
  40. { $DEFINE COMPONENT_SET_LCL}  // use Lazarus LCL (set automatically when compiling with FPC)
  41. {
  42.   Auto Options
  43.   Following options and defines are set automatically and some
  44.   are required for Imaging to compile successfully. Do not change
  45.   anything here if you don't know what you are doing.
  46. }
  47. { Compiler options }
  48. {$ALIGN ON}               // Field alignment: 8 Bytes (in D6+)
  49. {$BOOLEVAL OFF}           // Boolean eval: off
  50. {$EXTENDEDSYNTAX ON}      // Extended syntax: on
  51. {$LONGSTRINGS ON}         // string = AnsiString: on
  52. {$MINENUMSIZE 4}          // Min enum size: 4 B
  53. {$TYPEDADDRESS OFF}       // Typed pointers: off
  54. {$WRITEABLECONST OFF}     // Writeable constants: off
  55. {$IFNDEF FPC}
  56.   {$DEFINE DCC}           // if not using FPC then DCC compiler is used (Delphi/Kylix)
  57.                           // others are not supported
  58. {$ENDIF}
  59. {$IFDEF DCC}
  60.   {$IFDEF LINUX}
  61.     {$DEFINE KYLIX}       // using Kylix
  62.   {$ENDIF}
  63. {$ENDIF}
  64. {$IFDEF DCC}
  65.   {$IFNDEF KYLIX}
  66.     {$DEFINE DELPHI}      // using Delphi
  67.   {$ENDIF}
  68. {$ENDIF}
  69. {$IF (Defined(DCC) and (CompilerVersion >= 18.5))}
  70.   {$IFDEF RELEASE}
  71.     {$UNDEF DEBUG} // If we are using Delphi 2007+ where you can set
  72.                    // DEBUG/RELEASE mode in project options and RELEASE
  73.                    // is currently set we undef DEBUG mode
  74.   {$ENDIF}
  75. {$IFEND}
  76. {$IFDEF DEBUG}
  77.   {$ASSERTIONS ON}
  78.   {$DEBUGINFO ON}
  79.   {$RANGECHECKS ON}
  80.   {$IOCHECKS ON}
  81.   {$OVERFLOWCHECKS ON}
  82.   {$IFDEF DCC}
  83.     {$OPTIMIZATION OFF}
  84.     {$STACKFRAMES ON}
  85.     {$LOCALSYMBOLS ON}
  86.     {$DEFINE MEMCHECK}
  87.   {$ENDIF}
  88.   {$IFDEF FPC}
  89.     {$S+}
  90.     {$CHECKPOINTER ON}
  91.   {$ENDIF}
  92. {$ELSE}
  93.   {$ASSERTIONS OFF}
  94.   {$DEBUGINFO OFF}
  95.   {$RANGECHECKS OFF}
  96.   {$IOCHECKS OFF}
  97.   {$OVERFLOWCHECKS OFF}
  98.   {$IFDEF DCC}
  99.     {$OPTIMIZATION ON}
  100.     {$STACKFRAMES OFF}
  101.     {$LOCALSYMBOLS OFF}
  102.   {$ENDIF}
  103.   {$IFDEF FPC}
  104.     {$S-}
  105.   {$ENDIF}
  106. {$ENDIF}
  107. { Compiler capabilities }
  108. // Define if compiler supports inlining of functions and procedures
  109. // Note that FPC inline support crashed in older versions (1.9.8)
  110. {$IF (Defined(DCC) and (CompilerVersion >= 17)) or (Defined(FPC) and Defined(CPU86))}
  111.   {$DEFINE HAS_INLINE}
  112. {$IFEND}
  113. // Define if compiler supports advanced records with methods
  114. {$IF (Defined(DCC) and (CompilerVersion >= 18)) }
  115.   {$DEFINE HAS_ADVANCED_RECORDS}
  116. {$IFEND}
  117. // Define if compiler supports operator overloading
  118. // (unfortunately Delphi and FPC operator overloaing is not compatible)
  119. {$IF (Defined(DCC) and (CompilerVersion >= 18)) or Defined(FPC)}
  120.   {$DEFINE HAS_OPERATOR_OVERLOADING}
  121. {$IFEND}
  122. { Imaging options check}
  123. {$IFNDEF HAS_INLINE}
  124.   {$UNDEF USE_INLINE}
  125. {$ENDIF}
  126. {$IFDEF FPC}
  127.   {$IFNDEF CPU86}
  128.     {$UNDEF USE_ASM}
  129.   {$ENDIF}
  130. {$ENDIF}
  131. {$IFDEF FPC}
  132.   {$DEFINE COMPONENT_SET_LCL}
  133.   {$UNDEF COMPONENT_SET_VCL}
  134. {$ENDIF}
  135. {$IFDEF DELPHI}
  136.   {$UNDEF COMPONENT_SET_LCL}
  137.   {$DEFINE COMPONENT_SET_VCL}
  138. {$ENDIF}
  139. { Platform options }
  140. {$IFDEF WIN32}
  141.   {$DEFINE MSWINDOWS}
  142. {$ENDIF}
  143. {$IFDEF DPMI}
  144.   {$DEFINE MSDOS}
  145. {$ENDIF}
  146. {$IFDEF LINUX}
  147.   {$DEFINE UNIX}
  148. {$ENDIF}
  149. { More compiler options }
  150. {$IFDEF FPC}               // Free Pascal options - some options set above (like min enum size)
  151.                            // are reset to defaults by setting {$MODE} so they are
  152.                            // redeclared here 
  153.   {$MODE DELPHI}           // compatible with delphi
  154.   {$GOTO ON}               // alow goto
  155.   {$PACKRECORDS 8}         // same as ALING 8 for Delphi
  156.   {$PACKENUM 4}            // Min enum size: 4 B
  157.   {$CALLING REGISTER}      // default calling convention is register
  158.   {$IFDEF CPU86}
  159.     {$ASMMODE INTEL}       // intel assembler mode
  160.   {$ENDIF}
  161. {$ENDIF}
  162. {$IFDEF HAS_INLINE}        
  163.   {$INLINE ON}             // turns inlining on for compilers that support it
  164. {$ENDIF}