1 /* $Id$ */ 2 3 #include "IPAsupp.h" 4 5 PImage_vmt CImage; 6 7 extern void register_IPA__Global_Package( void); 8 extern void register_IPA__Geometry_Package( void); 9 extern void register_IPA__Misc_Package( void); 10 extern void register_IPA__Local_Package( void); 11 extern void register_IPA__Point_Package( void); 12 extern void register_IPA__Morphology_Package( void); 13 XS(boot_IPA)14XS( boot_IPA) 15 { 16 dXSARGS; 17 18 (void)items; 19 20 XS_VERSION_BOOTCHECK; 21 22 CImage = (PImage_vmt)gimme_the_vmt( "Prima::Image"); 23 register_IPA__Global_Package( ); 24 register_IPA__Geometry_Package( ); 25 register_IPA__Misc_Package( ); 26 register_IPA__Local_Package( ); 27 register_IPA__Point_Package( ); 28 register_IPA__Morphology_Package( ); 29 30 ST(0) = &PL_sv_yes; 31 XSRETURN(1); 32 } 33 create_compatible_image(PImage img,Bool copyData)34PImage create_compatible_image(PImage img,Bool copyData) 35 { 36 PImage oimg; 37 oimg=createImage(img->w,img->h,img->type); 38 if (!oimg) { 39 return NULL; 40 } 41 if ((( img-> type & imBPP) <= 8) && !(img->type & imGrayScale)) 42 memcpy(oimg->palette,img->palette,img->palSize * 3); 43 if (copyData) 44 memcpy(oimg->data,img->data,img->dataSize); 45 return oimg; 46 } 47