aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/lib/FreeImage
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-05-08 17:57:26 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-05-08 17:57:26 +0000
commit9aa48684216b0dca926fa7e68a1b843dc1a872ce (patch)
treeb4b62b3ad8c815d048c7e6093f4b952a2086d346 /Game/Code/lib/FreeImage
parent0dd7fd1b3a6276a39699a00e72289f264b7fdd4f (diff)
downloadusdx-9aa48684216b0dca926fa7e68a1b843dc1a872ce.tar.gz
usdx-9aa48684216b0dca926fa7e68a1b843dc1a872ce.tar.xz
usdx-9aa48684216b0dca926fa7e68a1b843dc1a872ce.zip
- added the {$H+} switch for FPC (was introduced for the MacOSX before). This will use AnsiString (no length restriction and passed as pointer) instead of ShortString (= array[0..255] of Char). This is the standard in Delphi so we should use it in FPC too. The FPC reference doc states that {$H-} is standard in FPC, but for any reason in my FPC 2.2.0 for win {$H+} is standard. Maybe the reference guide is somewhat outdated, so probably nothing changed because H+ was the default already.
- removed DLL_CDECL from switches.inc and put it directly into the headers (used in bass and freeimage). Libs shouldn't be declared STDCALL or CDECL globally because it depends on how the libs are compiled. For windows, STDCALL and CDECL are possible, so please define this on a per library base. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1069 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'Game/Code/lib/FreeImage')
-rwxr-xr-xGame/Code/lib/FreeImage/FreeBitmap.pas8
-rwxr-xr-xGame/Code/lib/FreeImage/FreeImage.pas22
2 files changed, 26 insertions, 4 deletions
diff --git a/Game/Code/lib/FreeImage/FreeBitmap.pas b/Game/Code/lib/FreeImage/FreeBitmap.pas
index 47be822e..26a7f243 100755
--- a/Game/Code/lib/FreeImage/FreeBitmap.pas
+++ b/Game/Code/lib/FreeImage/FreeBitmap.pas
@@ -1,8 +1,5 @@
unit FreeBitmap;
-{$I switches.inc}
-
-
// ==========================================================
//
// Delphi wrapper for FreeImage 3
@@ -34,6 +31,11 @@ unit FreeBitmap;
//
// ==========================================================
+{$IFDEF FPC}
+ {$MODE Delphi}
+ {$H+} // use AnsiString
+{$ENDIF}
+
interface
uses
diff --git a/Game/Code/lib/FreeImage/FreeImage.pas b/Game/Code/lib/FreeImage/FreeImage.pas
index a1c0e7de..c33d1bc8 100755
--- a/Game/Code/lib/FreeImage/FreeImage.pas
+++ b/Game/Code/lib/FreeImage/FreeImage.pas
@@ -32,10 +32,30 @@ interface
uses Windows;
-{$MINENUMSIZE 4} // Make sure enums are stored as an integer to be compatible with C/C++
+{$IFDEF FPC}
+ {$MODE DELPHI}
+ {$PACKENUM 4} (* use 4-byte enums *)
+ {$PACKRECORDS C} (* C/C++-compatible record packing *)
+{$ELSE}
+ {$MINENUMSIZE 4} (* use 4-byte enums *)
+{$ENDIF}
+
+{$IFDEF MSWINDOWS}
+ {$DEFINE DLL_STDCALL}
+{$ELSE}
+ {$DEFINE DLL_CDECL}
+{$ENDIF}
const
+{$IFDEF MSWINDOWS}
+ FIDLL = 'freeimage.dll';
+{$ENDIF}
+{$IFDEF LINUX}
+ FIDLL = 'libfreeimage.so';
+{$ENDIF}
+{$IFDEF DARWIN}
FIDLL = 'libfreeimage.dylib';
+{$ENDIF}
// --------------------------------------------------------------------------
// Bitmap types -------------------------------------------------------------