/* * This file was generated automatically by ExtUtils::ParseXS version 2.18 from the * contents of GD.xs. Do not edit this file, edit GD.xs instead. * * ANY CHANGES MADE HERE WILL BE LOST! * */ #line 1 "GD.xs" #ifdef PERL_CAPI #define WIN32IO_IS_STDIO #endif #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include #include #include #include #include #include #ifdef FCGI #include #else #ifdef USE_SFIO #include #else #include #endif #include #endif /* Copyright 1995 - 1998, Lincoln D. Stein. See accompanying README file for usage restrictions */ #ifndef PERL_REVISION # ifndef __PATCHLEVEL_H_INCLUDED__ # include "patchlevel.h" # endif # ifndef PERL_REVISION # define PERL_REVISION (5) /* Replace: 1 */ # define PERL_VERSION PATCHLEVEL # define PERL_SUBVERSION SUBVERSION /* Replace PERL_PATCHLEVEL with PERL_VERSION */ /* Replace: 0 */ # endif #endif #if (PERL_VERSION == 5) && (PERL_SUBVERSION==3) #ifndef PL_na # define PL_na na #endif #ifndef SvPV_nolen # define SvPV_nolen(sv) SvPV(sv, PL_na) #endif #endif /* 5.00503 */ #ifdef WIN32 #define snprintf _snprintf #endif #ifndef START_MY_CXT static truecolor_default = 0; #endif static int not_here(char *s) { croak("%s not implemented on this architecture", s); return -1; } static double constant(char *name) { errno = 0; switch (*name) { case 'A': break; case 'B': break; case 'C': break; case 'D': break; case 'E': break; case 'F': break; case 'G': if (strEQ(name, "GD_CMP_IMAGE")) #ifdef GD_CMP_IMAGE return GD_CMP_IMAGE; #else goto not_there; #endif if (strEQ(name, "GD_CMP_NUM_COLORS")) #ifdef GD_CMP_NUM_COLORS return GD_CMP_NUM_COLORS; #else goto not_there; #endif if (strEQ(name, "GD_CMP_COLOR")) #ifdef GD_CMP_COLOR return GD_CMP_COLOR; #else goto not_there; #endif if (strEQ(name, "GD_CMP_SIZE_X")) #ifdef GD_CMP_SIZE_X return GD_CMP_SIZE_X; #else goto not_there; #endif if (strEQ(name, "GD_CMP_SIZE_Y")) #ifdef GD_CMP_SIZE_Y return GD_CMP_SIZE_Y; #else goto not_there; #endif if (strEQ(name, "GD_CMP_TRANSPARENT")) #ifdef GD_CMP_TRANSPARENT return GD_CMP_TRANSPARENT; #else goto not_there; #endif if (strEQ(name, "GD_CMP_BACKGROUND")) #ifdef GD_CMP_BACKGROUND return GD_CMP_BACKGROUND; #else goto not_there; #endif if (strEQ(name, "GD_CMP_INTERLACE")) #ifdef GD_CMP_INTERLACE return GD_CMP_INTERLACE; #else goto not_there; #endif if (strEQ(name, "GD_CMP_TRUECOLOR")) #ifdef GD_CMP_TRUECOLOR return GD_CMP_TRUECOLOR; #else goto not_there; #endif break; case 'H': break; case 'I': break; case 'J': break; case 'K': break; case 'L': break; case 'M': break; case 'N': break; case 'O': break; case 'P': break; case 'Q': break; case 'R': break; case 'S': break; case 'T': break; case 'U': break; case 'V': break; case 'W': break; case 'X': break; case 'Y': break; case 'Z': break; case 'a': break; case 'b': break; case 'c': break; case 'd': break; case 'e': break; case 'f': break; case 'g': if (strEQ(name, "gdBrushed")) #ifdef gdBrushed return gdBrushed; #else goto not_there; #endif if (strEQ(name, "gdDashSize")) #ifdef gdDashSize return gdDashSize; #else goto not_there; #endif if (strEQ(name, "gdMaxColors")) #ifdef gdMaxColors return gdMaxColors; #else goto not_there; #endif if (strEQ(name, "gdStyled")) #ifdef gdStyled return gdStyled; #else goto not_there; #endif if (strEQ(name, "gdStyledBrushed")) #ifdef gdStyledBrushed return gdStyledBrushed; #else goto not_there; #endif if (strEQ(name, "gdTiled")) #ifdef gdTiled return gdTiled; #else goto not_there; #endif if (strEQ(name, "gdTransparent")) #ifdef gdTransparent return gdTransparent; #else goto not_there; #endif if (strEQ(name,"gdAntiAliased")) #ifdef gdAntiAliased return gdAntiAliased; #else goto not_there; #endif if (strEQ(name,"gdAntiAliased")) #ifdef gdAntiAliased return gdAntiAliased; #else goto not_there; #endif if (strEQ(name,"gdArc")) #ifdef gdArc return gdArc; #else goto not_there; #endif if (strEQ(name,"gdPie")) #ifdef gdPie return gdPie; #else goto not_there; #endif if (strEQ(name,"gdChord")) #ifdef gdChord return gdChord; #else goto not_there; #endif if (strEQ(name,"gdNoFill")) #ifdef gdNoFill return gdNoFill; #else goto not_there; #endif if (strEQ(name,"gdEdged")) #ifdef gdEdged return gdEdged; #else goto not_there; #endif if (strEQ(name,"gdAlphaMax")) #ifdef gdAlphaMax return gdAlphaMax; #else goto not_there; #endif if (strEQ(name,"gdAlphaOpaque")) #ifdef gdAlphaOpaque return gdAlphaOpaque; #else goto not_there; #endif if (strEQ(name,"gdAlphaTransparent")) #ifdef gdAlphaTransparent return gdAlphaTransparent; #else goto not_there; #endif break; case 'h': break; case 'i': break; case 'j': break; case 'k': break; case 'l': break; case 'm': break; case 'n': break; case 'o': break; case 'p': break; case 'q': break; case 'r': break; case 's': break; case 't': break; case 'u': break; case 'v': break; case 'w': break; case 'x': break; case 'y': break; case 'z': break; } errno = EINVAL; return 0; not_there: errno = ENOENT; return 0; } typedef gdImagePtr GD__Image; typedef gdFontPtr GD__Font; typedef PerlIO * InputStream; #ifdef PERL_OBJECT # ifdef WIN32 #define GDIMAGECREATEFROMPNG(x) gdImageCreateFromPng((FILE*)x) #define GDIMAGECREATEFROMXBM(x) gdImageCreateFromXbm((FILE*)x) #define GDIMAGECREATEFROMJPEG(x) gdImageCreateFromJpeg((FILE*)x) #define GDIMAGECREATEFROMGIF(x) gdImageCreateFromGif((FILE*)x) #define GDIMAGECREATEFROMWBMP(x) gdImageCreateFromWBMP((FILE*)x) #define GDIMAGECREATEFROMGD(x) gdImageCreateFromGd((FILE*)x) #define GDIMAGECREATEFROMGD2(x) gdImageCreateFromGd2((FILE*)x) #define GDIMAGECREATEFROMGD2PART(x,a,b,c,d) gdImageCreateFromGd2Part((FILE*)x,a,b,c,d) # endif #else # ifdef USE_PERLIO #define GDIMAGECREATEFROMPNG(x) gdImageCreateFromPng(PerlIO_findFILE(x)) #define GDIMAGECREATEFROMXBM(x) gdImageCreateFromXbm(PerlIO_findFILE(x)) #define GDIMAGECREATEFROMJPEG(x) gdImageCreateFromJpeg(PerlIO_findFILE(x)) #define GDIMAGECREATEFROMGIF(x) gdImageCreateFromGif(PerlIO_findFILE(x)) #define GDIMAGECREATEFROMWBMP(x) gdImageCreateFromWBMP(PerlIO_findFILE(x)) #define GDIMAGECREATEFROMGD(x) gdImageCreateFromGd(PerlIO_findFILE(x)) #define GDIMAGECREATEFROMGD2(x) gdImageCreateFromGd2(PerlIO_findFILE(x)) #define GDIMAGECREATEFROMGD2PART(x,a,b,c,d) gdImageCreateFromGd2Part(PerlIO_findFILE(x),a,b,c,d) # else #define GDIMAGECREATEFROMPNG(x) gdImageCreateFromPng(x) #define GDIMAGECREATEFROMXBM(x) gdImageCreateFromXbm(x) #define GDIMAGECREATEFROMJPEG(x) gdImageCreateFromJpeg(x) #define GDIMAGECREATEFROMGIF(x) gdImageCreateFromGif(x) #define GDIMAGECREATEFROMWBMP(x) gdImageCreateFromWBMP(x) #define GDIMAGECREATEFROMGD(x) gdImageCreateFromGd(x) #define GDIMAGECREATEFROMGD2(x) gdImageCreateFromGd2(x) #define GDIMAGECREATEFROMGD2PART(x,a,b,c,d) gdImageCreateFromGd2Part(x,a,b,c,d) # endif #endif #define littleendian(a) \ (a[3]<<24)+(a[2]<<16)+(a[1]<<8)+a[0] /* definitions required to create images from in-memory buffers */ typedef struct bufIOCtx { gdIOCtx ctx; char* data; int length; int pos; } bufIOCtx; typedef struct bufIOCtx *bufIOCtxPtr; static int bufGetC (gdIOCtxPtr ctx) { bufIOCtxPtr bctx = (bufIOCtxPtr) ctx; if (bctx->pos >= bctx->length) return EOF; return bctx->data[bctx->pos]; } static int bufGetBuf (gdIOCtxPtr ctx, void* buf, int len) { bufIOCtxPtr bctx = (bufIOCtxPtr) ctx; int remain,rlen; remain = bctx->length - bctx->pos; if (remain >= len) { rlen = len; } else { if (remain <= 0) return EOF; rlen = remain; } memcpy(buf,(void*)(bctx->data + bctx->pos),rlen); bctx->pos += rlen; return rlen; } static int bufSeek (gdIOCtxPtr ctx, const int pos) { bufIOCtxPtr bctx = (bufIOCtxPtr) ctx; bctx->pos = pos; if (bctx->pos > bctx->length) bctx->pos = bctx->length; return TRUE; } static long bufTell (gdIOCtxPtr ctx) { bufIOCtxPtr bctx = (bufIOCtxPtr) ctx; return bctx->pos; } static void bufFree(gdIOCtxPtr ctx) { Safefree(ctx); } static gdIOCtx* newDynamicCtx (char* data, int length) { bufIOCtxPtr ctx; Newz(0,ctx,1,bufIOCtx); if (ctx == NULL) return NULL; ctx->data = data; ctx->pos = 0; ctx->length = length; ctx->ctx.getC = bufGetC; ctx->ctx.getBuf = bufGetBuf; ctx->ctx.seek = bufSeek; ctx->ctx.tell = bufTell; ctx->ctx.gd_free = bufFree; ctx->ctx.putC = NULL; ctx->ctx.putBuf = NULL; return (gdIOCtx*)ctx; } /* helper routines for image transformation */ static GD__Image gd_cloneDim(GD__Image src, int x, int y) { GD__Image dst; if (gdImageTrueColor(src)) { dst = (GD__Image) gdImageCreateTrueColor(x,y); } else { int i; dst = (GD__Image) gdImageCreatePalette(x,y); /* copy across the palette information */ for (i = 0; i < gdMaxColors; i++) { dst->red[i] = src->red[i]; dst->green[i] = src->green[i]; dst->blue[i] = src->blue[i]; dst->alpha[i] = src->alpha[i]; dst->open[i] = src->open[i]; } dst->colorsTotal = src->colorsTotal; dst->transparent = src->transparent; dst->interlace = src->interlace; dst->thick = src->thick; } return(dst); } void get_xformbounds(GD__Image src, int *x, int *y, int *x1, int *y1, int *x2, int *y2) { *x = gdImageSX(src); *y = gdImageSY(src); *x1 = *x - 1; *y1 = *y - 1; *x2 = *x / 2; *y2 = *y / 2; } /* helper macros for image transformations */ #define GDGetImagePixel(im,x,y) \ gdImageTrueColor(im) ? \ gdImageTrueColorPixel(im,x,y) : \ gdImagePalettePixel(im,x,y) #define GDSetImagePixel(im,x,y,p) \ gdImageTrueColor(im) ? \ (gdImageTrueColorPixel(im,x,y) = p) : \ (gdImagePalettePixel(im,x,y) = p) #define GDCopyImagePixel(dst,dx,dy,src,sx,sy) \ gdImageTrueColor(src) ? \ (gdImageTrueColorPixel(dst,dx,dy)=gdImageTrueColorPixel(src,sx,sy)) : \ (gdImagePalettePixel(dst,dx,dy)=gdImagePalettePixel(src,sx,sy)) /* Check the image format being returned */ void gd_chkimagefmt(GD__Image image, int truecolor) { if ((image != NULL) && !truecolor) { /* return a palette image */ if (gdImageTrueColor(image)) { gdImageTrueColorToPalette(image,1,gdMaxColors); } } } /* GLOBAL THREAD-SAFE DATA */ #ifdef START_MY_CXT #define MY_CXT_KEY "GD::_guts" XS_VERSION typedef struct { /* Current image true color default * 0 - create palette based images by default * 1 - create true color images by default */ int truecolor_default; } my_cxt_t; START_MY_CXT #endif #ifndef PERL_UNUSED_VAR # define PERL_UNUSED_VAR(var) if (0) var = var #endif #line 544 "GD.c" XS(XS_GD_constant); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD_constant) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::constant", "name"); PERL_UNUSED_VAR(cv); /* -W */ { char * name = (char *)SvPV_nolen(ST(0)); double RETVAL; dXSTARG; RETVAL = constant(name); XSprePUSH; PUSHn((double)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_trueColor); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_trueColor) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif PERL_UNUSED_VAR(cv); /* -W */ { char * packname; #line 554 "GD.xs" #ifdef START_MY_CXT dMY_CXT; int previous_value = MY_CXT.truecolor_default; #else int previous_value = truecolor_default; #endif #line 587 "GD.c" int RETVAL; dXSTARG; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 561 "GD.xs" { if (items > 1) #ifdef START_MY_CXT MY_CXT.truecolor_default = (int)SvIV(ST(1)); #else truecolor_default = (int)SvIV(ST(1)); #endif RETVAL = previous_value; } #line 606 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Image__new); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image__new) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif PERL_UNUSED_VAR(cv); /* -W */ { char * packname; int x; int y; #line 580 "GD.xs" #ifdef START_MY_CXT dMY_CXT; int truecolor = MY_CXT.truecolor_default; #else int truecolor = truecolor_default; #endif #line 633 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } if (items < 2) x = 64; else { x = (int)SvIV(ST(1)); } if (items < 3) y = 64; else { y = (int)SvIV(ST(2)); } #line 587 "GD.xs" { gdImagePtr theImage; if (items > 3) truecolor = (int)SvIV(ST(3)); if (truecolor) { theImage = (GD__Image) gdImageCreateTrueColor(x,y); } else { theImage = (GD__Image) gdImageCreate(x,y); } RETVAL = theImage; } #line 665 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } #ifdef HAVE_PNG #define XSubPPtmpAAAA 1 XS(XS_GD__Image__newFromPng); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image__newFromPng) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::_newFromPng", "packname=\"GD::Image\", filehandle, ..."); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; InputStream filehandle = IoIFP(sv_2io(ST(1))); #line 608 "GD.xs" #ifdef START_MY_CXT dMY_CXT; int truecolor = MY_CXT.truecolor_default; #else int truecolor = truecolor_default; #endif #line 697 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 615 "GD.xs" RETVAL = (GD__Image) GDIMAGECREATEFROMPNG(filehandle); if (items > 2) truecolor = (int)SvIV(ST(2)); gd_chkimagefmt(RETVAL, truecolor); #line 709 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_newFromPngData); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_newFromPngData) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::newFromPngData", "packname=\"GD::Image\", imageData, ..."); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; SV * imageData = ST(1); #line 627 "GD.xs" gdIOCtx* ctx; char* data; STRLEN len; #ifdef START_MY_CXT dMY_CXT; int truecolor = MY_CXT.truecolor_default; #else int truecolor = truecolor_default; #endif #line 741 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 637 "GD.xs" data = SvPV(imageData,len); ctx = newDynamicCtx(data,len); RETVAL = (GD__Image) gdImageCreateFromPngCtx(ctx); (ctx->gd_free)(ctx); if (items > 2) truecolor = (int)SvIV(ST(2)); gd_chkimagefmt(RETVAL, truecolor); #line 756 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } #endif XS(XS_GD__Image_newFromGdData); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_newFromGdData) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::newFromGdData", "packname=\"GD::Image\", imageData"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; SV * imageData = ST(1); #line 654 "GD.xs" char* data; STRLEN len; #line 782 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 657 "GD.xs" data = SvPV(imageData,len); RETVAL = (GD__Image) gdImageCreateFromGdPtr(len,(void*) data); #line 793 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_newFromGd2Data); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_newFromGd2Data) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::newFromGd2Data", "packname=\"GD::Image\", imageData"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; SV * imageData = ST(1); #line 668 "GD.xs" char* data; STRLEN len; #line 818 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 671 "GD.xs" data = SvPV(imageData,len); RETVAL = (GD__Image) gdImageCreateFromGd2Ptr(len,(void*) data); #line 829 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } #ifdef HAVE_JPEG #define XSubPPtmpAAAB 1 XS(XS_GD__Image_newFromJpegData); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_newFromJpegData) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::newFromJpegData", "packname=\"GD::Image\", imageData, ..."); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; SV * imageData = ST(1); #line 683 "GD.xs" gdIOCtx* ctx; char* data; STRLEN len; #ifdef START_MY_CXT dMY_CXT; int truecolor = MY_CXT.truecolor_default; #else int truecolor = truecolor_default; #endif #line 864 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 693 "GD.xs" data = SvPV(imageData,len); ctx = newDynamicCtx(data,len); RETVAL = (GD__Image) gdImageCreateFromJpegCtx(ctx); (ctx->gd_free)(ctx); if (items > 2) truecolor = (int)SvIV(ST(2)); gd_chkimagefmt(RETVAL, truecolor); #line 879 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } #endif XS(XS_GD__Image_newFromWBMPData); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_newFromWBMPData) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::newFromWBMPData", "packname=\"GD::Image\", imageData, ..."); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; SV * imageData = ST(1); #line 710 "GD.xs" gdIOCtx* ctx; char* data; STRLEN len; #ifdef START_MY_CXT dMY_CXT; int truecolor = MY_CXT.truecolor_default; #else int truecolor = truecolor_default; #endif #line 912 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 720 "GD.xs" data = SvPV(imageData,len); ctx = newDynamicCtx(data,len); RETVAL = (GD__Image) gdImageCreateFromWBMPCtx(ctx); (ctx->gd_free)(ctx); if (items > 2) truecolor = (int)SvIV(ST(2)); gd_chkimagefmt(RETVAL, truecolor); #line 927 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Image__newFromXbm); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image__newFromXbm) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::_newFromXbm", "packname=\"GD::Image\", filehandle"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; InputStream filehandle = IoIFP(sv_2io(ST(1))); GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 735 "GD.xs" RETVAL = GDIMAGECREATEFROMXBM(filehandle); #line 958 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Image__newFromGd); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image__newFromGd) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::_newFromGd", "packname=\"GD::Image\", filehandle"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; InputStream filehandle = IoIFP(sv_2io(ST(1))); GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 745 "GD.xs" RETVAL = GDIMAGECREATEFROMGD(filehandle); #line 989 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Image__newFromGd2); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image__newFromGd2) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::_newFromGd2", "packname=\"GD::Image\", filehandle"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; InputStream filehandle = IoIFP(sv_2io(ST(1))); GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 755 "GD.xs" RETVAL = GDIMAGECREATEFROMGD2(filehandle); #line 1020 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } #ifdef HAVE_JPEG #define XSubPPtmpAAAC 1 XS(XS_GD__Image__newFromJpeg); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image__newFromJpeg) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::_newFromJpeg", "packname=\"GD::Image\", filehandle, ..."); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; InputStream filehandle = IoIFP(sv_2io(ST(1))); #line 766 "GD.xs" #ifdef START_MY_CXT dMY_CXT; int truecolor = MY_CXT.truecolor_default; #else int truecolor = truecolor_default; #endif #line 1052 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 773 "GD.xs" RETVAL = GDIMAGECREATEFROMJPEG(filehandle); if (items > 2) truecolor = (int)SvIV(ST(2)); gd_chkimagefmt(RETVAL, truecolor); #line 1064 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } #endif XS(XS_GD__Image__newFromWBMP); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image__newFromWBMP) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::_newFromWBMP", "packname=\"GD::Image\", filehandle"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; InputStream filehandle = IoIFP(sv_2io(ST(1))); #line 787 "GD.xs" gdImagePtr img; SV* errormsg; #line 1090 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 790 "GD.xs" img = GDIMAGECREATEFROMWBMP(filehandle); if (img == NULL) { errormsg = perl_get_sv("@",0); if (errormsg != NULL) sv_setpv(errormsg,"libgd was not built with WBMP support\n"); XSRETURN_EMPTY; } RETVAL = img; #line 1107 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_newFromXpm); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_newFromXpm) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::newFromXpm", "packname=\"GD::Image\", filename"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; char * filename = (char *)SvPV_nolen(ST(1)); #line 807 "GD.xs" gdImagePtr img; SV* errormsg; #line 1132 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 810 "GD.xs" #ifdef HAVE_XPM img = (GD__Image) gdImageCreateFromXpm(filename); if (img == NULL) { errormsg = perl_get_sv("@",0); if (errormsg != NULL) sv_setpv(errormsg,"libgd was not built with xpm support\n"); XSRETURN_EMPTY; } RETVAL = img; #else errormsg = perl_get_sv("@",0); sv_setpv(errormsg,"libgd was not built with xpm support\n"); XSRETURN_EMPTY; #endif #line 1155 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Image__newFromGd2Part); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image__newFromGd2Part) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 5 || items > 6) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::_newFromGd2Part", "packname=\"GD::Image\", filehandle, srcX, srcY, width, height"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; InputStream filehandle = IoIFP(sv_2io(ST(1))); int srcX = (int)SvIV(ST(2)); int srcY = (int)SvIV(ST(3)); int width = (int)SvIV(ST(4)); int height = (int)SvIV(ST(5)); GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 837 "GD.xs" RETVAL = GDIMAGECREATEFROMGD2PART(filehandle,srcX,srcY,width,height); #line 1190 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } #ifdef HAVE_GIF #define XSubPPtmpAAAD 1 XS(XS_GD__Image__newFromGif); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image__newFromGif) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::_newFromGif", "packname=\"GD::Image\", filehandle"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; InputStream filehandle = IoIFP(sv_2io(ST(1))); #line 848 "GD.xs" #ifdef START_MY_CXT dMY_CXT; int truecolor = MY_CXT.truecolor_default; #else int truecolor = truecolor_default; #endif #line 1222 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 855 "GD.xs" RETVAL = GDIMAGECREATEFROMGIF(filehandle); #line 1232 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_newFromGifData); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_newFromGifData) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::newFromGifData", "packname=\"GD::Image\", imageData"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; SV * imageData = ST(1); #line 865 "GD.xs" gdIOCtx* ctx; char* data; STRLEN len; #ifdef START_MY_CXT dMY_CXT; int truecolor = MY_CXT.truecolor_default; #else int truecolor = truecolor_default; #endif #line 1264 "GD.c" GD__Image RETVAL; if (items < 1) packname = "GD::Image"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 875 "GD.xs" data = SvPV(imageData,len); ctx = newDynamicCtx(data,len); RETVAL = (GD__Image) gdImageCreateFromGifCtx(ctx); (ctx->gd_free)(ctx); #line 1277 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Image", (void*)RETVAL); } XSRETURN(1); } #endif XS(XS_GD__Image_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_DESTROY) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::DESTROY", "image"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; if (SvROK(ST(0))) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not a reference"); #line 889 "GD.xs" { gdImageDestroy(image); } #line 1310 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_STORABLE_freeze); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_STORABLE_freeze) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::STORABLE_freeze", "image, cloning"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int cloning = (int)SvIV(ST(1)); SV * RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 898 "GD.xs" { void* data; int size; if (cloning) XSRETURN_UNDEF; data = gdImageGd2Ptr(image,0,GD2_FMT_COMPRESSED,&size); RETVAL=newSVpvn((char*)data,size); gdFree(data); } #line 1348 "GD.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_GD__Image_STORABLE_thaw); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_STORABLE_thaw) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 3) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::STORABLE_thaw", "object, cloning, serialized"); PERL_UNUSED_VAR(cv); /* -W */ { SV* object = ST(0); int cloning = (int)SvIV(ST(1)); SV* serialized = ST(2); #line 915 "GD.xs" STRLEN length; void* data; GD__Image image; #line 1375 "GD.c" #line 919 "GD.xs" { if (cloning) XSRETURN_UNDEF; data = (void*) SvPV(serialized,length); image = gdImageCreateFromGd2Ptr(length,data); sv_setiv(SvRV(object),(int)image); } #line 1383 "GD.c" } XSRETURN_EMPTY; } #ifdef HAVE_PNG #define XSubPPtmpAAAE 1 XS(XS_GD__Image_png); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_png) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::png", "image, ..."); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; #line 932 "GD.xs" #line 1406 "GD.c" SV * RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 933 "GD.xs" { void* data; int size; int level; if (items > 1) { level = (int)SvIV(ST(1)); data = (void *) gdImagePngPtrEx(image,&size,level); } else { data = (void *) gdImagePngPtr(image,&size); } RETVAL = newSVpvn((char*) data,size); gdFree(data); } #line 1429 "GD.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } #endif #ifdef HAVE_JPEG #define XSubPPtmpAAAF 1 XS(XS_GD__Image_jpeg); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_jpeg) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::jpeg", "image, quality=-1"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int quality; #line 958 "GD.xs" SV* errormsg; #line 1457 "GD.c" SV * RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (items < 2) quality = -1; else { quality = (int)SvIV(ST(1)); } #line 960 "GD.xs" { void* data; int size; data = (void *) gdImageJpegPtr(image,&size,quality); if (data == NULL) { errormsg = perl_get_sv("@",0); if (errormsg != NULL) sv_setpv(errormsg,"libgd was not built with jpeg support\n"); XSRETURN_EMPTY; } RETVAL = newSVpvn((char*) data,size); gdFree(data); } #line 1486 "GD.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } #endif XS(XS_GD__Image_gifanimbegin); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_gifanimbegin) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 3) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::gifanimbegin", "image, globalcm=-1, loops=-1"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int globalcm; int loops; #line 985 "GD.xs" #line 1511 "GD.c" SV * RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (items < 2) globalcm = -1; else { globalcm = (int)SvIV(ST(1)); } if (items < 3) loops = -1; else { loops = (int)SvIV(ST(2)); } #line 986 "GD.xs" { void* data; int size; #ifdef HAVE_ANIMGIF data = (void *) gdImageGifAnimBeginPtr(image,&size,globalcm,loops); RETVAL = newSVpvn((char*) data,size); gdFree(data); #else die("libgd 2.0.33 or higher required for animated GIF support"); #endif } #line 1544 "GD.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_GD__Image_gifanimadd); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_gifanimadd) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 7) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::gifanimadd", "image, localcm=-1, leftofs=-1, topofs=-1, delay=-1, disposal=-1, previm=0"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int localcm; int leftofs; int topofs; int delay; int disposal; GD__Image previm; SV * RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (items < 2) localcm = -1; else { localcm = (int)SvIV(ST(1)); } if (items < 3) leftofs = -1; else { leftofs = (int)SvIV(ST(2)); } if (items < 4) topofs = -1; else { topofs = (int)SvIV(ST(3)); } if (items < 5) delay = -1; else { delay = (int)SvIV(ST(4)); } if (items < 6) disposal = -1; else { disposal = (int)SvIV(ST(5)); } if (items < 7) previm = 0; else { if (sv_derived_from(ST(6), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(6))); previm = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "previm is not of type GD::Image"); } #line 1011 "GD.xs" { void* data; int size; #ifdef HAVE_ANIMGIF data = (void *) gdImageGifAnimAddPtr(image,&size,localcm,leftofs,topofs,delay,disposal,previm); RETVAL = newSVpvn((char*) data,size); gdFree(data); #else die("libgd 2.0.33 or higher required for animated GIF support"); #endif } #line 1632 "GD.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_GD__Image_gifanimend); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_gifanimend) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::gifanimend", "image"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; SV * RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1030 "GD.xs" { void* data; int size; #ifdef HAVE_ANIMGIF data = (void *) gdImageGifAnimEndPtr(&size); RETVAL = newSVpvn((char*) data,size); gdFree(data); #else die("libgd 2.0.33 or higher required for animated GIF support"); #endif } #line 1673 "GD.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_GD__Image_wbmp); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_wbmp) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::wbmp", "image, fg"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int fg = (int)SvIV(ST(1)); #line 1050 "GD.xs" SV* errormsg; #line 1697 "GD.c" SV * RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1052 "GD.xs" { void* data; int size; data = (void *) gdImageWBMPPtr(image,&size,fg); if (data == NULL) { errormsg = perl_get_sv("@",0); if (errormsg != NULL) sv_setpv(errormsg,"libgd was not built with WBMP support\n"); XSRETURN_EMPTY; } RETVAL = newSVpvn((char*) data,size); gdFree(data); } #line 1720 "GD.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } #ifdef HAVE_GIF #define XSubPPtmpAAAG 1 XS(XS_GD__Image_gif); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_gif) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::gif", "image"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; #line 1074 "GD.xs" SV* errormsg; #line 1746 "GD.c" SV * RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1076 "GD.xs" { void* data; int size; data = (void *) gdImageGifPtr(image,&size); if (data == NULL) { errormsg = perl_get_sv("@",0); if (errormsg != NULL) sv_setpv(errormsg,"libgd was not built with gif support\n"); XSRETURN_EMPTY; } RETVAL = newSVpvn((char*) data,size); gdFree(data); } #line 1769 "GD.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } #endif XS(XS_GD__Image_gd); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_gd) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::gd", "image"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; SV * RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1099 "GD.xs" { void* data; int size; data = gdImageGdPtr(image,&size); RETVAL = newSVpvn((char*) data,size); gdFree(data); } #line 1807 "GD.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_GD__Image_gd2); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_gd2) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::gd2", "image"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; SV * RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1114 "GD.xs" { void* data; int size; data = gdImageGd2Ptr(image,0,GD2_FMT_COMPRESSED,&size); RETVAL = newSVpvn((char*) data,size); gdFree(data); } #line 1844 "GD.c" ST(0) = RETVAL; sv_2mortal(ST(0)); } XSRETURN(1); } XS(XS_GD__Image_transparent); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_transparent) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::transparent", "image, ..."); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1129 "GD.xs" { int color; if (items > 1) { color=(int)SvIV(ST(1)); gdImageColorTransparent(image,color); } RETVAL = gdImageGetTransparent(image); } #line 1883 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_getBounds); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_getBounds) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::getBounds", "image"); PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { GD__Image image; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1145 "GD.xs" { int sx,sy; sx = gdImageSX(image); sy = gdImageSY(image); EXTEND(sp,2); PUSHs(sv_2mortal(newSViv(sx))); PUSHs(sv_2mortal(newSViv(sy))); } #line 1921 "GD.c" PUTBACK; return; } } XS(XS_GD__Image_isTrueColor); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_isTrueColor) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::isTrueColor", "image"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1159 "GD.xs" { RETVAL=gdImageTrueColor(image); } #line 1954 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_trueColorToPalette); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_trueColorToPalette) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 3) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::trueColorToPalette", "image, dither=0, colors=gdMaxColors"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int dither; int colors; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (items < 2) dither = 0; else { dither = (int)SvIV(ST(1)); } if (items < 3) colors = gdMaxColors; else { colors = (int)SvIV(ST(2)); } #line 1172 "GD.xs" { gdImageTrueColorToPalette(image,dither,colors); } #line 1999 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_rgb); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_rgb) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::rgb", "image, color"); PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { GD__Image image; int color = (int)SvIV(ST(1)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1182 "GD.xs" { int r,g,b; r = gdImageRed(image,color); g = gdImageGreen(image,color); b = gdImageBlue(image,color); EXTEND(sp,3); PUSHs(sv_2mortal(newSViv(r))); PUSHs(sv_2mortal(newSViv(g))); PUSHs(sv_2mortal(newSViv(b))); } #line 2039 "GD.c" PUTBACK; return; } } XS(XS_GD__Image_boundsSafe); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_boundsSafe) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 3) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::boundsSafe", "image, x, y"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int x = (int)SvIV(ST(1)); int y = (int)SvIV(ST(2)); int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1200 "GD.xs" { RETVAL=gdImageBoundsSafe(image,x,y); if (RETVAL == 0) XSRETURN_UNDEF; } #line 2076 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_getPixel); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_getPixel) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 3) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::getPixel", "image, x, y"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int x = (int)SvIV(ST(1)); int y = (int)SvIV(ST(2)); int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1215 "GD.xs" { RETVAL=gdImageGetPixel(image,x,y); } #line 2111 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_setPixel); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_setPixel) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 4) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::setPixel", "image, x, y, color"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int x = (int)SvIV(ST(1)); int y = (int)SvIV(ST(2)); int color = (int)SvIV(ST(3)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1229 "GD.xs" { gdImageSetPixel(image,x,y,color); } #line 2145 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_copyRotate90); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_copyRotate90) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::copyRotate90", "src"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image src; GD__Image RETVAL; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); src = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "src is not of type GD::Image"); #line 1238 "GD.xs" { int x, y, x1, y1, x2, y2, i, j; GD__Image dst; get_xformbounds(src, &x, &y, &x1, &y1, &x2, &y2); dst = (GD__Image) gd_cloneDim(src, y, x); for (j=0;j 9) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::filledArc", "image, cx, cy, w, h, s, e, color, arc_style=0"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int cx = (int)SvIV(ST(1)); int cy = (int)SvIV(ST(2)); int w = (int)SvIV(ST(3)); int h = (int)SvIV(ST(4)); int s = (int)SvIV(ST(5)); int e = (int)SvIV(ST(6)); int color = (int)SvIV(ST(7)); int arc_style; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (items < 9) arc_style = 0; else { arc_style = (int)SvIV(ST(8)); } #line 1725 "GD.xs" { gdImageFilledArc(image,cx,cy,w,h,s,e,color,arc_style); } #line 3102 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_fillToBorder); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_fillToBorder) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 5) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::fillToBorder", "image, x, y, border, color"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int x = (int)SvIV(ST(1)); int y = (int)SvIV(ST(2)); int border = (int)SvIV(ST(3)); int color = (int)SvIV(ST(4)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1738 "GD.xs" { gdImageFillToBorder(image,x,y,border,color); } #line 3136 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_fill); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_fill) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 4) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::fill", "image, x, y, color"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int x = (int)SvIV(ST(1)); int y = (int)SvIV(ST(2)); int color = (int)SvIV(ST(3)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1750 "GD.xs" { gdImageFill(image,x,y,color); } #line 3169 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_setBrush); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_setBrush) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::setBrush", "image, brush"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; GD__Image brush; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(1))); brush = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "brush is not of type GD::Image"); #line 1760 "GD.xs" { gdImageSetBrush(image,brush); } #line 3207 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_setTile); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_setTile) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::setTile", "image, tile"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; GD__Image tile; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(1))); tile = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "tile is not of type GD::Image"); #line 1770 "GD.xs" { gdImageSetTile(image,tile); } #line 3245 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_setThickness); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_setThickness) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::setThickness", "image, thickness"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int thickness = (int)SvIV(ST(1)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1780 "GD.xs" { gdImageSetThickness(image,thickness); } #line 3276 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_setStyle); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_setStyle) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::setStyle", "image, ..."); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1790 "GD.xs" { int *style; int i; if (items < 2) return; style = (int*) safemalloc(sizeof(int)*(items-1)); if (style == NULL) croak("malloc returned NULL at setStyle().\n"); for(i=1;i 1) { if (SvOK(ST(1))) gdImageInterlace(image,1); else gdImageInterlace(image,0); } RETVAL = gdImageGetInterlaced(image); } #line 3719 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_compare); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_compare) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::compare", "image1, image2"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image1; GD__Image image2; int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image1 = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image1 is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(1))); image2 = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image2 is not of type GD::Image"); #line 1973 "GD.xs" { RETVAL = gdImageCompare(image1,image2); } #line 3760 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_colorDeallocate); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_colorDeallocate) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::colorDeallocate", "image, color"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int color = (int)SvIV(ST(1)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 1985 "GD.xs" { gdImageColorDeallocate(image,color); } #line 3792 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_copy); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_copy) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 8) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::copy", "destination, source, dstX, dstY, srcX, srcY, w, h"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image destination; GD__Image source; int dstX = (int)SvIV(ST(2)); int dstY = (int)SvIV(ST(3)); int srcX = (int)SvIV(ST(4)); int srcY = (int)SvIV(ST(5)); int w = (int)SvIV(ST(6)); int h = (int)SvIV(ST(7)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); destination = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "destination is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(1))); source = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "source is not of type GD::Image"); #line 2001 "GD.xs" { gdImageCopy(destination,source,dstX,dstY,srcX,srcY,w,h); } #line 3836 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_copyResized); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_copyResized) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 10) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::copyResized", "destination, source, dstX, dstY, srcX, srcY, destW, destH, srcW, srcH"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image destination; GD__Image source; int dstX = (int)SvIV(ST(2)); int dstY = (int)SvIV(ST(3)); int srcX = (int)SvIV(ST(4)); int srcY = (int)SvIV(ST(5)); int destW = (int)SvIV(ST(6)); int destH = (int)SvIV(ST(7)); int srcW = (int)SvIV(ST(8)); int srcH = (int)SvIV(ST(9)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); destination = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "destination is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(1))); source = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "source is not of type GD::Image"); #line 2019 "GD.xs" { gdImageCopyResized(destination,source,dstX,dstY,srcX,srcY,destW,destH,srcW,srcH); } #line 3882 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_copyResampled); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_copyResampled) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 10) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::copyResampled", "destination, source, dstX, dstY, srcX, srcY, destW, destH, srcW, srcH"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image destination; GD__Image source; int dstX = (int)SvIV(ST(2)); int dstY = (int)SvIV(ST(3)); int srcX = (int)SvIV(ST(4)); int srcY = (int)SvIV(ST(5)); int destW = (int)SvIV(ST(6)); int destH = (int)SvIV(ST(7)); int srcW = (int)SvIV(ST(8)); int srcH = (int)SvIV(ST(9)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); destination = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "destination is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(1))); source = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "source is not of type GD::Image"); #line 2037 "GD.xs" { gdImageCopyResampled(destination,source,dstX,dstY,srcX,srcY,destW,destH,srcW,srcH); } #line 3928 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_copyMerge); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_copyMerge) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 9) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::copyMerge", "destination, source, dstX, dstY, srcX, srcY, w, h, pct"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image destination; GD__Image source; int dstX = (int)SvIV(ST(2)); int dstY = (int)SvIV(ST(3)); int srcX = (int)SvIV(ST(4)); int srcY = (int)SvIV(ST(5)); int w = (int)SvIV(ST(6)); int h = (int)SvIV(ST(7)); int pct = (int)SvIV(ST(8)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); destination = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "destination is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(1))); source = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "source is not of type GD::Image"); #line 2054 "GD.xs" { gdImageCopyMerge(destination,source,dstX,dstY,srcX,srcY,w,h,pct); } #line 3973 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_copyMergeGray); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_copyMergeGray) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 9) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::copyMergeGray", "destination, source, dstX, dstY, srcX, srcY, w, h, pct"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image destination; GD__Image source; int dstX = (int)SvIV(ST(2)); int dstY = (int)SvIV(ST(3)); int srcX = (int)SvIV(ST(4)); int srcY = (int)SvIV(ST(5)); int w = (int)SvIV(ST(6)); int h = (int)SvIV(ST(7)); int pct = (int)SvIV(ST(8)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); destination = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "destination is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(1))); source = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "source is not of type GD::Image"); #line 2071 "GD.xs" { gdImageCopyMergeGray(destination,source,dstX,dstY,srcX,srcY,w,h,pct); } #line 4018 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_paletteCopy); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_paletteCopy) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::paletteCopy", "destination, source"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image destination; GD__Image source; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); destination = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "destination is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(1))); source = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "source is not of type GD::Image"); #line 2081 "GD.xs" { gdImagePaletteCopy(destination,source); } #line 4056 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_char); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_char) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 6) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::char", "image, font, x, y, c, color"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; GD__Font font; int x = (int)SvIV(ST(2)); int y = (int)SvIV(ST(3)); char * c = (char *)SvPV_nolen(ST(4)); int color = (int)SvIV(ST(5)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Font")) { IV tmp = SvIV((SV*)SvRV(ST(1))); font = INT2PTR(GD__Font,tmp); } else Perl_croak(aTHX_ "font is not of type GD::Font"); #line 2095 "GD.xs" { gdImageChar(image,font,x,y,*c,color); } #line 4098 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_charUp); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_charUp) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 6) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::charUp", "image, font, x, y, c, color"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; GD__Font font; int x = (int)SvIV(ST(2)); int y = (int)SvIV(ST(3)); char * c = (char *)SvPV_nolen(ST(4)); int color = (int)SvIV(ST(5)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Font")) { IV tmp = SvIV((SV*)SvRV(ST(1))); font = INT2PTR(GD__Font,tmp); } else Perl_croak(aTHX_ "font is not of type GD::Font"); #line 2109 "GD.xs" { gdImageCharUp(image,font,x,y,*c,color); } #line 4140 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_string); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_string) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 6) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::string", "image, font, x, y, s, color"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; GD__Font font; int x = (int)SvIV(ST(2)); int y = (int)SvIV(ST(3)); char * s = (char *)SvPV_nolen(ST(4)); int color = (int)SvIV(ST(5)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Font")) { IV tmp = SvIV((SV*)SvRV(ST(1))); font = INT2PTR(GD__Font,tmp); } else Perl_croak(aTHX_ "font is not of type GD::Font"); #line 2123 "GD.xs" { gdImageString(image,font,x,y,(unsigned char*)s,color); } #line 4182 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_stringUp); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_stringUp) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 6) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::stringUp", "image, font, x, y, s, color"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; GD__Font font; int x = (int)SvIV(ST(2)); int y = (int)SvIV(ST(3)); char * s = (char *)SvPV_nolen(ST(4)); int color = (int)SvIV(ST(5)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (sv_derived_from(ST(1), "GD::Font")) { IV tmp = SvIV((SV*)SvRV(ST(1))); font = INT2PTR(GD__Font,tmp); } else Perl_croak(aTHX_ "font is not of type GD::Font"); #line 2137 "GD.xs" { gdImageStringUp(image,font,x,y,(unsigned char*)s,color); } #line 4224 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_stringFT); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_stringFT) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 8) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::stringFT", "image, fgcolor, fontname, ptsize, angle, x, y, string, ..."); PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { SV * image = ST(0); int fgcolor = (int)SvIV(ST(1)); char * fontname = (char *)SvPV_nolen(ST(2)); double ptsize = (double)SvNV(ST(3)); double angle = (double)SvNV(ST(4)); int x = (int)SvIV(ST(5)); int y = (int)SvIV(ST(6)); char * string = (char *)SvPV_nolen(ST(7)); #line 2153 "GD.xs" gdImagePtr img; int brect[8]; char *err; char *a; SV* errormsg; HV* hash; SV** value; int i; int hdpi; int vdpi; gdFTStringExtra strex; #line 4264 "GD.c" #line 2165 "GD.xs" { #ifndef HAVE_FT errormsg = perl_get_sv("@",0); sv_setpv(errormsg,"libgd was not built with FreeType font support\n"); XSRETURN_EMPTY; #endif if (sv_isobject(image) && sv_derived_from(image, "GD::Image")) { IV tmp = SvIV((SV*)SvRV(image)); img = (gdImagePtr) tmp; } else { img = NULL; } if (items == 9) { /* hashref options at end */ if (SvTYPE(SvRV(ST(8))) != SVt_PVHV) croak ("Usage: $gd->stringFT(image,fgcolor,fontname,ptsize,angle,x,y,string,[{options}])"); hash = (HV*)SvRV(ST(8)); strex.flags = 0; strex.linespacing = 0; strex.charmap = 0; if (value = hv_fetch(hash,"linespacing",strlen("linespacing"),0)) { strex.flags |= gdFTEX_LINESPACE; strex.linespacing = SvNV(*value); } if (value = hv_fetch(hash,"charmap",strlen("charmap"),0)) { strex.flags |= gdFTEX_CHARMAP; if (strEQ(SvPV_nolen(*value),"Unicode")) strex.charmap = gdFTEX_Unicode; else if (strEQ(SvPV_nolen(*value),"Shift_JIS")) strex.charmap = gdFTEX_Shift_JIS; else if (strEQ(SvPV_nolen(*value),"Big5")) strex.charmap = gdFTEX_Big5; else croak("Unknown charmap %s",SvPV_nolen(*value)); } #ifdef VERSION_33 if (value = hv_fetch(hash,"resolution",strlen("resolution"),0)) { strex.flags |= gdFTEX_RESOLUTION; a = SvPV_nolen(*value); if (sscanf(a,"%d,%d",&hdpi,&vdpi) == 2) { strex.hdpi = hdpi; strex.vdpi = vdpi; } } if (value = hv_fetch(hash,"kerning",strlen("kerning"),0)) { if (!SvTRUE(*value)) { strex.flags |= gdFTEX_DISABLE_KERNING; } else strex.flags &= gdFTEX_DISABLE_KERNING; } #endif err = gdImageStringFTEx(img,brect,fgcolor,fontname,ptsize,angle,x,y,string,&strex); } else { err = gdImageStringFT(img,brect,fgcolor,fontname,ptsize,angle,x,y,string); } if (err) { errormsg = perl_get_sv("@",0); if (errormsg != NULL) sv_setpv(errormsg,err); XSRETURN_EMPTY; } else { EXTEND(sp,8); for (i=0;i<8;i++) { PUSHs(sv_2mortal(newSViv(brect[i]))); } } } #line 4337 "GD.c" PUTBACK; return; } } XS(XS_GD__Image_stringFTCircle); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_stringFTCircle) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 11) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::stringFTCircle", "image, cx, cy, radius, textRadius, fillPortion, fontname, points, top, bottom, fgcolor"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int cx = (int)SvIV(ST(1)); int cy = (int)SvIV(ST(2)); double radius = (double)SvNV(ST(3)); double textRadius = (double)SvNV(ST(4)); double fillPortion = (double)SvNV(ST(5)); char * fontname = (char *)SvPV_nolen(ST(6)); double points = (double)SvNV(ST(7)); char * top = (char *)SvPV_nolen(ST(8)); char * bottom = (char *)SvPV_nolen(ST(9)); int fgcolor = (int)SvIV(ST(10)); #line 2252 "GD.xs" char* err; SV* errormsg; #line 4370 "GD.c" int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 2255 "GD.xs" { #ifdef HAVE_FT #ifdef HAVE_FTCIRCLE fprintf(stderr,"cx=%d,cy=%d,radius=%f,textRadius=%f,fillPortion=%f,fontname=%s,points=%f,top=%s,bottom=%s,fgcolor=%d", cx,cy,radius,textRadius, fillPortion,fontname,points,top,bottom,fgcolor); err = gdImageStringFTCircle(image,cx,cy,radius,textRadius, fillPortion,fontname,points,top,bottom,fgcolor); if (err) { errormsg = perl_get_sv("@",0); if (errormsg != NULL) sv_setpv(errormsg,err); XSRETURN_EMPTY; } else { RETVAL = 1; } #else errormsg = perl_get_sv("@",0); sv_setpv(errormsg,"libgd must be version 2.0.33 or higher to use this function\n"); XSRETURN_EMPTY; #endif #else errormsg = perl_get_sv("@",0); sv_setpv(errormsg,"libgd was not built with FreeType support\n"); XSRETURN_EMPTY; #endif } #line 4408 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_useFontConfig); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_useFontConfig) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::useFontConfig", "image, flag"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int flag = (int)SvIV(ST(1)); #line 2291 "GD.xs" SV* errormsg; #line 4431 "GD.c" int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 2293 "GD.xs" { #ifdef HAVE_FONTCONFIG RETVAL = gdFTUseFontConfig(flag); #else errormsg = perl_get_sv("@",0); sv_setpv(errormsg,"libgd was not built with fontconfig support\n"); XSRETURN_EMPTY; #endif } #line 4451 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Image_alphaBlending); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_alphaBlending) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::alphaBlending", "image, blending"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int blending = (int)SvIV(ST(1)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 2311 "GD.xs" { gdImageAlphaBlending(image,blending); } #line 4483 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_saveAlpha); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_saveAlpha) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::saveAlpha", "image, saveAlphaArg"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int saveAlphaArg = (int)SvIV(ST(1)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 2321 "GD.xs" { gdImageSaveAlpha(image,saveAlphaArg) ; } #line 4514 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_clip); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_clip) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::clip", "image, ..."); PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(ax); /* -Wall */ SP -= items; { GD__Image image; #line 2330 "GD.xs" int coords[4]; int i; #line 4538 "GD.c" if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 2333 "GD.xs" { if (items == 5) { for (i=0;i<4;i++) coords[i] = (int)SvIV(ST(i+1)); gdImageSetClip(image,coords[0],coords[1],coords[2],coords[3]); } else if (items > 1) /* something weird */ croak("Usage: $gd->clip() or $gd->clip(x1,x2,y1,y2)"); gdImageGetClip(image,&coords[0],&coords[1],&coords[2],&coords[3]); EXTEND(sp,4); for (i=0;i<4;i++) PUSHs(sv_2mortal(newSViv(coords[i]))); } #line 4561 "GD.c" PUTBACK; return; } } XS(XS_GD__Image_setAntiAliased); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_setAntiAliased) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::setAntiAliased", "image, color"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int color = (int)SvIV(ST(1)); if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); #line 2354 "GD.xs" { gdImageSetAntiAliased(image,color); } #line 4593 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Image_setAntiAliasedDontBlend); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Image_setAntiAliasedDontBlend) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 2 || items > 3) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Image::setAntiAliasedDontBlend", "image, color, flag=1"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Image image; int color = (int)SvIV(ST(1)); int flag; if (sv_derived_from(ST(0), "GD::Image")) { IV tmp = SvIV((SV*)SvRV(ST(0))); image = INT2PTR(GD__Image,tmp); } else Perl_croak(aTHX_ "image is not of type GD::Image"); if (items < 3) flag = 1; else { flag = (int)SvIV(ST(2)); } #line 2366 "GD.xs" { gdImageSetAntiAliasedDontBlend(image,color,flag); } #line 4631 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Font_load); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_load) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 1 || items > 2) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::load", "packname=\"GD::Font\", fontpath"); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; char * fontpath = (char *)SvPV_nolen(ST(1)); #line 2379 "GD.xs" int fontfile; int datasize; SV* errormsg; char errstr[256]; gdFontPtr font; unsigned char word[4]; char* fontdata; #line 4659 "GD.c" GD__Font RETVAL; if (items < 1) packname = "GD::Font"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 2387 "GD.xs" { fontfile = open(fontpath,O_RDONLY); if (fontfile < 0) { errormsg = perl_get_sv("@",0); snprintf(errstr,256,"could not open font file %s: %s",fontpath,strerror(errno)); sv_setpv(errormsg,errstr); XSRETURN_EMPTY; } font = (gdFontPtr)safemalloc(sizeof(gdFont)); if (font == NULL) croak("safemalloc() returned NULL while trying to allocate font struct.\n"); /* read header from font - note that the file is assumed to be littleendian*/ if (read(fontfile,word,4) < 4) croak(strerror(errno)); font->nchars = littleendian(word); if (read(fontfile,word,4) < 4) croak(strerror(errno)); font->offset = littleendian(word); if (read(fontfile,word,4) < 4) croak(strerror(errno)); font->w = littleendian(word); if (read(fontfile,word,4) < 4) croak(strerror(errno)); font->h = littleendian(word); datasize = font->nchars * font->w * font->h; fontdata = (char*)safemalloc(datasize); if (fontdata == NULL) croak("safemalloc() returned NULL while trying to allocate font bitmap.\n"); if (read(fontfile,fontdata,datasize) < datasize) croak(strerror(errno)); font->data = fontdata; close(fontfile); /* please don't leak file descriptors! */ RETVAL = font; } #line 4709 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Font", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Font_DESTROY); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_DESTROY) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::DESTROY", "self"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Font self; if (SvROK(ST(0))) { IV tmp = SvIV((SV*)SvRV(ST(0))); self = INT2PTR(GD__Font,tmp); } else Perl_croak(aTHX_ "self is not a reference"); #line 2436 "GD.xs" { if (self == gdFontGetSmall() || self == gdFontGetLarge() || self == gdFontGetGiant() || self == gdFontGetMediumBold() || self == gdFontGetTiny() ) XSRETURN_EMPTY; safefree(self->data); safefree(self); } #line 4748 "GD.c" } XSRETURN_EMPTY; } XS(XS_GD__Font_Small); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_Small) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 0 || items > 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::Small", "packname=\"GD::Font\""); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; GD__Font RETVAL; if (items < 1) packname = "GD::Font"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 2452 "GD.xs" { RETVAL = gdFontGetSmall(); } #line 4778 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Font", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Font_Large); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_Large) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 0 || items > 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::Large", "packname=\"GD::Font\""); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; GD__Font RETVAL; if (items < 1) packname = "GD::Font"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 2463 "GD.xs" { RETVAL = gdFontGetLarge(); } #line 4810 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Font", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Font_Giant); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_Giant) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 0 || items > 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::Giant", "packname=\"GD::Font\""); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; GD__Font RETVAL; if (items < 1) packname = "GD::Font"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 2474 "GD.xs" { RETVAL = gdFontGetGiant(); } #line 4842 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Font", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Font_MediumBold); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_MediumBold) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 0 || items > 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::MediumBold", "packname=\"GD::Font\""); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; GD__Font RETVAL; if (items < 1) packname = "GD::Font"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 2485 "GD.xs" { RETVAL = gdFontGetMediumBold(); } #line 4874 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Font", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Font_Tiny); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_Tiny) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items < 0 || items > 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::Tiny", "packname=\"GD::Font\""); PERL_UNUSED_VAR(cv); /* -W */ { char * packname; GD__Font RETVAL; if (items < 1) packname = "GD::Font"; else { packname = (char *)SvPV_nolen(ST(0)); } #line 2496 "GD.xs" { RETVAL = gdFontGetTiny(); } #line 4906 "GD.c" ST(0) = sv_newmortal(); sv_setref_pv(ST(0), "GD::Font", (void*)RETVAL); } XSRETURN(1); } XS(XS_GD__Font_nchars); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_nchars) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::nchars", "font"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Font font; int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Font")) { IV tmp = SvIV((SV*)SvRV(ST(0))); font = INT2PTR(GD__Font,tmp); } else Perl_croak(aTHX_ "font is not of type GD::Font"); #line 2507 "GD.xs" { RETVAL = font->nchars; } #line 4940 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Font_offset); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_offset) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::offset", "font"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Font font; int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Font")) { IV tmp = SvIV((SV*)SvRV(ST(0))); font = INT2PTR(GD__Font,tmp); } else Perl_croak(aTHX_ "font is not of type GD::Font"); #line 2518 "GD.xs" { RETVAL = font->offset; } #line 4973 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Font_width); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_width) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::width", "font"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Font font; int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Font")) { IV tmp = SvIV((SV*)SvRV(ST(0))); font = INT2PTR(GD__Font,tmp); } else Perl_croak(aTHX_ "font is not of type GD::Font"); #line 2529 "GD.xs" { RETVAL = font->w; } #line 5006 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } XS(XS_GD__Font_height); /* prototype to pass -Wmissing-prototypes */ XS(XS_GD__Font_height) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif if (items != 1) Perl_croak(aTHX_ "Usage: %s(%s)", "GD::Font::height", "font"); PERL_UNUSED_VAR(cv); /* -W */ { GD__Font font; int RETVAL; dXSTARG; if (sv_derived_from(ST(0), "GD::Font")) { IV tmp = SvIV((SV*)SvRV(ST(0))); font = INT2PTR(GD__Font,tmp); } else Perl_croak(aTHX_ "font is not of type GD::Font"); #line 2540 "GD.xs" { RETVAL = font->h; } #line 5039 "GD.c" XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } #ifdef __cplusplus extern "C" #endif XS(boot_GD); /* prototype to pass -Wmissing-prototypes */ XS(boot_GD) { #ifdef dVAR dVAR; dXSARGS; #else dXSARGS; #endif char* file = __FILE__; PERL_UNUSED_VAR(cv); /* -W */ PERL_UNUSED_VAR(items); /* -W */ XS_VERSION_BOOTCHECK ; newXS("GD::constant", XS_GD_constant, file); newXSproto("GD::Image::trueColor", XS_GD__Image_trueColor, file, "$$"); newXSproto("GD::Image::_new", XS_GD__Image__new, file, "$;$$$"); #if XSubPPtmpAAAA newXSproto("GD::Image::_newFromPng", XS_GD__Image__newFromPng, file, "$$;$"); newXSproto("GD::Image::newFromPngData", XS_GD__Image_newFromPngData, file, "$$;$"); #endif newXSproto("GD::Image::newFromGdData", XS_GD__Image_newFromGdData, file, "$$"); newXSproto("GD::Image::newFromGd2Data", XS_GD__Image_newFromGd2Data, file, "$$"); #if XSubPPtmpAAAB newXSproto("GD::Image::newFromJpegData", XS_GD__Image_newFromJpegData, file, "$$;$"); #endif newXSproto("GD::Image::newFromWBMPData", XS_GD__Image_newFromWBMPData, file, "$$;$"); newXSproto("GD::Image::_newFromXbm", XS_GD__Image__newFromXbm, file, "$$"); newXSproto("GD::Image::_newFromGd", XS_GD__Image__newFromGd, file, "$$"); newXSproto("GD::Image::_newFromGd2", XS_GD__Image__newFromGd2, file, "$$"); #if XSubPPtmpAAAC newXSproto("GD::Image::_newFromJpeg", XS_GD__Image__newFromJpeg, file, "$$;$"); #endif newXSproto("GD::Image::_newFromWBMP", XS_GD__Image__newFromWBMP, file, "$$"); newXSproto("GD::Image::newFromXpm", XS_GD__Image_newFromXpm, file, "$$"); newXSproto("GD::Image::_newFromGd2Part", XS_GD__Image__newFromGd2Part, file, "$$$$$$"); #if XSubPPtmpAAAD newXSproto("GD::Image::_newFromGif", XS_GD__Image__newFromGif, file, "$$;$"); newXSproto("GD::Image::newFromGifData", XS_GD__Image_newFromGifData, file, "$$;$"); #endif newXSproto("GD::Image::DESTROY", XS_GD__Image_DESTROY, file, "$"); newXSproto("GD::Image::STORABLE_freeze", XS_GD__Image_STORABLE_freeze, file, "$$"); newXS("GD::Image::STORABLE_thaw", XS_GD__Image_STORABLE_thaw, file); #if XSubPPtmpAAAE newXSproto("GD::Image::png", XS_GD__Image_png, file, "$;$"); #endif #if XSubPPtmpAAAF newXSproto("GD::Image::jpeg", XS_GD__Image_jpeg, file, "$"); #endif newXSproto("GD::Image::gifanimbegin", XS_GD__Image_gifanimbegin, file, "$$$"); newXSproto("GD::Image::gifanimadd", XS_GD__Image_gifanimadd, file, "$$$$$$$"); newXSproto("GD::Image::gifanimend", XS_GD__Image_gifanimend, file, "$"); newXSproto("GD::Image::wbmp", XS_GD__Image_wbmp, file, "$"); #if XSubPPtmpAAAG newXSproto("GD::Image::gif", XS_GD__Image_gif, file, "$"); #endif newXSproto("GD::Image::gd", XS_GD__Image_gd, file, "$"); newXSproto("GD::Image::gd2", XS_GD__Image_gd2, file, "$"); newXSproto("GD::Image::transparent", XS_GD__Image_transparent, file, "$;$"); newXSproto("GD::Image::getBounds", XS_GD__Image_getBounds, file, "$"); newXSproto("GD::Image::isTrueColor", XS_GD__Image_isTrueColor, file, "$"); newXSproto("GD::Image::trueColorToPalette", XS_GD__Image_trueColorToPalette, file, "$;$$"); newXSproto("GD::Image::rgb", XS_GD__Image_rgb, file, "$$"); newXSproto("GD::Image::boundsSafe", XS_GD__Image_boundsSafe, file, "$$$"); newXSproto("GD::Image::getPixel", XS_GD__Image_getPixel, file, "$$$"); newXSproto("GD::Image::setPixel", XS_GD__Image_setPixel, file, "$$$$"); newXSproto("GD::Image::copyRotate90", XS_GD__Image_copyRotate90, file, "$"); newXSproto("GD::Image::copyRotate180", XS_GD__Image_copyRotate180, file, "$"); newXSproto("GD::Image::copyRotate270", XS_GD__Image_copyRotate270, file, "$"); newXSproto("GD::Image::copyFlipHorizontal", XS_GD__Image_copyFlipHorizontal, file, "$"); newXSproto("GD::Image::copyFlipVertical", XS_GD__Image_copyFlipVertical, file, "$"); newXSproto("GD::Image::copyTranspose", XS_GD__Image_copyTranspose, file, "$"); newXSproto("GD::Image::copyReverseTranspose", XS_GD__Image_copyReverseTranspose, file, "$"); newXSproto("GD::Image::rotate180", XS_GD__Image_rotate180, file, "$"); newXSproto("GD::Image::copyRotated", XS_GD__Image_copyRotated, file, "$$$$$$$$$"); newXSproto("GD::Image::flipHorizontal", XS_GD__Image_flipHorizontal, file, "$"); newXSproto("GD::Image::flipVertical", XS_GD__Image_flipVertical, file, "$"); newXSproto("GD::Image::line", XS_GD__Image_line, file, "$$$$$$"); newXSproto("GD::Image::dashedLine", XS_GD__Image_dashedLine, file, "$$$$$$"); newXSproto("GD::Image::openPolygon", XS_GD__Image_openPolygon, file, "$$$"); newXSproto("GD::Image::unclosedPolygon", XS_GD__Image_unclosedPolygon, file, "$$$"); newXSproto("GD::Image::filledPolygon", XS_GD__Image_filledPolygon, file, "$$$"); newXSproto("GD::Image::rectangle", XS_GD__Image_rectangle, file, "$$$$$$"); newXSproto("GD::Image::filledRectangle", XS_GD__Image_filledRectangle, file, "$$$$$$"); newXSproto("GD::Image::filledEllipse", XS_GD__Image_filledEllipse, file, "$$$$$$"); newXSproto("GD::Image::arc", XS_GD__Image_arc, file, "$$$$$$$$"); newXSproto("GD::Image::filledArc", XS_GD__Image_filledArc, file, "$$$$$$$$$"); newXSproto("GD::Image::fillToBorder", XS_GD__Image_fillToBorder, file, "$$$$$"); newXSproto("GD::Image::fill", XS_GD__Image_fill, file, "$$$$"); newXSproto("GD::Image::setBrush", XS_GD__Image_setBrush, file, "$$"); newXSproto("GD::Image::setTile", XS_GD__Image_setTile, file, "$$"); newXSproto("GD::Image::setThickness", XS_GD__Image_setThickness, file, "$$"); newXSproto("GD::Image::setStyle", XS_GD__Image_setStyle, file, "$;$"); newXSproto("GD::Image::colorAllocate", XS_GD__Image_colorAllocate, file, "$$$$"); newXSproto("GD::Image::colorAllocateAlpha", XS_GD__Image_colorAllocateAlpha, file, "$$$$"); newXSproto("GD::Image::colorClosest", XS_GD__Image_colorClosest, file, "$$$$"); newXSproto("GD::Image::colorClosestAlpha", XS_GD__Image_colorClosestAlpha, file, "$$$$"); newXSproto("GD::Image::colorClosestHWB", XS_GD__Image_colorClosestHWB, file, "$$$$"); newXSproto("GD::Image::colorExact", XS_GD__Image_colorExact, file, "$$$$"); newXSproto("GD::Image::colorExactAlpha", XS_GD__Image_colorExactAlpha, file, "$$$$"); newXSproto("GD::Image::colorResolve", XS_GD__Image_colorResolve, file, "$$$$"); newXSproto("GD::Image::colorResolveAlpha", XS_GD__Image_colorResolveAlpha, file, "$$$$"); newXSproto("GD::Image::colorsTotal", XS_GD__Image_colorsTotal, file, "$"); newXSproto("GD::Image::interlaced", XS_GD__Image_interlaced, file, "$;$"); newXSproto("GD::Image::compare", XS_GD__Image_compare, file, "$$"); newXSproto("GD::Image::colorDeallocate", XS_GD__Image_colorDeallocate, file, "$$"); newXSproto("GD::Image::copy", XS_GD__Image_copy, file, "$$$$$$$$"); newXSproto("GD::Image::copyResized", XS_GD__Image_copyResized, file, "$$$$$$$$$$"); newXSproto("GD::Image::copyResampled", XS_GD__Image_copyResampled, file, "$$$$$$$$$$"); newXSproto("GD::Image::copyMerge", XS_GD__Image_copyMerge, file, "$$$$$$$$$"); newXSproto("GD::Image::copyMergeGray", XS_GD__Image_copyMergeGray, file, "$$$$$$$$$"); newXSproto("GD::Image::paletteCopy", XS_GD__Image_paletteCopy, file, "$$"); newXSproto("GD::Image::char", XS_GD__Image_char, file, "$$$$$$"); newXSproto("GD::Image::charUp", XS_GD__Image_charUp, file, "$$$$$$"); newXSproto("GD::Image::string", XS_GD__Image_string, file, "$$$$$$"); newXSproto("GD::Image::stringUp", XS_GD__Image_stringUp, file, "$$$$$$"); newXSproto("GD::Image::stringFT", XS_GD__Image_stringFT, file, "$$$$$$$$;$"); newXSproto("GD::Image::stringFTCircle", XS_GD__Image_stringFTCircle, file, "$$$$$$$$$$$"); newXSproto("GD::Image::useFontConfig", XS_GD__Image_useFontConfig, file, "$$"); newXSproto("GD::Image::alphaBlending", XS_GD__Image_alphaBlending, file, "$$"); newXSproto("GD::Image::saveAlpha", XS_GD__Image_saveAlpha, file, "$$"); newXSproto("GD::Image::clip", XS_GD__Image_clip, file, "$;$$$$"); newXSproto("GD::Image::setAntiAliased", XS_GD__Image_setAntiAliased, file, "$$"); newXSproto("GD::Image::setAntiAliasedDontBlend", XS_GD__Image_setAntiAliasedDontBlend, file, "$$$"); newXSproto("GD::Font::load", XS_GD__Font_load, file, "$$"); newXSproto("GD::Font::DESTROY", XS_GD__Font_DESTROY, file, "$"); newXSproto("GD::Font::Small", XS_GD__Font_Small, file, "$"); newXSproto("GD::Font::Large", XS_GD__Font_Large, file, "$"); newXSproto("GD::Font::Giant", XS_GD__Font_Giant, file, "$"); newXSproto("GD::Font::MediumBold", XS_GD__Font_MediumBold, file, "$"); newXSproto("GD::Font::Tiny", XS_GD__Font_Tiny, file, "$"); newXSproto("GD::Font::nchars", XS_GD__Font_nchars, file, "$"); newXSproto("GD::Font::offset", XS_GD__Font_offset, file, "$"); newXSproto("GD::Font::width", XS_GD__Font_width, file, "$"); newXSproto("GD::Font::height", XS_GD__Font_height, file, "$"); /* Initialisation Section */ #line 537 "GD.xs" { #ifdef START_MY_CXT MY_CXT_INIT; MY_CXT.truecolor_default = 0; #endif } #if XSubPPtmpAAAA #endif #if XSubPPtmpAAAB #endif #if XSubPPtmpAAAC #endif #if XSubPPtmpAAAD #endif #if XSubPPtmpAAAE #endif #if XSubPPtmpAAAF #endif #if XSubPPtmpAAAG #endif #line 5208 "GD.c" /* End of Initialisation Section */ XSRETURN_YES; }