summaryrefslogtreecommitdiff
path: root/packages/libgd
diff options
context:
space:
mode:
authorpierre <pierre@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-11-16 10:54:52 +0000
committerpierre <pierre@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-11-16 10:54:52 +0000
commit747a59c4dea938d0f9a66ad42eb1ab645517dc76 (patch)
tree63d8cd7b19cef7d97cc3fb438ade9d265d3046b9 /packages/libgd
parentaddf3d4e1fc739a5b76a7528006f023901847471 (diff)
downloadfpc-747a59c4dea938d0f9a66ad42eb1ab645517dc76.tar.gz
* Try to fix compilation failure for go32v2
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@14199 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/libgd')
-rw-r--r--packages/libgd/examples/gdtest.pp2
-rw-r--r--packages/libgd/examples/gdtestcgi.pp2
-rw-r--r--packages/libgd/src/gd.pas88
3 files changed, 55 insertions, 37 deletions
diff --git a/packages/libgd/examples/gdtest.pp b/packages/libgd/examples/gdtest.pp
index 3966a87d64..fb8d20db55 100644
--- a/packages/libgd/examples/gdtest.pp
+++ b/packages/libgd/examples/gdtest.pp
@@ -3,7 +3,7 @@
program gdtest;
-uses libgd;
+uses gd;
var
f:pFile;
diff --git a/packages/libgd/examples/gdtestcgi.pp b/packages/libgd/examples/gdtestcgi.pp
index ea637092d7..154fc8c602 100644
--- a/packages/libgd/examples/gdtestcgi.pp
+++ b/packages/libgd/examples/gdtestcgi.pp
@@ -3,7 +3,7 @@
program gdtestcgi;
-uses libgd;
+uses gd;
var
f:pFile;
diff --git a/packages/libgd/src/gd.pas b/packages/libgd/src/gd.pas
index f516c3a30b..253f7cccdb 100644
--- a/packages/libgd/src/gd.pas
+++ b/packages/libgd/src/gd.pas
@@ -10,11 +10,20 @@ unit gd;
{$H+}
{$MINENUMSIZE 4}
+
+{$DEFINE FPC_TARGET_SUPPORTS_DYNLIBS}
+
+{$IFDEF GO32V2}
+ {$UNDEF FPC_TARGET_SUPPORTS_DYNLIBS}
+{$ENDIF GO32V2}
+
interface
uses
Classes,
+{$IFDEF FPC_TARGET_SUPPORTS_DYNLIBS}
dynlibs,
+{$ENDIF FPC_TARGET_SUPPORTS_DYNLIBS}
ctypes;
{$IFDEF UNIX}
@@ -29,6 +38,14 @@ uses
gdlib = 'bgd.dll';
clib = 'msvcrt.dll';
{$ENDIF}
+{$IFDEF GO32V2}
+ {$DEFINE EXTDECL := cdecl}
+ {$DEFINE gdlib := }
+ {$DEFINE clib := }
+ {$linklib gd}
+ {$linklib c}
+ {$UNDEF LOAD_DYNAMICALLY}
+{$ENDIF GO32V2}
{$IFNDEF LOAD_DYNAMICALLY}
{$IFDEF darwin}
@@ -56,8 +73,8 @@ const
* that the above copyright notice appear in all copies and that both that
* copyright notice and this permission notice appear in supporting
* documentation. This software is provided "AS IS." Thomas Boutell and
- * Boutell.Com, Inc. disclaim all warranties, either express or implied,
- * including but not limited to implied warranties of merchantability and
+ * Boutell.Com, Inc. disclaim all warranties, either express or implied,
+ * including but not limited to implied warranties of merchantability and
* fitness for a particular purpose, with respect to this code and accompanying
* documentation. *)
@@ -89,19 +106,19 @@ const
(* Image type. See functions below; you will not need to change
the elements directly. Use the provided macros to
- access sx, sy, the color table, and colorsTotal for
+ access sx, sy, the color table, and colorsTotal for
read-only purposes. *)
-(* If 'truecolor' is set true, the image is truecolor;
+(* If 'truecolor' is set true, the image is truecolor;
pixels are represented by integers, which
- must be 32 bits wide or more.
+ must be 32 bits wide or more.
True colors are repsented as follows:
ARGB
Where 'A'(alpha channel) occupies only the
- LOWER 7 BITS of the MSB. This very small
+ LOWER 7 BITS of the MSB. This very small
loss of alpha channel resolution allows gd 2.x
to keep backwards compatibility by allowing
signed integers to be used to represent colors,
@@ -121,7 +138,7 @@ function gdTrueColorGetRed(c: cint): cint; inline;
function gdTrueColorGetGreen(c: cint): cint; inline;
function gdTrueColorGetBlue(c: cint): cint; inline;
-(* This function accepts truecolor pixel values only. The
+(* This function accepts truecolor pixel values only. The
source color is composited with the destination color
based on the alpha channel value of the source color.
The resulting color is opaque. *)
@@ -146,7 +163,7 @@ type
open: array[0..gdMaxColors-1] of cint;
(* For backwards compatibility, this is set to the
first palette entry with 100% transparency,
- and is also set and reset by the
+ and is also set and reset by the
gdImageColorTransparent function. Newer
applications can allocate palette entries
with any desired level of transparency; however,
@@ -172,7 +189,7 @@ type
really support multiple levels of transparency in
palettes, to my knowledge, as of 2/15/01. Most
common browsers will display 100% opaque and
- 100% transparent correctly, and do something
+ 100% transparent correctly, and do something
unpredictable and/or undesirable for levels
in between. TBB *)
alpha: array[0..gdMaxColors-1] of cint;
@@ -183,7 +200,7 @@ type
(* Should alpha channel be copied, or applied, each time a
pixel is drawn? This applies to truecolor images only.
No attempt is made to alpha-blend in palette images,
- even if semitransparent palette entries exist.
+ even if semitransparent palette entries exist.
To do that, build your image as a truecolor image,
then quantize down to 8 bits. *)
alphaBlendingFlag: cint;
@@ -312,9 +329,9 @@ procedure gdImageDestroy(im: gdImagePtr); EXTDECL; external gdlib {$IFDEF WINDOW
(* Replaces or blends with the background depending on the
most recent call to gdImageAlphaBlending and the
- alpha channel value of 'color'; default is to overwrite.
+ alpha channel value of 'color'; default is to overwrite.
Tiling and line styling are also implemented
- here. All other gd drawing functions pass through this call,
+ here. All other gd drawing functions pass through this call,
allowing for many useful effects. *)
procedure gdImageSetPixel(im: gdImagePtr; x: cint; y: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSetPixel@16'{$ENDIF};
@@ -346,17 +363,17 @@ procedure gdImageString16(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; s: pwi
procedure gdImageStringUp16(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; s: pwidechar; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageStringUp16@24'{$ENDIF};
(* 2.0.16: for thread-safe use of gdImageStringFT and friends,
- call this before allowing any thread to call gdImageStringFT.
+ call this before allowing any thread to call gdImageStringFT.
Otherwise it is invoked by the first thread to invoke
- gdImageStringFT, with a very small but real risk of a race condition.
+ gdImageStringFT, with a very small but real risk of a race condition.
Return 0 on success, nonzero on failure to initialize freetype. *)
function gdFontCacheSetup(): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFontCacheSetup@0'{$ENDIF};
-(* Optional: clean up after application is done using fonts in
+(* Optional: clean up after application is done using fonts in
BGD_DECLARE( ) gdImageStringFT(). *)
procedure gdFontCacheShutdown(); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFontCacheShutdown@0'{$ENDIF};
(* 2.0.20: for backwards compatibility. A few applications did start calling
- this function when it first appeared although it was never documented.
+ this function when it first appeared although it was never documented.
Simply invokes gdFontCacheShutdown. *)
procedure gdFreeFontCache(); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFreeFontCache@0'{$ENDIF};
@@ -374,7 +391,7 @@ type
gdFTStringExtra = record
flags: cint; (* Logical OR of gdFTEX_ values *)
linespacing: double; (* fine tune line spacing for '\n' *)
- charmap: cint;
+ charmap: cint;
(* TBB: 2.0.12: may be gdFTEX_Unicode,
gdFTEX_Shift_JIS, gdFTEX_Big5,
or gdFTEX_Adobe_Custom;
@@ -389,13 +406,13 @@ type
the last string.
NB. The caller is responsible for gdFree'ing
- the xshow string.
+ the xshow string.
*)
fontpath: pchar; (* if(flags & gdFTEX_RETURNFONTPATHNAME)
then, on return, fontpath is a malloc'ed
string containing the actual font file path name
used, which can be interesting when fontconfig
- is in use.
+ is in use.
The caller is responsible for gdFree'ing the
fontpath string.
@@ -410,20 +427,20 @@ const
gdFTEX_DISABLE_KERNING = 8;
gdFTEX_XSHOW = 16;
(* The default unless gdFTUseFontConfig(1); has been called:
- fontlist is a full or partial font file pathname or list thereof
+ fontlist is a full or partial font file pathname or list thereof
(i.e. just like before 2.0.29) *)
gdFTEX_FONTPATHNAME = 32;
(* Necessary to use fontconfig patterns instead of font pathnames
- as the fontlist argument, unless gdFTUseFontConfig(1); has
+ as the fontlist argument, unless gdFTUseFontConfig(1); has
been called. New in 2.0.29 *)
gdFTEX_FONTCONFIG = 64;
(* Sometimes interesting when fontconfig is used: the fontpath
element of the structure above will contain a gdMalloc'd string
- copy of the actual font file pathname used, if this flag is set
+ copy of the actual font file pathname used, if this flag is set
when the call is made *)
gdFTEX_RETURNFONTPATHNAME = 128;
-(* If flag is nonzero, the fontlist parameter to gdImageStringFT
+(* If flag is nonzero, the fontlist parameter to gdImageStringFT
and gdImageStringFTEx shall be assumed to be a fontconfig font pattern
if fontconfig was compiled into gd. This function returns zero
if fontconfig is not available, nonzero otherwise. *)
@@ -437,7 +454,8 @@ const
gdFTEX_Big5 = 2;
gdFTEX_Adobe_Custom = 3;
-function gdImageStringFTEx(im: gdImagePtr; brect: pcint; fg: cint; fontlist: pchar; ptsize: double; angle: double; x: cint; y: cint; str: pchar; strex: gdFTStringExtraPtr): pchar; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageStringFTEx@40'{$ENDIF};
+function gdImageStringFTEx(im: gdImagePtr; brect: pcint; fg: cint; fontlist: pchar; ptsize: double; angle: double; x: cint; y: cint; str: pchar; strex: gdFTStringExtraPtr): pchar; EXTDECL;
+ external gdlib {$IFDEF WINDOWS}name '_gdImageStringFTEx@40'{$ENDIF};
(* Point type for use in polygon drawing. *)
type
@@ -450,7 +468,7 @@ procedure gdImagePolygon(im: gdImagePtr; p: gdPointPtr; n: cint; c: cint); EXTDE
procedure gdImageOpenPolygon(im: gdImagePtr; p: gdPointPtr; n: cint; c: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageOpenPolygon@16'{$ENDIF};
procedure gdImageFilledPolygon(im: gdImagePtr; p: gdPointPtr; n: cint; c: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageFilledPolygon@16'{$ENDIF};
-(* These functions still work with truecolor images,
+(* These functions still work with truecolor images,
for which they never return error. *)
function gdImageColorAllocate(im: gdImagePtr; r: cint; g: cint; b: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorAllocate@16'{$ENDIF};
(* gd 2.0: palette entries with non-opaque transparency are permitted. *)
@@ -498,10 +516,10 @@ procedure gdImageColorDeallocate(im: gdImagePtr; color: cint); EXTDECL; external
Better yet, don't use these function -- write real
truecolor PNGs and JPEGs. The disk space gain of
conversion to palette is not great(for small images
- it can be negative) and the quality loss is ugly.
+ it can be negative) and the quality loss is ugly.
DIFFERENCES: gdImageCreatePaletteFromTrueColor creates and
- returns a new image. gdImageTrueColorToPalette modifies
+ returns a new image. gdImageTrueColorToPalette modifies
an existing image, and the truecolor pixels are discarded. *)
function gdImageCreatePaletteFromTrueColor(im: gdImagePtr; ditherFlag: cint; colorsWanted: cint): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreatePaletteFromTrueColor@16'{$ENDIF};
@@ -608,7 +626,7 @@ function gdImageGd2Ptr(im: gdImagePtr; cs: cint; fmt: cint; var size: cint): poi
gdArc and gdChord are mutually exclusive;
gdChord just connects the starting and ending
angles with a straight line, while gdArc produces
- a rounded edge. gdPie is a synonym for gdArc.
+ a rounded edge. gdPie is a synonym for gdArc.
gdNoFill indicates that the arc or chord should be
outlined, not filled. gdEdged, used together with
gdNoFill, indicates that the beginning and ending
@@ -643,8 +661,8 @@ procedure gdImageCopyResized(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY:
destination pixel, taking into account what portion of the
destination pixel each source pixel represents. This is a
floating point operation, but this is not a performance issue
- on modern hardware, except for some embedded devices. If the
- destination is a palette image, gdImageCopyResized is
+ on modern hardware, except for some embedded devices. If the
+ destination is a palette image, gdImageCopyResized is
substituted automatically. *)
procedure gdImageCopyResampled(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY: cint; srcX: cint; srcY: cint; dstW: cint; dstH: cint; srcW: cint; srcH: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCopyResampled@40'{$ENDIF};
@@ -662,7 +680,7 @@ procedure gdImageSetTile(im: gdImagePtr; tile: gdImagePtr); EXTDECL; external gd
procedure gdImageSetAntiAliased(im: gdImagePtr; c: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSetAntiAliased@8'{$ENDIF};
procedure gdImageSetAntiAliasedDontBlend(im: gdImagePtr; c: cint; dont_blend: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSetAntiAliasedDontBlend@12'{$ENDIF};
procedure gdImageSetStyle(im: gdImagePtr; style: pcint; noOfPixels: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSetStyle@12'{$ENDIF};
-(* Line thickness(defaults to 1). Affects lines, ellipses,
+(* Line thickness(defaults to 1). Affects lines, ellipses,
rectangles, polygons and so forth. *)
procedure gdImageSetThickness(im: gdImagePtr; thickness: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSetThickness@8'{$ENDIF};
(* On or off(1 or 0) for all three of these. *)
@@ -698,14 +716,14 @@ function gdImageTrueColorPixel(im: gdImagePtr; x, y: cint): cint; inline;
function gdNewFileCtx(p: PFILE): gdIOCtxPtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdNewFileCtx@4'{$ENDIF};
(* If data is null, size is ignored and an initial data buffer is
- allocated automatically. NOTE: this function assumes gd has the right
- to free or reallocate "data" at will! Also note that gd will free
+ allocated automatically. NOTE: this function assumes gd has the right
+ to free or reallocate "data" at will! Also note that gd will free
"data" when the IO context is freed. If data is not null, it must point
to memory allocated with gdMalloc, or by a call to gdImage[something]Ptr.
If not, see gdNewDynamicCtxEx for an alternative. *)
function gdNewDynamicCtx(size: cint; data: pointer): gdIOCtxPtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdNewDynamicCtx@8'{$ENDIF};
(* 2.0.21: if freeFlag is nonzero, gd will free and/or reallocate "data" as
- needed as described above. If freeFlag is zero, gd will never free
+ needed as described above. If freeFlag is zero, gd will never free
or reallocate "data," which means that the context should only be used
for *reading* an image from a memory buffer, or writing an image to a
memory buffer which is already large enough. If the memory buffer is
@@ -828,7 +846,7 @@ begin
Result :=(c and $FF0000) shr 16;
end;
-function gdTrueColorGetGreen(c: cint): cint;
+function gdTrueColorGetGreen(c: cint): cint;
begin
Result :=(c and $00FF00) shr 8;
end;