mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 08:29:20 +02:00
* prepeared libgd for dynamic loading support
git-svn-id: trunk@14151 -
This commit is contained in:
parent
e7734027c4
commit
f9f9a2e2b1
@ -5,50 +5,38 @@
|
|||||||
|
|
||||||
unit gd;
|
unit gd;
|
||||||
|
|
||||||
{$mode objfpc}
|
{$MODE objfpc}
|
||||||
{$macro on}
|
{$MACRO on}
|
||||||
{$h+}
|
{$H+}
|
||||||
{$MINENUMSIZE 4}
|
{$MINENUMSIZE 4}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
Classes,
|
Classes,
|
||||||
|
dynlibs,
|
||||||
ctypes;
|
ctypes;
|
||||||
|
|
||||||
//{$if defined(FPC_HAS_FEATURE_DYNLIBS) and (not defined(go32v2))}
|
{$IFDEF UNIX}
|
||||||
// {$define DYNLINK}
|
{$DEFINE EXTDECL := cdecl}
|
||||||
//{$endif}
|
const
|
||||||
|
gdlib = 'libgd.'+sharedsuffix;
|
||||||
|
clib = 'libc.'+sharedsuffix;
|
||||||
|
{$ENDIF}
|
||||||
{$IFDEF WINDOWS}
|
{$IFDEF WINDOWS}
|
||||||
{$DEFINE DYNLINK}
|
{$DEFINE EXTDECL := stdcall}
|
||||||
|
const
|
||||||
|
gdlib = 'bgd.dll';
|
||||||
|
clib = 'msvcrt.dll';
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$IFDEF DYNLINK}
|
{$IFNDEF LOAD_DYNAMICALLY}
|
||||||
const
|
{$IFDEF darwin}
|
||||||
{$IF Defined(WINDOWS)}
|
{$linklib c}
|
||||||
gdlib = 'bgd.dll';
|
{$linklib gd}
|
||||||
clib = 'msvcrt.dll';
|
{$ENDIF}
|
||||||
{$ELSEIF Defined(UNIX)}
|
|
||||||
gdlib = 'libgd.so';
|
|
||||||
clib = 'libc.so';
|
|
||||||
{$ELSE}
|
|
||||||
{$MESSAGE ERROR 'DYNLINK not supported'}
|
|
||||||
{$IFEND}
|
|
||||||
{$ELSE}
|
|
||||||
{$LINKLIB gd}
|
|
||||||
{$LINKLIB c}
|
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
{$DEFINE BGD_DECLARE := external {$IFDEF DYNLINK}gdlib{$ENDIF}}
|
|
||||||
{$DEFINE BGD_DECLARE_CLIB := external {$IFDEF DYNLINK}clib{$ENDIF}}
|
|
||||||
|
|
||||||
{$IF Defined(WINDOWS)}
|
|
||||||
{$DEFINE EXTCALL := stdcall}
|
|
||||||
{$ELSE}
|
|
||||||
{$DEFINE EXTCALL := cdecl}
|
|
||||||
{$IFEND}
|
|
||||||
|
|
||||||
type
|
type
|
||||||
ppcint = ^pcint;
|
ppcint = ^pcint;
|
||||||
ppbyte = ^pbyte;
|
ppbyte = ^pbyte;
|
||||||
@ -79,18 +67,18 @@ const
|
|||||||
type
|
type
|
||||||
gdIOCtxPtr = ^gdIOCtx;
|
gdIOCtxPtr = ^gdIOCtx;
|
||||||
gdIOCtx = record
|
gdIOCtx = record
|
||||||
getC : function(ctx: gdIOCtxPtr): cint; EXTCALL;
|
getC : function(ctx: gdIOCtxPtr): cint; EXTDECL;
|
||||||
getBuf : function(ctx: gdIOCtxPtr; buf: pointer; len: cint): cint; EXTCALL;
|
getBuf : function(ctx: gdIOCtxPtr; buf: pointer; len: cint): cint; EXTDECL;
|
||||||
putC : procedure(ctx: gdIOCtxPtr; len: cint); EXTCALL;
|
putC : procedure(ctx: gdIOCtxPtr; len: cint); EXTDECL;
|
||||||
putBuf : procedure(ctx: gdIOCtxPtr; buf: pointer; len: cint); EXTCALL;
|
putBuf : procedure(ctx: gdIOCtxPtr; buf: pointer; len: cint); EXTDECL;
|
||||||
(* seek must return 1 on SUCCESS, 0 on FAILURE. Unlike fseek! *)
|
(* seek must return 1 on SUCCESS, 0 on FAILURE. Unlike fseek! *)
|
||||||
seek : function(ctx: gdIOCtxPtr; pos: cint): cint; EXTCALL;
|
seek : function(ctx: gdIOCtxPtr; pos: cint): cint; EXTDECL;
|
||||||
tell : function(ctx: gdIOCtxPtr): clong; EXTCALL;
|
tell : function(ctx: gdIOCtxPtr): clong; EXTDECL;
|
||||||
gd_free : procedure(ctx: gdIOCtxPtr); EXTCALL;
|
gd_free : procedure(ctx: gdIOCtxPtr); EXTDECL;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function fopen(filename, rights: pchar): PFile; EXTCALL; BGD_DECLARE_CLIB;
|
function fopen(filename, rights: pchar): PFile; EXTDECL; external clib;
|
||||||
procedure fclose(f: PFile); EXTCALL; BGD_DECLARE_CLIB;
|
procedure fclose(f: PFile); EXTDECL; external clib;
|
||||||
|
|
||||||
(* The maximum number of palette entries in palette-based images.
|
(* The maximum number of palette entries in palette-based images.
|
||||||
In the wonderful new world of gd 2.0, you can of course have
|
In the wonderful new world of gd 2.0, you can of course have
|
||||||
@ -138,7 +126,7 @@ function gdTrueColorGetBlue(c: cint): cint; inline;
|
|||||||
based on the alpha channel value of the source color.
|
based on the alpha channel value of the source color.
|
||||||
The resulting color is opaque. *)
|
The resulting color is opaque. *)
|
||||||
|
|
||||||
function gdAlphaBlend(dest: cint; src: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdAlphaBlend@8'{$ENDIF};
|
function gdAlphaBlend(dest: cint; src: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdAlphaBlend@8'{$ENDIF};
|
||||||
|
|
||||||
type
|
type
|
||||||
gdImagePtr = ^gdImage;
|
gdImagePtr = ^gdImage;
|
||||||
@ -260,33 +248,33 @@ const
|
|||||||
(* Functions to manipulate images. *)
|
(* Functions to manipulate images. *)
|
||||||
|
|
||||||
(* Creates a palette-based image(up to 256 colors). *)
|
(* Creates a palette-based image(up to 256 colors). *)
|
||||||
function gdImageCreate(sx: cint; sy: cint): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreate@8'{$ENDIF};
|
function gdImageCreate(sx: cint; sy: cint): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreate@8'{$ENDIF};
|
||||||
|
|
||||||
(* An alternate name for the above(2.0). *)
|
(* An alternate name for the above(2.0). *)
|
||||||
function gdImageCreatePalette(sx: cint; sy: cint): gdImagePtr;
|
function gdImageCreatePalette(sx: cint; sy: cint): gdImagePtr;
|
||||||
|
|
||||||
(* Creates a truecolor image(millions of colors). *)
|
(* Creates a truecolor image(millions of colors). *)
|
||||||
function gdImageCreateTrueColor(sx: cint; sy: cint): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateTrueColor@8'{$ENDIF};
|
function gdImageCreateTrueColor(sx: cint; sy: cint): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateTrueColor@8'{$ENDIF};
|
||||||
|
|
||||||
(* Creates an image from various file types. These functions
|
(* Creates an image from various file types. These functions
|
||||||
return a palette or truecolor image based on the
|
return a palette or truecolor image based on the
|
||||||
nature of the file being loaded. Truecolor PNG
|
nature of the file being loaded. Truecolor PNG
|
||||||
stays truecolor; palette PNG stays palette-based;
|
stays truecolor; palette PNG stays palette-based;
|
||||||
JPEG is always truecolor. *)
|
JPEG is always truecolor. *)
|
||||||
function gdImageCreateFromPng(fd: PFILE): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromPng@4'{$ENDIF};
|
function gdImageCreateFromPng(fd: PFILE): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromPng@4'{$ENDIF};
|
||||||
function gdImageCreateFromPngCtx(_in: gdIOCtxPtr): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromPngCtx@4'{$ENDIF};
|
function gdImageCreateFromPngCtx(_in: gdIOCtxPtr): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromPngCtx@4'{$ENDIF};
|
||||||
function gdImageCreateFromPngPtr(size: cint; data: pointer): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromPngPtr@8'{$ENDIF};
|
function gdImageCreateFromPngPtr(size: cint; data: pointer): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromPngPtr@8'{$ENDIF};
|
||||||
|
|
||||||
(* These read the first frame only *)
|
(* These read the first frame only *)
|
||||||
function gdImageCreateFromGif(fd: PFILE): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGif@4'{$ENDIF};
|
function gdImageCreateFromGif(fd: PFILE): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGif@4'{$ENDIF};
|
||||||
function gdImageCreateFromGifCtx(_in: gdIOCtxPtr): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGifCtx@4'{$ENDIF};
|
function gdImageCreateFromGifCtx(_in: gdIOCtxPtr): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGifCtx@4'{$ENDIF};
|
||||||
function gdImageCreateFromGifPtr(size: cint; data: pointer): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGifPtr@8'{$ENDIF};
|
function gdImageCreateFromGifPtr(size: cint; data: pointer): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGifPtr@8'{$ENDIF};
|
||||||
function gdImageCreateFromWBMP(fd: PFILE): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromWBMP@4'{$ENDIF};
|
function gdImageCreateFromWBMP(fd: PFILE): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromWBMP@4'{$ENDIF};
|
||||||
function gdImageCreateFromWBMPCtx(_in: gdIOCtxPtr): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromWBMPCtx@4'{$ENDIF};
|
function gdImageCreateFromWBMPCtx(_in: gdIOCtxPtr): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromWBMPCtx@4'{$ENDIF};
|
||||||
function gdImageCreateFromWBMPPtr(size: cint; data: pointer): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromWBMPPtr@8'{$ENDIF};
|
function gdImageCreateFromWBMPPtr(size: cint; data: pointer): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromWBMPPtr@8'{$ENDIF};
|
||||||
function gdImageCreateFromJpeg(fd: PFILE): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromJpeg@4'{$ENDIF};
|
function gdImageCreateFromJpeg(fd: PFILE): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromJpeg@4'{$ENDIF};
|
||||||
function gdImageCreateFromJpegCtx(_in: gdIOCtxPtr): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromJpegCtx@4'{$ENDIF};
|
function gdImageCreateFromJpegCtx(_in: gdIOCtxPtr): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromJpegCtx@4'{$ENDIF};
|
||||||
function gdImageCreateFromJpegPtr(size: cint; data: pointer): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromJpegPtr@8'{$ENDIF};
|
function gdImageCreateFromJpegPtr(size: cint; data: pointer): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromJpegPtr@8'{$ENDIF};
|
||||||
|
|
||||||
(* A custom data source. *)
|
(* A custom data source. *)
|
||||||
(* The source function must return -1 on error, otherwise the number
|
(* The source function must return -1 on error, otherwise the number
|
||||||
@ -296,31 +284,31 @@ function gdImageCreateFromJpegPtr(size: cint; data: pointer): gdImagePtr; EXTCAL
|
|||||||
type
|
type
|
||||||
gdSourcePtr = ^gdSource;
|
gdSourcePtr = ^gdSource;
|
||||||
gdSource = record
|
gdSource = record
|
||||||
source : function(context: pointer; buffer: pchar; len: cint): cint; EXTCALL;
|
source : function(context: pointer; buffer: pchar; len: cint): cint; EXTDECL;
|
||||||
context : pointer;
|
context : pointer;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
(* Deprecated in favor of gdImageCreateFromPngCtx *)
|
(* Deprecated in favor of gdImageCreateFromPngCtx *)
|
||||||
function gdImageCreateFromPngSource(_in: gdSourcePtr): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromPngSource@4'{$ENDIF};
|
function gdImageCreateFromPngSource(_in: gdSourcePtr): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromPngSource@4'{$ENDIF};
|
||||||
|
|
||||||
function gdImageCreateFromGd(_in: PFILE): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGd@4'{$ENDIF};
|
function gdImageCreateFromGd(_in: PFILE): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGd@4'{$ENDIF};
|
||||||
function gdImageCreateFromGdCtx(_in: gdIOCtxPtr): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGdCtx@4'{$ENDIF};
|
function gdImageCreateFromGdCtx(_in: gdIOCtxPtr): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGdCtx@4'{$ENDIF};
|
||||||
function gdImageCreateFromGdPtr(size: cint; data: pointer): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGdPtr@8'{$ENDIF};
|
function gdImageCreateFromGdPtr(size: cint; data: pointer): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGdPtr@8'{$ENDIF};
|
||||||
|
|
||||||
function gdImageCreateFromGd2(_in: PFILE): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGd2@4'{$ENDIF};
|
function gdImageCreateFromGd2(_in: PFILE): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGd2@4'{$ENDIF};
|
||||||
function gdImageCreateFromGd2Ctx(_in: gdIOCtxPtr): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGd2Ctx@4'{$ENDIF};
|
function gdImageCreateFromGd2Ctx(_in: gdIOCtxPtr): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGd2Ctx@4'{$ENDIF};
|
||||||
function gdImageCreateFromGd2Ptr(size: cint; data: pointer): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGd2Ptr@8'{$ENDIF};
|
function gdImageCreateFromGd2Ptr(size: cint; data: pointer): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGd2Ptr@8'{$ENDIF};
|
||||||
|
|
||||||
function gdImageCreateFromGd2Part(_in: PFILE; srcx: cint; srcy: cint; w: cint; h: cint): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGd2Part@20'{$ENDIF};
|
function gdImageCreateFromGd2Part(_in: PFILE; srcx: cint; srcy: cint; w: cint; h: cint): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGd2Part@20'{$ENDIF};
|
||||||
function gdImageCreateFromGd2PartCtx(_in: gdIOCtxPtr; srcx: cint; srcy: cint; w: cint; h: cint): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGd2PartCtx@20'{$ENDIF};
|
function gdImageCreateFromGd2PartCtx(_in: gdIOCtxPtr; srcx: cint; srcy: cint; w: cint; h: cint): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGd2PartCtx@20'{$ENDIF};
|
||||||
function gdImageCreateFromGd2PartPtr(size: cint; data: pointer; srcx: cint; srcy: cint; w: cint; h: cint): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromGd2PartCtx@24'{$ENDIF};
|
function gdImageCreateFromGd2PartPtr(size: cint; data: pointer; srcx: cint; srcy: cint; w: cint; h: cint): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromGd2PartCtx@24'{$ENDIF};
|
||||||
(* 2.0.10: prototype was missing *)
|
(* 2.0.10: prototype was missing *)
|
||||||
function gdImageCreateFromXbm(_in: PFILE): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromXbm@4'{$ENDIF};
|
function gdImageCreateFromXbm(_in: PFILE): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromXbm@4'{$ENDIF};
|
||||||
|
|
||||||
(* NOTE: filename, not FILE *)
|
(* NOTE: filename, not FILE *)
|
||||||
function gdImageCreateFromXpm(filename: pchar): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreateFromXpm@4'{$ENDIF};
|
function gdImageCreateFromXpm(filename: pchar): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreateFromXpm@4'{$ENDIF};
|
||||||
|
|
||||||
procedure gdImageDestroy(im: gdImagePtr); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageDestroy@4'{$ENDIF};
|
procedure gdImageDestroy(im: gdImagePtr); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageDestroy@4'{$ENDIF};
|
||||||
|
|
||||||
(* Replaces or blends with the background depending on the
|
(* Replaces or blends with the background depending on the
|
||||||
most recent call to gdImageAlphaBlending and the
|
most recent call to gdImageAlphaBlending and the
|
||||||
@ -329,54 +317,54 @@ procedure gdImageDestroy(im: gdImagePtr); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}n
|
|||||||
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. *)
|
allowing for many useful effects. *)
|
||||||
|
|
||||||
procedure gdImageSetPixel(im: gdImagePtr; x: cint; y: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageSetPixel@16'{$ENDIF};
|
procedure gdImageSetPixel(im: gdImagePtr; x: cint; y: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSetPixel@16'{$ENDIF};
|
||||||
(* FreeType 2 text output with hook to extra flags *)
|
(* FreeType 2 text output with hook to extra flags *)
|
||||||
|
|
||||||
function gdImageGetPixel(im: gdImagePtr; x: cint; y: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageGetPixel@12'{$ENDIF};
|
function gdImageGetPixel(im: gdImagePtr; x: cint; y: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageGetPixel@12'{$ENDIF};
|
||||||
function gdImageGetTrueColorPixel(im: gdImagePtr; x: cint; y: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageGetTrueColorPixel@12'{$ENDIF};
|
function gdImageGetTrueColorPixel(im: gdImagePtr; x: cint; y: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageGetTrueColorPixel@12'{$ENDIF};
|
||||||
|
|
||||||
procedure gdImageAABlend(im: gdImagePtr); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageAABlend@4'{$ENDIF};
|
procedure gdImageAABlend(im: gdImagePtr); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageAABlend@4'{$ENDIF};
|
||||||
|
|
||||||
procedure gdImageLine(im: gdImagePtr; x1: cint; y1: cint; x2: cint; y2: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageLine@24'{$ENDIF};
|
procedure gdImageLine(im: gdImagePtr; x1: cint; y1: cint; x2: cint; y2: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageLine@24'{$ENDIF};
|
||||||
|
|
||||||
(* For backwards compatibility only. Use gdImageSetStyle()
|
(* For backwards compatibility only. Use gdImageSetStyle()
|
||||||
for much more flexible line drawing. *)
|
for much more flexible line drawing. *)
|
||||||
procedure gdImageDashedLine(im: gdImagePtr; x1: cint; y1: cint; x2: cint; y2: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageDashedLine@24'{$ENDIF};
|
procedure gdImageDashedLine(im: gdImagePtr; x1: cint; y1: cint; x2: cint; y2: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageDashedLine@24'{$ENDIF};
|
||||||
(* Corners specified(not width and height). Upper left first, lower right
|
(* Corners specified(not width and height). Upper left first, lower right
|
||||||
second. *)
|
second. *)
|
||||||
procedure gdImageRectangle(im: gdImagePtr; x1: cint; y1: cint; x2: cint; y2: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageRectangle@24'{$ENDIF};
|
procedure gdImageRectangle(im: gdImagePtr; x1: cint; y1: cint; x2: cint; y2: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageRectangle@24'{$ENDIF};
|
||||||
(* Solid bar. Upper left corner first, lower right corner second. *)
|
(* Solid bar. Upper left corner first, lower right corner second. *)
|
||||||
procedure gdImageFilledRectangle(im: gdImagePtr; x1: cint; y1: cint; x2: cint; y2: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageFilledRectangle@24'{$ENDIF};
|
procedure gdImageFilledRectangle(im: gdImagePtr; x1: cint; y1: cint; x2: cint; y2: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageFilledRectangle@24'{$ENDIF};
|
||||||
procedure gdImageSetClip(im: gdImagePtr; x1: cint; y1: cint; x2: cint; y2: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageSetClip@20'{$ENDIF};
|
procedure gdImageSetClip(im: gdImagePtr; x1: cint; y1: cint; x2: cint; y2: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSetClip@20'{$ENDIF};
|
||||||
procedure gdImageGetClip(im: gdImagePtr; var x1: cint; var y1: cint; var x2: cint; var y2: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageGetClip@20'{$ENDIF};
|
procedure gdImageGetClip(im: gdImagePtr; var x1: cint; var y1: cint; var x2: cint; var y2: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageGetClip@20'{$ENDIF};
|
||||||
function gdImageBoundsSafe(im: gdImagePtr; x: cint; y: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageBoundsSafe@12'{$ENDIF};
|
function gdImageBoundsSafe(im: gdImagePtr; x: cint; y: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageBoundsSafe@12'{$ENDIF};
|
||||||
procedure gdImageChar(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; c: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageChar@24'{$ENDIF};
|
procedure gdImageChar(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; c: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageChar@24'{$ENDIF};
|
||||||
procedure gdImageCharUp(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; c: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCharUp@24'{$ENDIF};
|
procedure gdImageCharUp(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; c: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCharUp@24'{$ENDIF};
|
||||||
procedure gdImageString(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; s: pchar; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageString@24'{$ENDIF};
|
procedure gdImageString(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; s: pchar; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageString@24'{$ENDIF};
|
||||||
procedure gdImageStringUp(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; s: pchar; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageStringUp@24'{$ENDIF};
|
procedure gdImageStringUp(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; s: pchar; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageStringUp@24'{$ENDIF};
|
||||||
procedure gdImageString16(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; s: pwidechar; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageString16@24'{$ENDIF};
|
procedure gdImageString16(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; s: pwidechar; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageString16@24'{$ENDIF};
|
||||||
procedure gdImageStringUp16(im: gdImagePtr; f: gdFontPtr; x: cint; y: cint; s: pwidechar; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageStringUp16@24'{$ENDIF};
|
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,
|
(* 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
|
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. *)
|
Return 0 on success, nonzero on failure to initialize freetype. *)
|
||||||
function gdFontCacheSetup(): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdFontCacheSetup@0'{$ENDIF};
|
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(). *)
|
BGD_DECLARE( ) gdImageStringFT(). *)
|
||||||
procedure gdFontCacheShutdown(); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdFontCacheShutdown@0'{$ENDIF};
|
procedure gdFontCacheShutdown(); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFontCacheShutdown@0'{$ENDIF};
|
||||||
(* 2.0.20: for backwards compatibility. A few applications did start calling
|
(* 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. *)
|
Simply invokes gdFontCacheShutdown. *)
|
||||||
procedure gdFreeFontCache(); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdFreeFontCache@0'{$ENDIF};
|
procedure gdFreeFontCache(); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFreeFontCache@0'{$ENDIF};
|
||||||
|
|
||||||
(* Calls gdImageStringFT. Provided for backwards compatibility only. *)
|
(* Calls gdImageStringFT. Provided for backwards compatibility only. *)
|
||||||
function gdImageStringTTF(im: gdImagePtr; brect: pcint; fg: cint; fontlist: pchar; ptsize: double; angle: double; x: cint; y: cint; str: pchar): pchar; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageStringTTF@36'{$ENDIF};
|
function gdImageStringTTF(im: gdImagePtr; brect: pcint; fg: cint; fontlist: pchar; ptsize: double; angle: double; x: cint; y: cint; str: pchar): pchar; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageStringTTF@36'{$ENDIF};
|
||||||
|
|
||||||
(* FreeType 2 text output *)
|
(* FreeType 2 text output *)
|
||||||
function gdImageStringFT(im: gdImagePtr; brect: pcint; fg: cint; fontlist: pchar; ptsize: double; angle: double; x: cint; y: cint; str: pchar): pchar; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageStringFT@36'{$ENDIF};
|
function gdImageStringFT(im: gdImagePtr; brect: pcint; fg: cint; fontlist: pchar; ptsize: double; angle: double; x: cint; y: cint; str: pchar): pchar; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageStringFT@36'{$ENDIF};
|
||||||
|
|
||||||
(* 2.0.5: provides an extensible way to pass additional parameters.
|
(* 2.0.5: provides an extensible way to pass additional parameters.
|
||||||
Thanks to Wez Furlong, sorry for the delay. *)
|
Thanks to Wez Furlong, sorry for the delay. *)
|
||||||
@ -439,7 +427,7 @@ const
|
|||||||
and gdImageStringFTEx shall be assumed to be a fontconfig font pattern
|
and gdImageStringFTEx shall be assumed to be a fontconfig font pattern
|
||||||
if fontconfig was compiled into gd. This function returns zero
|
if fontconfig was compiled into gd. This function returns zero
|
||||||
if fontconfig is not available, nonzero otherwise. *)
|
if fontconfig is not available, nonzero otherwise. *)
|
||||||
function gdFTUseFontConfig(flag: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdFTUseFontConfig@4'{$ENDIF};
|
function gdFTUseFontConfig(flag: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFTUseFontConfig@4'{$ENDIF};
|
||||||
|
|
||||||
(* These are NOT flags; set one in 'charmap' if you set the
|
(* These are NOT flags; set one in 'charmap' if you set the
|
||||||
gdFTEX_CHARMAP bit in 'flags'. *)
|
gdFTEX_CHARMAP bit in 'flags'. *)
|
||||||
@ -449,7 +437,7 @@ const
|
|||||||
gdFTEX_Big5 = 2;
|
gdFTEX_Big5 = 2;
|
||||||
gdFTEX_Adobe_Custom = 3;
|
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; EXTCALL; BGD_DECLARE {$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. *)
|
(* Point type for use in polygon drawing. *)
|
||||||
type
|
type
|
||||||
@ -458,32 +446,32 @@ type
|
|||||||
x, y: cint;
|
x, y: cint;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure gdImagePolygon(im: gdImagePtr; p: gdPointPtr; n: cint; c: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImagePolygon@16'{$ENDIF};
|
procedure gdImagePolygon(im: gdImagePtr; p: gdPointPtr; n: cint; c: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImagePolygon@16'{$ENDIF};
|
||||||
procedure gdImageOpenPolygon(im: gdImagePtr; p: gdPointPtr; n: cint; c: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageOpenPolygon@16'{$ENDIF};
|
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); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageFilledPolygon@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. *)
|
for which they never return error. *)
|
||||||
function gdImageColorAllocate(im: gdImagePtr; r: cint; g: cint; b: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorAllocate@16'{$ENDIF};
|
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. *)
|
(* gd 2.0: palette entries with non-opaque transparency are permitted. *)
|
||||||
function gdImageColorAllocateAlpha(im: gdImagePtr; r: cint; g: cint; b: cint; a: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorAllocateAlpha@20'{$ENDIF};
|
function gdImageColorAllocateAlpha(im: gdImagePtr; r: cint; g: cint; b: cint; a: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorAllocateAlpha@20'{$ENDIF};
|
||||||
(* Assumes opaque is the preferred alpha channel value *)
|
(* Assumes opaque is the preferred alpha channel value *)
|
||||||
function gdImageColorClosest(im: gdImagePtr; r: cint; g: cint; b: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorClosest@16'{$ENDIF};
|
function gdImageColorClosest(im: gdImagePtr; r: cint; g: cint; b: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorClosest@16'{$ENDIF};
|
||||||
(* Closest match taking all four parameters into account.
|
(* Closest match taking all four parameters into account.
|
||||||
A slightly different color with the same transparency
|
A slightly different color with the same transparency
|
||||||
beats the exact same color with radically different
|
beats the exact same color with radically different
|
||||||
transparency *)
|
transparency *)
|
||||||
function gdImageColorClosestAlpha(im: gdImagePtr; r: cint; g: cint; b: cint; a: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorClosestAlpha@20'{$ENDIF};
|
function gdImageColorClosestAlpha(im: gdImagePtr; r: cint; g: cint; b: cint; a: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorClosestAlpha@20'{$ENDIF};
|
||||||
(* An alternate method *)
|
(* An alternate method *)
|
||||||
function gdImageColorClosestHWB(im: gdImagePtr; r: cint; g: cint; b: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorClosestHWB@16'{$ENDIF};
|
function gdImageColorClosestHWB(im: gdImagePtr; r: cint; g: cint; b: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorClosestHWB@16'{$ENDIF};
|
||||||
(* Returns exact, 100% opaque matches only *)
|
(* Returns exact, 100% opaque matches only *)
|
||||||
function gdImageColorExact(im: gdImagePtr; r: cint; g: cint; b: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorExact@16'{$ENDIF};
|
function gdImageColorExact(im: gdImagePtr; r: cint; g: cint; b: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorExact@16'{$ENDIF};
|
||||||
(* Returns an exact match only, including alpha *)
|
(* Returns an exact match only, including alpha *)
|
||||||
function gdImageColorExactAlpha(im: gdImagePtr; r: cint; g: cint; b: cint; a: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorExactAlpha@20'{$ENDIF};
|
function gdImageColorExactAlpha(im: gdImagePtr; r: cint; g: cint; b: cint; a: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorExactAlpha@20'{$ENDIF};
|
||||||
(* Opaque only *)
|
(* Opaque only *)
|
||||||
function gdImageColorResolve(im: gdImagePtr; r: cint; g: cint; b: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorResolve@16'{$ENDIF};
|
function gdImageColorResolve(im: gdImagePtr; r: cint; g: cint; b: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorResolve@16'{$ENDIF};
|
||||||
(* Based on gdImageColorExactAlpha and gdImageColorClosestAlpha *)
|
(* Based on gdImageColorExactAlpha and gdImageColorClosestAlpha *)
|
||||||
function gdImageColorResolveAlpha(im: gdImagePtr; r: cint; g: cint; b: cint; a: cint): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorResolveAlpha@20'{$ENDIF};
|
function gdImageColorResolveAlpha(im: gdImagePtr; r: cint; g: cint; b: cint; a: cint): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorResolveAlpha@20'{$ENDIF};
|
||||||
|
|
||||||
(* A simpler way to obtain an opaque truecolor value for drawing on a
|
(* A simpler way to obtain an opaque truecolor value for drawing on a
|
||||||
truecolor image. Not for use with palette images! *)
|
truecolor image. Not for use with palette images! *)
|
||||||
@ -494,7 +482,7 @@ function gdTrueColor(r: cint; g: cint; b: cint): cint;
|
|||||||
opaque. *)
|
opaque. *)
|
||||||
function gdTrueColorAlpha(r: cint; g: cint; b: cint; a: cint): cint;
|
function gdTrueColorAlpha(r: cint; g: cint; b: cint; a: cint): cint;
|
||||||
|
|
||||||
procedure gdImageColorDeallocate(im: gdImagePtr; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorDeallocate@8'{$ENDIF};
|
procedure gdImageColorDeallocate(im: gdImagePtr; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorDeallocate@8'{$ENDIF};
|
||||||
|
|
||||||
(* Converts a truecolor image to a palette-based image,
|
(* Converts a truecolor image to a palette-based image,
|
||||||
using a high-quality two-pass quantization routine
|
using a high-quality two-pass quantization routine
|
||||||
@ -516,9 +504,9 @@ procedure gdImageColorDeallocate(im: gdImagePtr; color: cint); EXTCALL; BGD_DECL
|
|||||||
returns a new image. gdImageTrueColorToPalette modifies
|
returns a new image. gdImageTrueColorToPalette modifies
|
||||||
an existing image, and the truecolor pixels are discarded. *)
|
an existing image, and the truecolor pixels are discarded. *)
|
||||||
|
|
||||||
function gdImageCreatePaletteFromTrueColor(im: gdImagePtr; ditherFlag: cint; colorsWanted: cint): gdImagePtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCreatePaletteFromTrueColor@16'{$ENDIF};
|
function gdImageCreatePaletteFromTrueColor(im: gdImagePtr; ditherFlag: cint; colorsWanted: cint): gdImagePtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCreatePaletteFromTrueColor@16'{$ENDIF};
|
||||||
|
|
||||||
procedure gdImageTrueColorToPalette(im: gdImagePtr; ditherFlag: cint; colorsWanted: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageTrueColorToPalette@16'{$ENDIF};
|
procedure gdImageTrueColorToPalette(im: gdImagePtr; ditherFlag: cint; colorsWanted: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageTrueColorToPalette@16'{$ENDIF};
|
||||||
|
|
||||||
(* Specifies a color index(if a palette image) or an
|
(* Specifies a color index(if a palette image) or an
|
||||||
RGB color(if a truecolor image) which should be
|
RGB color(if a truecolor image) which should be
|
||||||
@ -529,38 +517,38 @@ procedure gdImageTrueColorToPalette(im: gdImagePtr; ditherFlag: cint; colorsWant
|
|||||||
a truecolor image. Note that gdImageColorTransparent
|
a truecolor image. Note that gdImageColorTransparent
|
||||||
is usually compatible with older browsers that
|
is usually compatible with older browsers that
|
||||||
do not understand full alpha channels well. TBB *)
|
do not understand full alpha channels well. TBB *)
|
||||||
procedure gdImageColorTransparent(im: gdImagePtr; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageColorTransparent@8'{$ENDIF};
|
procedure gdImageColorTransparent(im: gdImagePtr; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageColorTransparent@8'{$ENDIF};
|
||||||
|
|
||||||
procedure gdImagePaletteCopy(dst: gdImagePtr; src: gdImagePtr); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImagePaletteCopy@8'{$ENDIF};
|
procedure gdImagePaletteCopy(dst: gdImagePtr; src: gdImagePtr); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImagePaletteCopy@8'{$ENDIF};
|
||||||
procedure gdImageGif(im: gdImagePtr; _out: PFILE); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageGif@8'{$ENDIF};
|
procedure gdImageGif(im: gdImagePtr; _out: PFILE); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageGif@8'{$ENDIF};
|
||||||
procedure gdImagePng(im: gdImagePtr; _out: PFILE); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImagePng@8'{$ENDIF};
|
procedure gdImagePng(im: gdImagePtr; _out: PFILE); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImagePng@8'{$ENDIF};
|
||||||
procedure gdImagePngCtx(im: gdImagePtr; _out: gdIOCtxPtr); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImagePngCtx@8'{$ENDIF};
|
procedure gdImagePngCtx(im: gdImagePtr; _out: gdIOCtxPtr); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImagePngCtx@8'{$ENDIF};
|
||||||
procedure gdImageGifCtx(im: gdImagePtr; _out: gdIOCtxPtr); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageGifCtx@8'{$ENDIF};
|
procedure gdImageGifCtx(im: gdImagePtr; _out: gdIOCtxPtr); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageGifCtx@8'{$ENDIF};
|
||||||
|
|
||||||
(* 2.0.12: Compression level: 0-9 or -1, where 0 is NO COMPRESSION at all,
|
(* 2.0.12: Compression level: 0-9 or -1, where 0 is NO COMPRESSION at all,
|
||||||
1 is FASTEST but produces larger files, 9 provides the best
|
1 is FASTEST but produces larger files, 9 provides the best
|
||||||
compression(smallest files) but takes a long time to compress, and
|
compression(smallest files) but takes a long time to compress, and
|
||||||
-1 selects the default compiled into the zlib library. *)
|
-1 selects the default compiled into the zlib library. *)
|
||||||
procedure gdImagePngEx(im: gdImagePtr; _out: PFILE; level: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImagePngEx@12'{$ENDIF};
|
procedure gdImagePngEx(im: gdImagePtr; _out: PFILE; level: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImagePngEx@12'{$ENDIF};
|
||||||
procedure gdImagePngCtxEx(im: gdImagePtr; _out: gdIOCtxPtr; level: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImagePngCtxEx@12'{$ENDIF};
|
procedure gdImagePngCtxEx(im: gdImagePtr; _out: gdIOCtxPtr; level: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImagePngCtxEx@12'{$ENDIF};
|
||||||
|
|
||||||
procedure gdImageWBMP(image: gdImagePtr; fg: cint; _out: PFILE); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageWBMP@12'{$ENDIF};
|
procedure gdImageWBMP(image: gdImagePtr; fg: cint; _out: PFILE); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageWBMP@12'{$ENDIF};
|
||||||
procedure gdImageWBMPCtx(image: gdImagePtr; fg: cint; _out: gdIOCtxPtr); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageWBMPCtx@12'{$ENDIF};
|
procedure gdImageWBMPCtx(image: gdImagePtr; fg: cint; _out: gdIOCtxPtr); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageWBMPCtx@12'{$ENDIF};
|
||||||
|
|
||||||
(* Guaranteed to correctly free memory returned
|
(* Guaranteed to correctly free memory returned
|
||||||
by the gdImage*Ptr functions *)
|
by the gdImage*Ptr functions *)
|
||||||
procedure gdFree(m: pointer); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdFree@4'{$ENDIF};
|
procedure gdFree(m: pointer); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFree@4'{$ENDIF};
|
||||||
|
|
||||||
(* Best to free this memory with gdFree(), not free() *)
|
(* Best to free this memory with gdFree(), not free() *)
|
||||||
function gdImageWBMPPtr(im: gdImagePtr; size: pcint; fg: cint): pointer; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageWBMPPtr@12'{$ENDIF};
|
function gdImageWBMPPtr(im: gdImagePtr; size: pcint; fg: cint): pointer; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageWBMPPtr@12'{$ENDIF};
|
||||||
|
|
||||||
(* 100 is highest quality(there is always a little loss with JPEG).
|
(* 100 is highest quality(there is always a little loss with JPEG).
|
||||||
0 is lowest. 10 is about the lowest useful setting. *)
|
0 is lowest. 10 is about the lowest useful setting. *)
|
||||||
procedure gdImageJpeg(im: gdImagePtr; _out: PFILE; quality: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageJpeg@12'{$ENDIF};
|
procedure gdImageJpeg(im: gdImagePtr; _out: PFILE; quality: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageJpeg@12'{$ENDIF};
|
||||||
procedure gdImageJpegCtx(im: gdImagePtr; _out: gdIOCtxPtr; quality: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageJpegCtx@12'{$ENDIF};
|
procedure gdImageJpegCtx(im: gdImagePtr; _out: gdIOCtxPtr; quality: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageJpegCtx@12'{$ENDIF};
|
||||||
|
|
||||||
(* Best to free this memory with gdFree(), not free() *)
|
(* Best to free this memory with gdFree(), not free() *)
|
||||||
function gdImageJpegPtr(im: gdImagePtr; size: pcint; quality: cint): pointer; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageJpegPtr@12'{$ENDIF};
|
function gdImageJpegPtr(im: gdImagePtr; size: pcint; quality: cint): pointer; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageJpegPtr@12'{$ENDIF};
|
||||||
|
|
||||||
(* Legal values for Disposal. gdDisposalNone is always used by
|
(* Legal values for Disposal. gdDisposalNone is always used by
|
||||||
the built-in optimizer if previm is passed. *)
|
the built-in optimizer if previm is passed. *)
|
||||||
@ -573,15 +561,15 @@ enum {
|
|||||||
gdDisposalRestorePrevious
|
gdDisposalRestorePrevious
|
||||||
};
|
};
|
||||||
|
|
||||||
procedure gdImageGifAnimBegin(im: gdImagePtr; _outFile: PFILE; int GlobalCM, int Loops); EXTCALL; BGD_DECLARE;
|
procedure gdImageGifAnimBegin(im: gdImagePtr; _outFile: PFILE; int GlobalCM, int Loops); EXTDECL; BGD_DECLARE;
|
||||||
procedure gdImageGifAnimAdd(im: gdImagePtr; _outFile: PFILE; int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal, gdImagePtr previm); EXTCALL; BGD_DECLARE;
|
procedure gdImageGifAnimAdd(im: gdImagePtr; _outFile: PFILE; int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal, gdImagePtr previm); EXTDECL; BGD_DECLARE;
|
||||||
procedure gdImageGifAnimEnd(_outFile: PFILE); EXTCALL; BGD_DECLARE;
|
procedure gdImageGifAnimEnd(_outFile: PFILE); EXTDECL; BGD_DECLARE;
|
||||||
procedure gdImageGifAnimBeginCtx(im: gdImagePtr; gdIOCtx *out, int GlobalCM, int Loops); EXTCALL; BGD_DECLARE;
|
procedure gdImageGifAnimBeginCtx(im: gdImagePtr; gdIOCtx *out, int GlobalCM, int Loops); EXTDECL; BGD_DECLARE;
|
||||||
procedure gdImageGifAnimAddCtx(im: gdImagePtr; gdIOCtx *out, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal, gdImagePtr previm); EXTCALL; BGD_DECLARE;
|
procedure gdImageGifAnimAddCtx(im: gdImagePtr; gdIOCtx *out, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal, gdImagePtr previm); EXTDECL; BGD_DECLARE;
|
||||||
procedure gdImageGifAnimEndCtx(gdIOCtx *out); EXTCALL; BGD_DECLARE;
|
procedure gdImageGifAnimEndCtx(gdIOCtx *out); EXTDECL; BGD_DECLARE;
|
||||||
function gdImageGifAnimBeginPtr(im: gdImagePtr; int *size, int GlobalCM, int Loops): pointer; EXTCALL; BGD_DECLARE;
|
function gdImageGifAnimBeginPtr(im: gdImagePtr; int *size, int GlobalCM, int Loops): pointer; EXTDECL; BGD_DECLARE;
|
||||||
function gdImageGifAnimAddPtr(im: gdImagePtr; int *size, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal, gdImagePtr previm): pointer; EXTCALL; BGD_DECLARE;
|
function gdImageGifAnimAddPtr(im: gdImagePtr; int *size, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal, gdImagePtr previm): pointer; EXTDECL; BGD_DECLARE;
|
||||||
function gdImageGifAnimEndPtr(int *size): pointer; EXTCALL; BGD_DECLARE;
|
function gdImageGifAnimEndPtr(int *size): pointer; EXTDECL; BGD_DECLARE;
|
||||||
*)
|
*)
|
||||||
{$warning TODO}
|
{$warning TODO}
|
||||||
|
|
||||||
@ -593,27 +581,27 @@ function gdImageGifAnimEndPtr(int *size): pointer; EXTCALL; BGD_DECLARE;
|
|||||||
type
|
type
|
||||||
gdSinkPtr = ^gdSink;
|
gdSinkPtr = ^gdSink;
|
||||||
gdSink = record
|
gdSink = record
|
||||||
sink : function(context: pointer; buffer: pchar; len: cint): cint; EXTCALL;
|
sink : function(context: pointer; buffer: pchar; len: cint): cint; EXTDECL;
|
||||||
context : pointer;
|
context : pointer;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure gdImagePngToSink(im: gdImagePtr; _out: gdSinkPtr); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImagePngToSink@8'{$ENDIF};
|
procedure gdImagePngToSink(im: gdImagePtr; _out: gdSinkPtr); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImagePngToSink@8'{$ENDIF};
|
||||||
|
|
||||||
procedure gdImageGd(im: gdImagePtr; _out: PFILE); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageGd@8'{$ENDIF};
|
procedure gdImageGd(im: gdImagePtr; _out: PFILE); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageGd@8'{$ENDIF};
|
||||||
procedure gdImageGd2(im: gdImagePtr; _out: PFILE; cs: cint; fmt: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageGd2@16'{$ENDIF};
|
procedure gdImageGd2(im: gdImagePtr; _out: PFILE; cs: cint; fmt: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageGd2@16'{$ENDIF};
|
||||||
|
|
||||||
(* Best to free this memory with gdFree(), not free() *)
|
(* Best to free this memory with gdFree(), not free() *)
|
||||||
function gdImageGifPtr(im: gdImagePtr; var size: cint): pointer; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageGifPtr@8'{$ENDIF};
|
function gdImageGifPtr(im: gdImagePtr; var size: cint): pointer; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageGifPtr@8'{$ENDIF};
|
||||||
|
|
||||||
(* Best to free this memory with gdFree(), not free() *)
|
(* Best to free this memory with gdFree(), not free() *)
|
||||||
function gdImagePngPtr(im: gdImagePtr; var size: cint): pointer; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImagePngPtr@8'{$ENDIF};
|
function gdImagePngPtr(im: gdImagePtr; var size: cint): pointer; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImagePngPtr@8'{$ENDIF};
|
||||||
function gdImagePngPtrEx(im: gdImagePtr; var size: cint; level: cint): pointer; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImagePngPtrEx@12'{$ENDIF};
|
function gdImagePngPtrEx(im: gdImagePtr; var size: cint; level: cint): pointer; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImagePngPtrEx@12'{$ENDIF};
|
||||||
|
|
||||||
(* Best to free this memory with gdFree(), not free() *)
|
(* Best to free this memory with gdFree(), not free() *)
|
||||||
function gdImageGdPtr(im: gdImagePtr; var size: cint): pointer; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageGdPtr@8'{$ENDIF};
|
function gdImageGdPtr(im: gdImagePtr; var size: cint): pointer; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageGdPtr@8'{$ENDIF};
|
||||||
|
|
||||||
(* Best to free this memory with gdFree(), not free() *)
|
(* Best to free this memory with gdFree(), not free() *)
|
||||||
function gdImageGd2Ptr(im: gdImagePtr; cs: cint; fmt: cint; var size: cint): pointer; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageGd2Ptr@16'{$ENDIF};
|
function gdImageGd2Ptr(im: gdImagePtr; cs: cint; fmt: cint; var size: cint): pointer; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageGd2Ptr@16'{$ENDIF};
|
||||||
|
|
||||||
|
|
||||||
(* Style is a bitwise OR( | operator ) of these.
|
(* Style is a bitwise OR( | operator ) of these.
|
||||||
@ -634,20 +622,20 @@ const
|
|||||||
gdNoFill = 2;
|
gdNoFill = 2;
|
||||||
gdEdged = 4;
|
gdEdged = 4;
|
||||||
|
|
||||||
procedure gdImageFilledArc(im: gdImagePtr; cx: cint; cy: cint; w: cint; h: cint; s: cint; e: cint; color: cint; style: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageFilledArc@36'{$ENDIF};
|
procedure gdImageFilledArc(im: gdImagePtr; cx: cint; cy: cint; w: cint; h: cint; s: cint; e: cint; color: cint; style: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageFilledArc@36'{$ENDIF};
|
||||||
procedure gdImageArc(im: gdImagePtr; cx: cint; cy: cint; w: cint; h: cint; s: cint; e: cint; color: cint; style: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageArc@36'{$ENDIF};
|
procedure gdImageArc(im: gdImagePtr; cx: cint; cy: cint; w: cint; h: cint; s: cint; e: cint; color: cint; style: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageArc@36'{$ENDIF};
|
||||||
procedure gdImageEllipse(im: gdImagePtr; cx: cint; cy: cint; w: cint; h: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageEllipse@24'{$ENDIF};
|
procedure gdImageEllipse(im: gdImagePtr; cx: cint; cy: cint; w: cint; h: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageEllipse@24'{$ENDIF};
|
||||||
procedure gdImageFilledEllipse(im: gdImagePtr; cx: cint; cy: cint; w: cint; h: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageFilledEllipse@24'{$ENDIF};
|
procedure gdImageFilledEllipse(im: gdImagePtr; cx: cint; cy: cint; w: cint; h: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageFilledEllipse@24'{$ENDIF};
|
||||||
procedure gdImageFillToBorder(im: gdImagePtr; cx: cint; cy: cint; border: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageFillToBorder@20'{$ENDIF};
|
procedure gdImageFillToBorder(im: gdImagePtr; cx: cint; cy: cint; border: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageFillToBorder@20'{$ENDIF};
|
||||||
procedure gdImageFill(im: gdImagePtr; x: cint; y: cint; color: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageFill@16'{$ENDIF};
|
procedure gdImageFill(im: gdImagePtr; x: cint; y: cint; color: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageFill@16'{$ENDIF};
|
||||||
procedure gdImageCopy(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY: cint; srcX: cint; srcY: cint; w: cint; h: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCopy@32'{$ENDIF};
|
procedure gdImageCopy(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY: cint; srcX: cint; srcY: cint; w: cint; h: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCopy@32'{$ENDIF};
|
||||||
procedure gdImageCopyMerge(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY: cint; srcX: cint; srcY: cint; w: cint; h: cint; pct: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCopyMerge@36'{$ENDIF};
|
procedure gdImageCopyMerge(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY: cint; srcX: cint; srcY: cint; w: cint; h: cint; pct: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCopyMerge@36'{$ENDIF};
|
||||||
procedure gdImageCopyMergeGray(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY: cint; srcX: cint; srcY: cint; w: cint; h: cint; pct: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCopyMergeGray@36'{$ENDIF};
|
procedure gdImageCopyMergeGray(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY: cint; srcX: cint; srcY: cint; w: cint; h: cint; pct: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCopyMergeGray@36'{$ENDIF};
|
||||||
|
|
||||||
(* Stretches or shrinks to fit, as needed. Does NOT attempt
|
(* Stretches or shrinks to fit, as needed. Does NOT attempt
|
||||||
to average the entire set of source pixels that scale down onto the
|
to average the entire set of source pixels that scale down onto the
|
||||||
destination pixel. *)
|
destination pixel. *)
|
||||||
procedure gdImageCopyResized(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY: cint; srcX: cint; srcY: cint; dstW: cint; dstH: cint; srcW: cint; srcH: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCopyResized@40'{$ENDIF};
|
procedure gdImageCopyResized(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 '_gdImageCopyResized@40'{$ENDIF};
|
||||||
|
|
||||||
(* gd 2.0: stretches or shrinks to fit, as needed. When called with a
|
(* gd 2.0: stretches or shrinks to fit, as needed. When called with a
|
||||||
truecolor destination image, this function averages the
|
truecolor destination image, this function averages the
|
||||||
@ -658,7 +646,7 @@ procedure gdImageCopyResized(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY:
|
|||||||
on modern hardware, except for some embedded devices. If the
|
on modern hardware, except for some embedded devices. If the
|
||||||
destination is a palette image, gdImageCopyResized is
|
destination is a palette image, gdImageCopyResized is
|
||||||
substituted automatically. *)
|
substituted automatically. *)
|
||||||
procedure gdImageCopyResampled(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dstY: cint; srcX: cint; srcY: cint; dstW: cint; dstH: cint; srcW: cint; srcH: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCopyResampled@40'{$ENDIF};
|
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};
|
||||||
|
|
||||||
(* gd 2.0.8: gdImageCopyRotated is added. Source
|
(* gd 2.0.8: gdImageCopyRotated is added. Source
|
||||||
is a rectangle, with its upper left corner at
|
is a rectangle, with its upper left corner at
|
||||||
@ -667,20 +655,20 @@ procedure gdImageCopyResampled(dst: gdImagePtr; src: gdImagePtr; dstX: cint; dst
|
|||||||
gdImageArc. Floating point destination center
|
gdImageArc. Floating point destination center
|
||||||
coordinates allow accurate rotation of
|
coordinates allow accurate rotation of
|
||||||
objects of odd-numbered width or height. *)
|
objects of odd-numbered width or height. *)
|
||||||
procedure gdImageCopyRotated(dst: gdImagePtr; src: gdImagePtr; dstX: double; dstY: double; srcX: cint; srcY: cint; srcWidth: cint; srcHeight: cint; angle: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCopyRotated@36'{$ENDIF};
|
procedure gdImageCopyRotated(dst: gdImagePtr; src: gdImagePtr; dstX: double; dstY: double; srcX: cint; srcY: cint; srcWidth: cint; srcHeight: cint; angle: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCopyRotated@36'{$ENDIF};
|
||||||
|
|
||||||
procedure gdImageSetBrush(im: gdImagePtr; brush: gdImagePtr); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageSetBrush@8'{$ENDIF};
|
procedure gdImageSetBrush(im: gdImagePtr; brush: gdImagePtr); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSetBrush@8'{$ENDIF};
|
||||||
procedure gdImageSetTile(im: gdImagePtr; tile: gdImagePtr); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageSetTile@8'{$ENDIF};
|
procedure gdImageSetTile(im: gdImagePtr; tile: gdImagePtr); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSetTile@8'{$ENDIF};
|
||||||
procedure gdImageSetAntiAliased(im: gdImagePtr; c: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageSetAntiAliased@8'{$ENDIF};
|
procedure gdImageSetAntiAliased(im: gdImagePtr; c: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSetAntiAliased@8'{$ENDIF};
|
||||||
procedure gdImageSetAntiAliasedDontBlend(im: gdImagePtr; c: cint; dont_blend: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageSetAntiAliasedDontBlend@12'{$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); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageSetStyle@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. *)
|
rectangles, polygons and so forth. *)
|
||||||
procedure gdImageSetThickness(im: gdImagePtr; thickness: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageSetThickness@8'{$ENDIF};
|
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. *)
|
(* On or off(1 or 0) for all three of these. *)
|
||||||
procedure gdImageInterlace(im: gdImagePtr; interlaceArg: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageInterlace@8'{$ENDIF};
|
procedure gdImageInterlace(im: gdImagePtr; interlaceArg: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageInterlace@8'{$ENDIF};
|
||||||
procedure gdImageAlphaBlending(im: gdImagePtr; alphaBlendingArg: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageAlphaBlending@8'{$ENDIF};
|
procedure gdImageAlphaBlending(im: gdImagePtr; alphaBlendingArg: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageAlphaBlending@8'{$ENDIF};
|
||||||
procedure gdImageSaveAlpha(im: gdImagePtr; saveAlphaArg: cint); EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageSaveAlpha@8'{$ENDIF};
|
procedure gdImageSaveAlpha(im: gdImagePtr; saveAlphaArg: cint); EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageSaveAlpha@8'{$ENDIF};
|
||||||
|
|
||||||
(* Macros to access information about images. *)
|
(* Macros to access information about images. *)
|
||||||
|
|
||||||
@ -708,14 +696,14 @@ function gdImageTrueColorPixel(im: gdImagePtr; x, y: cint): cint; inline;
|
|||||||
|
|
||||||
(* I/O Support routines. *)
|
(* I/O Support routines. *)
|
||||||
|
|
||||||
function gdNewFileCtx(p: PFILE): gdIOCtxPtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdNewFileCtx@4'{$ENDIF};
|
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
|
(* If data is null, size is ignored and an initial data buffer is
|
||||||
allocated automatically. NOTE: this function assumes gd has the right
|
allocated automatically. NOTE: this function assumes gd has the right
|
||||||
to free or reallocate "data" at will! Also note that gd will free
|
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
|
"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.
|
to memory allocated with gdMalloc, or by a call to gdImage[something]Ptr.
|
||||||
If not, see gdNewDynamicCtxEx for an alternative. *)
|
If not, see gdNewDynamicCtxEx for an alternative. *)
|
||||||
function gdNewDynamicCtx(size: cint; data: pointer): gdIOCtxPtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdNewDynamicCtx@8'{$ENDIF};
|
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
|
(* 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
|
or reallocate "data," which means that the context should only be used
|
||||||
@ -724,9 +712,9 @@ function gdNewDynamicCtx(size: cint; data: pointer): gdIOCtxPtr; EXTCALL; BGD_DE
|
|||||||
not large enough and an image write is attempted, the write operation
|
not large enough and an image write is attempted, the write operation
|
||||||
will fail. Those wishing to write an image to a buffer in memory have
|
will fail. Those wishing to write an image to a buffer in memory have
|
||||||
a much simpler alternative in the gdImage[something]Ptr functions. *)
|
a much simpler alternative in the gdImage[something]Ptr functions. *)
|
||||||
function gdNewDynamicCtxEx(size: cint; data: pointer; freeFlag: cint): gdIOCtxPtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdNewDynamicCtxEx@12'{$ENDIF};
|
function gdNewDynamicCtxEx(size: cint; data: pointer; freeFlag: cint): gdIOCtxPtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdNewDynamicCtxEx@12'{$ENDIF};
|
||||||
function gdNewSSCtx(_in: gdSourcePtr; _out: gdSinkPtr): gdIOCtxPtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdNewSSCtx@8'{$ENDIF};
|
function gdNewSSCtx(_in: gdSourcePtr; _out: gdSinkPtr): gdIOCtxPtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdNewSSCtx@8'{$ENDIF};
|
||||||
function gdDPExtractData(ctx: gdIOCtxPtr; size: pcint): pointer; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdDPExtractData@8'{$ENDIF};
|
function gdDPExtractData(ctx: gdIOCtxPtr; size: pcint): pointer; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdDPExtractData@8'{$ENDIF};
|
||||||
|
|
||||||
function gdNewStreamCtx(Stream: TStream; free: boolean): gdIOCtxPtr;
|
function gdNewStreamCtx(Stream: TStream; free: boolean): gdIOCtxPtr;
|
||||||
// NOTE: don't forget to call ctx^.gd_free(ctx)
|
// NOTE: don't forget to call ctx^.gd_free(ctx)
|
||||||
@ -743,7 +731,7 @@ const
|
|||||||
GD2_FMT_COMPRESSED = 2;
|
GD2_FMT_COMPRESSED = 2;
|
||||||
|
|
||||||
(* Image comparison definitions *)
|
(* Image comparison definitions *)
|
||||||
function gdImageCompare(im1: gdImagePtr; im2: gdImagePtr): cint; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdImageCompare@8'{$ENDIF};
|
function gdImageCompare(im1: gdImagePtr; im2: gdImagePtr): cint; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdImageCompare@8'{$ENDIF};
|
||||||
|
|
||||||
const
|
const
|
||||||
GD_CMP_IMAGE = 1; (* Actual image IS different *)
|
GD_CMP_IMAGE = 1; (* Actual image IS different *)
|
||||||
@ -762,11 +750,11 @@ const
|
|||||||
(* newfangled special effects *)
|
(* newfangled special effects *)
|
||||||
//#include "gdfx.h"
|
//#include "gdfx.h"
|
||||||
|
|
||||||
function gdFontGetLarge(): gdFontPtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdFontGetLarge@0'{$ENDIF};
|
function gdFontGetLarge(): gdFontPtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFontGetLarge@0'{$ENDIF};
|
||||||
function gdFontGetSmall(): gdFontPtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdFontGetSmall@0'{$ENDIF};
|
function gdFontGetSmall(): gdFontPtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFontGetSmall@0'{$ENDIF};
|
||||||
function gdFontGetGiant(): gdFontPtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdFontGetGiant@0'{$ENDIF};
|
function gdFontGetGiant(): gdFontPtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFontGetGiant@0'{$ENDIF};
|
||||||
function gdFontGetMediumBold(): gdFontPtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdFontGetMediumBold@0'{$ENDIF};
|
function gdFontGetMediumBold(): gdFontPtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFontGetMediumBold@0'{$ENDIF};
|
||||||
function gdFontGetTiny(): gdFontPtr; EXTCALL; BGD_DECLARE {$IFDEF WINDOWS}name '_gdFontGetTiny@0'{$ENDIF};
|
function gdFontGetTiny(): gdFontPtr; EXTDECL; external gdlib {$IFDEF WINDOWS}name '_gdFontGetTiny@0'{$ENDIF};
|
||||||
|
|
||||||
{$ifdef windows}
|
{$ifdef windows}
|
||||||
function gdFontLarge(): gdFontPtr; inline;
|
function gdFontLarge(): gdFontPtr; inline;
|
||||||
@ -777,17 +765,17 @@ function gdFontTiny(): gdFontPtr; inline;
|
|||||||
{$else}
|
{$else}
|
||||||
var
|
var
|
||||||
{$ifndef darwin}
|
{$ifndef darwin}
|
||||||
gdFontLarge : gdFontPtr; cvar; BGD_DECLARE;
|
gdFontLarge : gdFontPtr; cvar; external gdlib;
|
||||||
gdFontSmall : gdFontPtr; cvar; BGD_DECLARE;
|
gdFontSmall : gdFontPtr; cvar; external gdlib;
|
||||||
gdFontGiant : gdFontPtr; cvar; BGD_DECLARE;
|
gdFontGiant : gdFontPtr; cvar; external gdlib;
|
||||||
gdFontMediumBold : gdFontPtr; cvar; BGD_DECLARE;
|
gdFontMediumBold : gdFontPtr; cvar; external gdlib;
|
||||||
gdFontTiny : gdFontPtr; cvar; BGD_DECLARE;
|
gdFontTiny : gdFontPtr; cvar; external gdlib;
|
||||||
{$else darwin}
|
{$else darwin}
|
||||||
gdFontLarge : gdFontPtr; BGD_DECLARE name 'gdFontLarge';
|
gdFontLarge : gdFontPtr; external gdlib name 'gdFontLarge';
|
||||||
gdFontSmall : gdFontPtr; BGD_DECLARE name 'gdFontSmall';
|
gdFontSmall : gdFontPtr; external gdlib name 'gdFontSmall';
|
||||||
gdFontGiant : gdFontPtr; BGD_DECLARE name 'gdFontGiant';
|
gdFontGiant : gdFontPtr; external gdlib name 'gdFontGiant';
|
||||||
gdFontMediumBold : gdFontPtr; BGD_DECLARE name 'gdFontMediumBold';
|
gdFontMediumBold : gdFontPtr; external gdlib name 'gdFontMediumBold';
|
||||||
gdFontTiny : gdFontPtr; BGD_DECLARE name 'gdFontTiny';
|
gdFontTiny : gdFontPtr; external gdlib name 'gdFontTiny';
|
||||||
{$endif darwin}
|
{$endif darwin}
|
||||||
{$endif}
|
{$endif}
|
||||||
|
|
||||||
@ -980,7 +968,7 @@ type
|
|||||||
free: Boolean;
|
free: Boolean;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function stream_getC(ctx: gdIOCtxPtr): cint; EXTCALL;
|
function stream_getC(ctx: gdIOCtxPtr): cint; EXTDECL;
|
||||||
var
|
var
|
||||||
s: stream_gdIOCtxPtr absolute ctx;
|
s: stream_gdIOCtxPtr absolute ctx;
|
||||||
begin
|
begin
|
||||||
@ -988,42 +976,42 @@ begin
|
|||||||
s^.strm.read(result, 1);
|
s^.strm.read(result, 1);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function stream_getBuf(ctx: gdIOCtxPtr; buf: pointer; len: cint): cint; EXTCALL;
|
function stream_getBuf(ctx: gdIOCtxPtr; buf: pointer; len: cint): cint; EXTDECL;
|
||||||
var
|
var
|
||||||
s: stream_gdIOCtxPtr absolute ctx;
|
s: stream_gdIOCtxPtr absolute ctx;
|
||||||
begin
|
begin
|
||||||
result := s^.strm.read(buf^, len);
|
result := s^.strm.read(buf^, len);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure stream_putC(ctx: gdIOCtxPtr; len: cint); EXTCALL;
|
procedure stream_putC(ctx: gdIOCtxPtr; len: cint); EXTDECL;
|
||||||
var
|
var
|
||||||
s: stream_gdIOCtxPtr absolute ctx;
|
s: stream_gdIOCtxPtr absolute ctx;
|
||||||
begin
|
begin
|
||||||
s^.strm.write(len, 1);
|
s^.strm.write(len, 1);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure stream_putBuf(ctx: gdIOCtxPtr; buf: pointer; len: cint); EXTCALL;
|
procedure stream_putBuf(ctx: gdIOCtxPtr; buf: pointer; len: cint); EXTDECL;
|
||||||
var
|
var
|
||||||
s: stream_gdIOCtxPtr absolute ctx;
|
s: stream_gdIOCtxPtr absolute ctx;
|
||||||
begin
|
begin
|
||||||
s^.strm.write(buf^, len);
|
s^.strm.write(buf^, len);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function stream_seek(ctx: gdIOCtxPtr; pos: cint): cint; EXTCALL;
|
function stream_seek(ctx: gdIOCtxPtr; pos: cint): cint; EXTDECL;
|
||||||
var
|
var
|
||||||
s: stream_gdIOCtxPtr absolute ctx;
|
s: stream_gdIOCtxPtr absolute ctx;
|
||||||
begin
|
begin
|
||||||
result := s^.strm.seek(soFromBeginning, pos);
|
result := s^.strm.seek(soFromBeginning, pos);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function stream_tell(ctx: gdIOCtxPtr): clong; EXTCALL;
|
function stream_tell(ctx: gdIOCtxPtr): clong; EXTDECL;
|
||||||
var
|
var
|
||||||
s: stream_gdIOCtxPtr absolute ctx;
|
s: stream_gdIOCtxPtr absolute ctx;
|
||||||
begin
|
begin
|
||||||
result := s^.strm.position;
|
result := s^.strm.position;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure stream_gd_free(ctx: gdIOCtxPtr); EXTCALL;
|
procedure stream_gd_free(ctx: gdIOCtxPtr); EXTDECL;
|
||||||
var
|
var
|
||||||
s: stream_gdIOCtxPtr absolute ctx;
|
s: stream_gdIOCtxPtr absolute ctx;
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user