2007-09-16 22:30 UTC+0200 Francesco Saverio Giudice <info/at/fsgiudice.com>

* contrib/gd/source/gdwrp.c
    * changed pointers handling, thanks to Przemek for code
This commit is contained in:
Francesco Saverio Giudice
2007-09-16 20:23:44 +00:00
parent 18cdcd232e
commit 71145fd194
2 changed files with 281 additions and 96 deletions

View File

@@ -8,6 +8,10 @@
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2007-09-16 22:30 UTC+0200 Francesco Saverio Giudice <info/at/fsgiudice.com>
* contrib/gd/source/gdwrp.c
* changed pointers handling, thanks to Przemek for code
2007-04-05 10:00 UTC+0200 Lorenzo Fiorini <lorenzo.fiorini/at/gmail.com>
* ported from xHarbour/contrib/gd
* changed name of the lib from gdlib to hbgd

View File

@@ -93,6 +93,158 @@
/* Internal functions */
/* ---------------------------------------------------------------------------*/
/*
*******************
** internal function for handling pointers
**
** Code of Przemyslaw Czerpak for gdImagePtr
** adapted also to gdFontPtr
*******************
*/
/*
gdImage -----------------------
*/
/* gdImage destructor, it's executed automatically
*/
static HB_GARBAGE_FUNC( hb_gdImage_Destructor )
{
/* Retrieve image pointer holder */
gdImagePtr * imPtr = ( gdImagePtr * ) Cargo;
/* Check if pointer is not NULL to avoid multiple freeing */
if( * imPtr )
{
/* Destroy the image */
gdImageDestroy( * imPtr );
/* set pointer to NULL to avoid multiple freeing */
* imPtr = NULL;
}
}
/* ---------------------------------------------------------------------------*/
/* function returns gdImage pointer or NULL when wrong variable is
* passed or gdImage was freed before
*/
static gdImagePtr hb_parGdImage( int iParam )
{
gdImagePtr * imPtr =
( gdImagePtr * ) hb_parptrGC( hb_gdImage_Destructor, iParam );
if( imPtr )
return * imPtr;
else
return NULL;
}
/* ---------------------------------------------------------------------------*/
/* function create in HVM stack return value item with gdImage pointer
*/
static void hb_retGdImage( gdImagePtr im )
{
gdImagePtr * imPtr;
imPtr = ( gdImagePtr * ) hb_gcAlloc( sizeof( gdImagePtr ),
hb_gdImage_Destructor );
* imPtr = im;
hb_retptrGC( ( void * ) imPtr );
}
/* ---------------------------------------------------------------------------*/
#if 0
/* function returns PHB_ITEM with gdImage pointer
*/
static PHB_ITEM hb_gdImageItemNew( gdImagePtr im )
{
gdImagePtr * imPtr;
imPtr = ( gdImagePtr * ) hb_gcAlloc( sizeof( gdImagePtr ),
hb_gdImage_Destructor );
* imPtr = im;
return hb_itemPutPtrGC( NULL, ( void * ) imPtr );
}
#endif
/*
gdFont -----------------------
*/
/* gdFont destructor, it's executed automatically
*/
static HB_GARBAGE_FUNC( hb_gdFont_Destructor )
{
/* Retrieve Font pointer holder */
gdFontPtr * fontPtr = ( gdFontPtr * ) Cargo;
/* Check if pointer is not NULL to avoid multiple freeing */
if( * fontPtr )
{
/* Destroy the Font */
/*
// do nothing, GD handles it directly and gdFontDestroy() not exists
gdFontDestroy( * fontPtr );
*/
/* set pointer to NULL to avoid multiple freeing */
* fontPtr = NULL;
}
}
/* ---------------------------------------------------------------------------*/
/* function returns gdFont pointer or NULL when wrong variable is
* passed or gdFont was freed before
*/
static gdFontPtr hb_parGdFont( int iParam )
{
gdFontPtr * fontPtr =
( gdFontPtr * ) hb_parptrGC( hb_gdFont_Destructor, iParam );
if( fontPtr )
return * fontPtr;
else
return NULL;
}
/* ---------------------------------------------------------------------------*/
/* function create in HVM stack return value item with gdFont pointer
*/
static void hb_retGdFont( gdFontPtr font )
{
gdFontPtr * fontPtr;
fontPtr = ( gdFontPtr * ) hb_gcAlloc( sizeof( gdFontPtr ),
hb_gdFont_Destructor );
* fontPtr = font;
hb_retptrGC( ( void * ) fontPtr );
}
/* ---------------------------------------------------------------------------*/
#if 0
/* function returns PHB_ITEM with gdFont pointer
*/
static PHB_ITEM hb_gdFontItemNew( gdFontPtr font )
{
gdFontPtr * fontPtr;
fontPtr = ( gdFontPtr * ) hb_gcAlloc( sizeof( gdFontPtr ),
hb_gdFont_Destructor );
* fontPtr = font;
return hb_itemPutPtrGC( NULL, ( void * ) fontPtr );
}
#endif
/* ---------------------------------------------------------------------------*/
static void * LoadImageFromHandle( FHANDLE fhandle, int sz )
{
void *iptr;
@@ -202,7 +354,7 @@ static void GDImageCreateFrom( int nType )
{
/* Retrieve image pointer */
iptr = hb_parptr( 1 );
iptr = hb_parGdImage( 1 );
/* Retrieve image size */
sz = hb_parni( 2 );
}
@@ -258,7 +410,7 @@ static void GDImageCreateFrom( int nType )
}
/* Return image pointer */
hb_retptr( im );
hb_retGdImage( im );
/* Free memory */
hb_xfree( iptr );
@@ -282,7 +434,7 @@ static void GDImageSaveTo( int nType )
int level = 0, fg = 0;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr(1);
im = hb_parGdImage( 1 );
/* Get file name or an output handler or NIL it I want a return string */
if ( !( ISNIL(2) ||
@@ -460,7 +612,7 @@ HB_FUNC( GDIMAGECREATE ) // gdImagePtr gdImageCreate(sx, sy)
im = gdImageCreate( sx, sy );
/* Return image pointer */
hb_retptr( im );
hb_retGdImage( im );
}
else
{
@@ -502,7 +654,7 @@ HB_FUNC( GDIMAGECREATETRUECOLOR ) // gdImageCreateTrueColor(sx, sy)
im = gdImageCreateTrueColor( sx, sy );
/* Return image pointer */
hb_retptr( im );
hb_retGdImage( im );
}
else
{
@@ -607,22 +759,42 @@ HB_FUNC( GDIMAGEGD ) // original: void gdImageGD(gdImagePtr im, FILE *out)
/* ---------------------------------------------------------------------------*/
/*
After Przemek changes on hb_*ptr() functions, this is a void function holded only
for compatibility with GD library.
*/
HB_FUNC( GDIMAGEDESTROY ) // gdImageDestroy(gdImagePtr im)
{
if ( hb_pcount() == 1 &&
hb_parinfo( 1 ) & HB_IT_POINTER )
{
/*
gdImagePtr im;
*/
/* Retrieve image pointer */
/*
im = (gdImagePtr)hb_parptr( 1 );
*/
/* Destroy the image */
/*
gdImageDestroy( im );
*/
}
}
else
{
// Parameter error
{
hb_errRT_BASE_SubstR( EG_ARG, 0, NULL,
"GDIMAGEDESTROY", 1,
hb_paramError( 1 ) );
return;
}
}
}
/* ---------------------------------------------------------------------------*/
@@ -644,7 +816,7 @@ HB_FUNC( GDIMAGESETPIXEL ) // void gdImageSetPixel(gdImagePtr im, int x, int y,
int color;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve coord values */
x = hb_parni( 2 );
@@ -687,7 +859,7 @@ HB_FUNC( GDIMAGELINE ) // void gdImageLine(gdImagePtr im, int x1, int y1, int x2
int color;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve coord values */
x1 = hb_parni( 2 );
@@ -733,7 +905,7 @@ HB_FUNC( GDIMAGEDASHEDLINE ) // void gdImageDashedLine(gdImagePtr im, int x1, in
int color;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve coord values */
x1 = hb_parni( 2 );
@@ -783,7 +955,7 @@ HB_FUNC( GDIMAGEPOLYGON ) // original: void gdImagePolygon(gdImagePtr im, gdPoin
gdPoint points[50]; // TODO: make this dynamic
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve point array */
pPoints = hb_param( 2, HB_IT_ARRAY );
@@ -840,7 +1012,7 @@ HB_FUNC( GDIMAGEOPENPOLYGON ) // original: void gdImageOpenPolygon(gdImagePtr im
gdPoint points[50]; // TODO: make this dynamic
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve point array */
pPoints = hb_param( 2, HB_IT_ARRAY );
@@ -894,7 +1066,7 @@ HB_FUNC( GDIMAGERECTANGLE ) // void gdImageRectangle(gdImagePtr im, int x1, int
int color;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve coord values */
x1 = hb_parni( 2 );
@@ -939,7 +1111,7 @@ HB_FUNC( GDIMAGERECTANGLE ) // void gdImageRectangle(gdImagePtr im, int x1, int
// int cx, cy, w, h, color;
//
// /* Retrieve image pointer */
// im = (gdImagePtr) hb_parptr( 1 );
// im = hb_parGdImage( 1 );
//
// /* Retrieve point values */
// cx = hb_parni( 2 );
@@ -989,7 +1161,7 @@ HB_FUNC( GDIMAGEFILLEDPOLYGON ) // original: void gdImageFilledPolygon(gdImagePt
gdPoint points[50];
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve point array */
pPoints = hb_param( 2, HB_IT_ARRAY );
@@ -1042,7 +1214,7 @@ HB_FUNC( GDIMAGEFILLEDRECTANGLE ) // void gdImageFilledRectangle(gdImagePtr im,
int color;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve coord values */
x1 = hb_parni( 2 );
@@ -1089,7 +1261,7 @@ HB_FUNC( GDIMAGEARC ) // void gdImageArc(gdImagePtr im, int cx, int cy, int w, i
int cx, cy, w, h, s, e, color;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve point values */
cx = hb_parni( 2 );
@@ -1139,7 +1311,7 @@ HB_FUNC( GDIMAGEFILLEDARC ) // void gdImageFilledArc(gdImagePtr im, int cx, int
int cx, cy, w, h, s, e, color, style;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve point values */
cx = hb_parni( 2 );
@@ -1191,7 +1363,7 @@ HB_FUNC( GDIMAGEFILLEDELLIPSE ) // void gdImageFilledEllipse(gdImagePtr im, int
int cx, cy, w, h, color;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve point values */
cx = hb_parni( 2 );
@@ -1235,7 +1407,7 @@ HB_FUNC( GDIMAGEFILLTOBORDER ) // void gdImageFillToBorder(gdImagePtr im, int x,
int x, y, border, color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve point values */
x = hb_parni( 2 );
@@ -1279,7 +1451,7 @@ HB_FUNC( GDIMAGEELLIPSE ) // void gdImageEllipse(gdImagePtr im, int cx, int cy,
int cx, cy, w, h, color;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve point values */
cx = hb_parni( 2 );
@@ -1323,7 +1495,7 @@ HB_FUNC( GDIMAGEFILL ) // void gdImageFill(gdImagePtr im, int x, int y, int colo
int x, y, color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve point values */
x = hb_parni( 2 );
@@ -1360,7 +1532,7 @@ HB_FUNC( GDIMAGESETANTIALIASED ) // void gdImageSetAntiAliased(gdImagePtr im, in
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve color value */
color = hb_parni( 2 );
@@ -1396,7 +1568,7 @@ HB_FUNC( GDIMAGESETANTIALIASEDDONTBLEND ) // void gdImageSetAntiAliasedDontBlend
int dont_blend;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve color value */
color = hb_parni( 2 );
@@ -1433,10 +1605,10 @@ HB_FUNC( GDIMAGESETBRUSH ) // void gdImageSetBrush(gdImagePtr im, gdImagePtr bru
gdImagePtr brush;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve brush pointer */
brush = (gdImagePtr)hb_parptr( 2 );
brush = hb_parGdImage( 2 );
/* Set Brush */
gdImageSetBrush(im, brush);
@@ -1467,10 +1639,10 @@ HB_FUNC( GDIMAGESETTILE ) // void gdImageSetTile(gdImagePtr im, gdImagePtr tile)
gdImagePtr tile;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve tile pointer */
tile = (gdImagePtr)hb_parptr( 2 );
tile = hb_parGdImage( 2 );
/* Set Tile */
gdImageSetTile(im, tile);
@@ -1507,7 +1679,7 @@ HB_FUNC( GDIMAGESETSTYLE ) // original: void gdImageSetStyle(gdImagePtr im, int
int styles[50]; // TODO: make this dynamic
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve style array */
pStyles = hb_param( 2, HB_IT_ARRAY );
@@ -1547,7 +1719,7 @@ HB_FUNC( GDIMAGESETTHICKNESS ) // void gdImageSetThickness(gdImagePtr im, int th
int oldthick;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve thickness value */
thickness = hb_parni( 2 );
@@ -1587,7 +1759,7 @@ HB_FUNC( GDIMAGEALPHABLENDING ) // void gdImageAlphaBlending(gdImagePtr im, int
int blending;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve blending value - logical */
blending = hb_parl( 2 );
@@ -1621,7 +1793,7 @@ HB_FUNC( GDIMAGESAVEALPHA ) // void gdImageSaveAlpha(gdImagePtr im, int saveFlag
int saveFlag;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve saveFlag value - logical */
saveFlag = hb_parl( 2 );
@@ -1658,7 +1830,7 @@ HB_FUNC( GDIMAGESETCLIP ) // void gdImageSetClip(gdImagePtr im, int x1, int y1,
int x1, y1, x2, y2;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve coords value */
x1 = hb_parni( 2 );
@@ -1697,7 +1869,7 @@ HB_FUNC( GDIMAGEGETCLIP ) // original: void gdImageGetClip(gdImagePtr im, int *x
PHB_ITEM pClipArray;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Get clipping rectangle */
gdImageGetClip(im, &x1, &y1, &x2, &y2);
@@ -1741,7 +1913,7 @@ HB_FUNC( GDIMAGECOLORSTOTAL ) // int gdImageColorsTotal(gdImagePtr im)
gdImagePtr im;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Get Colors total */
hb_retni( gdImageColorsTotal(im) );
@@ -1772,7 +1944,7 @@ HB_FUNC( GDIMAGEALPHA ) // int gdImageAlpha(gdImagePtr im, int color)
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve saveFlag value */
color = hb_parni( 2 );
@@ -1806,7 +1978,7 @@ HB_FUNC( GDIMAGERED ) // int gdImageRed(gdImagePtr im, int color)
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve saveFlag value */
color = hb_parni( 2 );
@@ -1840,7 +2012,7 @@ HB_FUNC( GDIMAGEGREEN ) // int gdImageGreen(gdImagePtr im, int color)
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve saveFlag value */
color = hb_parni( 2 );
@@ -1874,7 +2046,7 @@ HB_FUNC( GDIMAGEBLUE ) // int gdImageBlue(gdImagePtr im, int color)
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve saveFlag value */
color = hb_parni( 2 );
@@ -1906,7 +2078,7 @@ HB_FUNC( GDIMAGESX ) // int gdImageSX(gdImagePtr im)
gdImagePtr im;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Get Image Width in pixels */
hb_retni( gdImageSX(im) );
@@ -1935,7 +2107,7 @@ HB_FUNC( GDIMAGESY ) // int gdImageSX(gdImagePtr im)
gdImagePtr im;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Get Image Height in pixels */
hb_retni( gdImageSY(im) );
@@ -1967,7 +2139,7 @@ HB_FUNC( GDIMAGEGETPIXEL ) // int gdImageGetPixel(gdImagePtr im, int x, int y)
int x,y;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve coord value */
x = hb_parni( 2 );
@@ -2003,7 +2175,7 @@ HB_FUNC( GDIMAGEBOUNDSSAFE ) // int gdImageBoundsSafe(gdImagePtr im, int x, int
int x,y;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve coord value */
x = hb_parni( 2 );
@@ -2036,7 +2208,7 @@ HB_FUNC( GDIMAGEGETINTERLACED ) // int gdImageGetInterlaced(gdImagePtr im)
gdImagePtr im;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Image is interlaced ? */
hb_retl( gdImageGetInterlaced(im) );
@@ -2065,7 +2237,7 @@ HB_FUNC( GDIMAGEGETTRANSPARENT ) // int gdImageGetTransparent(gdImagePtr im)
gdImagePtr im;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Image is trasparent ? */
hb_retl( gdImageGetTransparent(im) );
@@ -2094,7 +2266,7 @@ HB_FUNC( GDIMAGETRUECOLOR ) // int gdImageTrueColor(gdImagePtr im)
gdImagePtr im;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Is TrueColor ? */
hb_retl( gdImageTrueColor(im) );
@@ -2126,7 +2298,7 @@ HB_FUNC( GDIMAGETRUECOLORTOPALETTE ) // void gdImageTrueColorToPalette (gdImageP
int ditherFlag, colorsWanted;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve ditherFlag - logical */
ditherFlag = hb_parl( 2 );
@@ -2165,7 +2337,7 @@ HB_FUNC( GDIMAGECREATEPALETTEFROMTRUECOLOR ) // gdImagePtr gdImageCreatePaletteF
int ditherFlag, colorsWanted;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve ditherFlag - logical */
ditherFlag = hb_parl( 2 );
@@ -2177,7 +2349,7 @@ HB_FUNC( GDIMAGECREATEPALETTEFROMTRUECOLOR ) // gdImagePtr gdImageCreatePaletteF
imNew = gdImageCreatePaletteFromTrueColor(im, ditherFlag, colorsWanted);
/* Return image pointer */
hb_retptr( imNew );
hb_retGdImage( imNew );
}
else
@@ -2206,7 +2378,7 @@ HB_FUNC( GDIMAGEPALETTEPIXEL ) // int gdImagePalettePixel(gdImagePtr im, int x,
int x,y;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve coord value */
x = hb_parni( 2 );
@@ -2242,7 +2414,7 @@ HB_FUNC( GDIMAGETRUECOLORPIXEL ) // int gdImageTrueColorPixel(gdImagePtr im, int
int x,y;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve coord value */
x = hb_parni( 2 );
@@ -2275,7 +2447,7 @@ HB_FUNC( GDIMAGEGETTHICKNESS ) // void gdImageGetThickness(gdImagePtr im)
gdImagePtr im;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Return previous */
hb_retni( im->thick );
@@ -2307,7 +2479,8 @@ HB_FUNC( GDFONTGETSMALL ) // gdFontPtr gdFontGetSmall(void)
font = gdFontGetSmall();
/* Return font pointer */
hb_retptr( font );
hb_retGdFont( font );
//hb_retptr( font );
}
/* ---------------------------------------------------------------------------*/
@@ -2320,7 +2493,8 @@ HB_FUNC( GDFONTGETLARGE ) // gdFontPtr gdFontGetLarge(void)
font = gdFontGetLarge();
/* Return font pointer */
hb_retptr( font );
hb_retGdFont( font );
//hb_retptr( font );
}
/* ---------------------------------------------------------------------------*/
@@ -2333,7 +2507,8 @@ HB_FUNC( GDFONTGETMEDIUMBOLD ) // gdFontPtr gdFontGetMediumBold(void)
font = gdFontGetMediumBold();
/* Return font pointer */
hb_retptr( font );
hb_retGdFont( font );
//hb_retptr( font );
}
/* ---------------------------------------------------------------------------*/
@@ -2346,7 +2521,8 @@ HB_FUNC( GDFONTGETGIANT ) // gdFontPtr gdFontGetGiant(void)
font = gdFontGetGiant();
/* Return font pointer */
hb_retptr( font );
hb_retGdFont( font );
//hb_retptr( font );
}
/* ---------------------------------------------------------------------------*/
@@ -2359,7 +2535,8 @@ HB_FUNC( GDFONTGETTINY ) // gdFontPtr gdFontGetTiny(void)
font = gdFontGetTiny();
/* Return font pointer */
hb_retptr( font );
hb_retGdFont( font );
//hb_retptr( font );
}
/* ---------------------------------------------------------------------------*/
@@ -2382,10 +2559,11 @@ HB_FUNC( GDIMAGESTRING ) // void gdImageChar(gdImagePtr im, gdFontPtr font, int
unsigned char *s;
/* Retrieve image pointer */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve font pointer */
font = (gdFontPtr)hb_parptr( 2 );
font = hb_parGdFont( 2 );
//font = (gdFontPtr)hb_parptr( 2 );
/* Retrieve coord value */
x = hb_parni( 3 );
@@ -2442,10 +2620,11 @@ HB_FUNC( GDIMAGESTRINGUP ) // void gdImageCharUp(gdImagePtr im, gdFontPtr font,
unsigned char *s;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve font pointer */
font = (gdFontPtr)hb_parptr( 2 );
font = hb_parGdFont( 2 );
//font = (gdFontPtr)hb_parptr( 2 );
/* Retrieve coord value */
x = hb_parni( 3 );
@@ -2517,7 +2696,7 @@ HB_FUNC( GDIMAGESTRINGFTEX )
int resolution;
/* Retrieve image pointer */
im = (gdImagePtr)( hb_parinfo( 1 ) & HB_IT_POINTER ? hb_parptr( 1 ) : NULL );
im = hb_parGdImage( 1 );
//TraceLog( NULL, "Image pointer: %p\n\r", im );
/* Retrieve rectangle array */
@@ -2651,7 +2830,7 @@ HB_FUNC( GDIMAGESTRINGFTCIRCLE ) // char *gdImageStringFTCircle(gdImagePtr im, i
char *err;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve pos value */
cx = hb_parni( 2 );
@@ -2727,7 +2906,8 @@ HB_FUNC( GDFONTGETWIDTH )
gdFontPtr font;
/* Retrieve font pointer */
font = (gdFontPtr)hb_parptr( 1 );
font = hb_parGdFont( 1 );
//font = (gdFontPtr)hb_parptr( 1 );
/* Return value */
hb_retni( font->w );
@@ -2756,7 +2936,8 @@ HB_FUNC( GDFONTGETHEIGHT )
gdFontPtr font;
/* Retrieve font pointer */
font = (gdFontPtr)hb_parptr( 1 );
font = hb_parGdFont( 1 );
//font = (gdFontPtr)hb_parptr( 1 );
/* Return value */
hb_retni( font->h );
@@ -2794,7 +2975,7 @@ HB_FUNC( GDIMAGECOLORALLOCATE ) // int gdImageColorAllocate(gdImagePtr im, int r
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve RGB values */
r = hb_parni( 2 );
@@ -2833,7 +3014,7 @@ HB_FUNC( GDIMAGECOLORDEALLOCATE ) // void gdImageColorDeallocate(gdImagePtr im,
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve saveFlag value */
color = hb_parni( 2 );
@@ -2872,7 +3053,7 @@ HB_FUNC( GDIMAGECOLORALLOCATEALPHA ) // int gdImageColorAllocateAlpha(gdImagePtr
int a;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve RGB values */
r = hb_parni( 2 );
@@ -2918,7 +3099,7 @@ HB_FUNC( GDIMAGECOLORCLOSEST ) // int gdImageColorClosest(gdImagePtr im, int r,
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve RGB values */
r = hb_parni( 2 );
@@ -2962,7 +3143,7 @@ HB_FUNC( GDIMAGECOLORCLOSESTALPHA ) // int gdImageColorClosestAlpha(gdImagePtr i
int a;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve RGB values */
r = hb_parni( 2 );
@@ -3008,7 +3189,7 @@ HB_FUNC( GDIMAGECOLORCLOSESTHWB ) // gdImageColorClosestHWB(gdImagePtr im, int
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve RGB values */
r = hb_parni( 2 );
@@ -3050,7 +3231,7 @@ HB_FUNC( GDIMAGECOLOREXACT ) // int gdImageColorExact(gdImagePtr im, int r, int
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve RGB values */
r = hb_parni( 2 );
@@ -3092,7 +3273,7 @@ HB_FUNC( GDIMAGECOLORRESOLVE ) // int gdImageColorResolve(gdImagePtr im, int r,
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve RGB values */
r = hb_parni( 2 );
@@ -3136,7 +3317,7 @@ HB_FUNC( GDIMAGECOLORRESOLVEALPHA ) // int gdImageColorResolveAlpha(gdImagePtr i
int a;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve RGB values */
r = hb_parni( 2 );
@@ -3179,7 +3360,7 @@ HB_FUNC( GDIMAGECOLORTRANSPARENT ) // void gdImageColorTransparent(gdImagePtr im
int color;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve saveFlag value */
color = hb_parni( 2 );
@@ -3299,10 +3480,10 @@ HB_FUNC( GDIMAGECOPY ) // void gdImageCopy(gdImagePtr dst, gdImagePtr src, int d
int dstX, dstY, srcX, srcY, w, h;
/* Retrieve destination image pointer */
dst = (gdImagePtr)hb_parptr( 1 );
dst = hb_parGdImage( 1 );
/* Retrieve source image pointer */
src = (gdImagePtr)hb_parptr( 2 );
src = hb_parGdImage( 2 );
/* Retrieve destination pos value */
dstX = hb_parni( 3 );
@@ -3356,10 +3537,10 @@ HB_FUNC( GDIMAGECOPYRESIZED ) // void gdImageCopyResized(gdImagePtr dst, gdImage
int dstW, dstH, srcW, srcH;
/* Retrieve destination image pointer */
dst = (gdImagePtr)hb_parptr( 1 );
dst = hb_parGdImage( 1 );
/* Retrieve source image pointer */
src = (gdImagePtr)hb_parptr( 2 );
src = hb_parGdImage( 2 );
/* Retrieve destination pos value */
dstX = hb_parni( 3 );
@@ -3420,10 +3601,10 @@ HB_FUNC( GDIMAGECOPYRESAMPLED ) // void gdImageCopyResampled(gdImagePtr dst, gdI
int dstW, dstH, srcW, srcH;
/* Retrieve destination image pointer */
dst = (gdImagePtr)hb_parptr( 1 );
dst = hb_parGdImage( 1 );
/* Retrieve source image pointer */
src = (gdImagePtr)hb_parptr( 2 );
src = hb_parGdImage( 2 );
/* Retrieve destination pos value */
dstX = hb_parni( 3 );
@@ -3483,10 +3664,10 @@ HB_FUNC( GDIMAGECOPYROTATED ) // void gdImageCopyRotated(gdImagePtr dst, gdImage
int srcX, srcY, srcW, srcH, angle;
/* Retrieve destination image pointer */
dst = (gdImagePtr)hb_parptr( 1 );
dst = hb_parGdImage( 1 );
/* Retrieve source image pointer */
src = (gdImagePtr)hb_parptr( 2 );
src = hb_parGdImage( 2 );
/* Retrieve destination pos value */
dstX = hb_parnd( 3 );
@@ -3542,10 +3723,10 @@ HB_FUNC( GDIMAGECOPYMERGE ) // void gdImageCopyMerge(gdImagePtr dst, gdImagePtr
int dstX, dstY, srcX, srcY, w, h, pct;
/* Retrieve destination image pointer */
dst =(gdImagePtr)hb_parptr( 1 );
dst =hb_parGdImage( 1 );
/* Retrieve source image pointer */
src = (gdImagePtr)hb_parptr( 2 );
src = hb_parGdImage( 2 );
/* Retrieve destination pos value */
dstX = hb_parni( 3 );
@@ -3601,10 +3782,10 @@ HB_FUNC( GDIMAGECOPYMERGEGRAY ) // void gdImageCopyMergeGray(gdImagePtr dst, gdI
int dstX, dstY, srcX, srcY, w, h, pct;
/* Retrieve destination image pointer */
dst = (gdImagePtr)hb_parptr( 1 );
dst = hb_parGdImage( 1 );
/* Retrieve source image pointer */
src = (gdImagePtr)hb_parptr( 2 );
src = hb_parGdImage( 2 );
/* Retrieve destination pos value */
dstX = hb_parni( 3 );
@@ -3652,10 +3833,10 @@ HB_FUNC( GDIMAGEPALETTECOPY ) // void gdImagePaletteCopy(gdImagePtr dst, gdImage
gdImagePtr dst, src;
/* Retrieve destination image pointer */
dst = (gdImagePtr)hb_parptr( 1 );
dst = hb_parGdImage( 1 );
/* Retrieve source image pointer */
src = (gdImagePtr)hb_parptr( 2 );
src = hb_parGdImage( 2 );
/* Perform copy */
gdImagePaletteCopy(dst, src);
@@ -3685,7 +3866,7 @@ HB_FUNC( GDIMAGESQUARETOCIRCLE ) // void gdImageSquareToCircle(gdImagePtr im, in
int radius;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve radius value */
radius = hb_parni( 2 );
@@ -3719,7 +3900,7 @@ HB_FUNC( GDIMAGESHARPEN ) // void gdImageSharpen(gdImagePtr im, int pct)
int pct;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve percentual value */
pct = hb_parni( 2 );
@@ -3756,10 +3937,10 @@ HB_FUNC( GDIMAGECOMPARE ) // int gdImageCompare(gdImagePtr im1, gdImagePtr im2)
gdImagePtr dst, src;
/* Retrieve destination image pointer */
dst = (gdImagePtr)hb_parptr( 1 );
dst = hb_parGdImage( 1 );
/* Retrieve source image pointer */
src = (gdImagePtr)hb_parptr( 2 );
src = hb_parGdImage( 2 );
/* Compare images - if return <> 0 check value for infos */
hb_retni( gdImageCompare(dst, src) );
@@ -3789,7 +3970,7 @@ HB_FUNC( GDIMAGEINTERLACE ) // void gdImageInterlace(gdImagePtr im, int interlac
int interlace;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve interlace value */
interlace = hb_parl( 2 );
@@ -3848,7 +4029,7 @@ HB_FUNC( GDIMAGEGIFANIMBEGIN )
int GlobalCM, Loops;
/* Retrieve image pointer */
im = (gdImagePtr) hb_parptr( 1 );
im = hb_parGdImage( 1 );
/* Retrieve global color map value */
GlobalCM = hb_parni( 3 );
@@ -3914,14 +4095,14 @@ HB_FUNC( GDIMAGEGIFANIMADD )
int LocalCM, LeftOfs, TopOfs, Delay, Disposal;
/* Retrieve parameters */
im = (gdImagePtr)hb_parptr( 1 );
im = hb_parGdImage( 1 );
LocalCM = hb_parni( 3 );
LeftOfs = hb_parni( 4 );
TopOfs = hb_parni( 5 );
Delay = hb_parni( 6 );
Disposal = hb_parni( 7 );
previm = (gdImagePtr)hb_parptr( 8 );
previm = hb_parGdImage( 8 );
/* Run function and return value */
iptr = gdImageGifAnimAddPtr(im, &size, LocalCM, LeftOfs, TopOfs, Delay, Disposal, previm);