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)14 XS( 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)34 PImage 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