typedef i_fcolor* Imager__Color__Float;
typedef i_img* Imager__ImgRaw;
+/* later perls define this macro to prevent warning when converting
+from IV to pointer types */
+
+#ifndef INT2PTR
+#define INT2PTR(type,value) (type)(value)
+#endif
#ifdef HAVE_LIBTT
typedef TT_Fonthandle* Imager__Font__TT;
for (i = 0; i < quant->mc_count; ++i) {
SV **sv1 = av_fetch(av, i, 0);
if (sv1 && *sv1 && SvROK(*sv1) && sv_derived_from(*sv1, "Imager::Color")) {
- i_color *col = (i_color *)SvIV((SV*)SvRV(*sv1));
+ i_color *col = INT2PTR(i_color *, SvIV((SV*)SvRV(*sv1)));
quant->mc_colors[i] = *col;
}
}
}
sv = hv_fetch(hv, "gif_tran_color", 14, 0);
if (sv && *sv && SvROK(*sv) && sv_derived_from(*sv, "Imager::Color")) {
- i_color *col = (i_color *)SvIV((SV *)SvRV(*sv));
+ i_color *col = INT2PTR(i_color *, SvIV((SV *)SvRV(*sv)));
opts->tran_color = *col;
}
sv = hv_fetch(hv, "gif_positions", 13, 0);
croak("i_fountain: segs must contain colors in elements 3 and 4");
}
if (sv_derived_from(*sv3, "Imager::Color::Float")) {
- segs[i].c[j] = *(i_fcolor *)SvIV((SV *)SvRV(*sv3));
+ segs[i].c[j] = *INT2PTR(i_fcolor *, SvIV((SV *)SvRV(*sv3)));
}
else {
- i_color c = *(i_color *)SvIV((SV *)SvRV(*sv3));
+ i_color c = *INT2PTR(i_color *, SvIV((SV *)SvRV(*sv3)));
int ch;
for (ch = 0; ch < MAXCHANNELS; ++ch) {
segs[i].c[j].channel[ch] = c.channel[ch] / 255.0;
SV *sv = ST(1+i);
imgs[i] = NULL;
if (SvROK(sv) && sv_derived_from(sv, "Imager::ImgRaw")) {
- imgs[i] = (i_img *)SvIV((SV*)SvRV(sv));
+ imgs[i] = INT2PTR(i_img *, SvIV((SV*)SvRV(sv)));
}
else {
i_clear_error();
SV *sv = ST(2+i);
imgs[i] = NULL;
if (SvROK(sv) && sv_derived_from(sv, "Imager::ImgRaw")) {
- imgs[i] = (i_img *)SvIV((SV*)SvRV(sv));
+ imgs[i] = INT2PTR(i_img *, SvIV((SV*)SvRV(sv)));
}
else {
i_clear_error();
SV *sv = ST(2+i);
imgs[i] = NULL;
if (SvROK(sv) && sv_derived_from(sv, "Imager::ImgRaw")) {
- imgs[i] = (i_img *)SvIV((SV*)SvRV(sv));
+ imgs[i] = INT2PTR(i_img *, SvIV((SV*)SvRV(sv)));
}
else {
i_clear_error();
SV *sv = ST(3+i);
imgs[i] = NULL;
if (SvROK(sv) && sv_derived_from(sv, "Imager::ImgRaw")) {
- imgs[i] = (i_img *)SvIV((SV*)SvRV(sv));
+ imgs[i] = INT2PTR(i_img *, SvIV((SV*)SvRV(sv)));
}
else {
RETVAL = 0;
SV *sv = ST(2+i);
imgs[i] = NULL;
if (SvROK(sv) && sv_derived_from(sv, "Imager::ImgRaw")) {
- imgs[i] = (i_img *)SvIV((SV*)SvRV(sv));
+ imgs[i] = INT2PTR(i_img *, SvIV((SV*)SvRV(sv)));
}
else {
RETVAL = 0;
free(axx); free(ayy); free(ac);
croak("i_gradgen: Element of fourth argument is not derived from Imager::Color");
}
- ival[i] = *(i_color *)SvIV((SV *)SvRV(sv));
+ ival[i] = *INT2PTR(i_color *, SvIV((SV *)SvRV(sv)));
}
i_gradgen(im, num, xo, yo, ival, dmeasure);
myfree(xo);
myfree(ival);
+void
+i_diff_image(im, im2, mindiff=0)
+ Imager::ImgRaw im
+ Imager::ImgRaw im2
+ int mindiff
+
void
i_fountain(im, xa, ya, xb, yb, type, repeat, combine, super_sample, ssample_param, segs)
Imager::ImgRaw im
free(axx); free(ayy); free(ac);
croak("i_nearest_color: Element of fourth argument is not derived from Imager::Color");
}
- ival[i] = *(i_color *)SvIV((SV *)SvRV(sv));
+ ival[i] = *INT2PTR(i_color *, SvIV((SV *)SvRV(sv)));
}
i_nearest_color(im, num, xo, yo, ival, dmeasure);
if (sv_isobject(ST(i+1))
&& sv_derived_from(ST(i+1), "Imager::Color")) {
IV tmp = SvIV((SV *)SvRV(ST(i+1)));
- colors[i] = *(i_color *)tmp;
+ colors[i] = *INT2PTR(i_color *, tmp);
}
else {
myfree(colors);
if (sv_isobject(ST(i+2))
&& sv_derived_from(ST(i+2), "Imager::Color")) {
IV tmp = SvIV((SV *)SvRV(ST(i+2)));
- colors[i] = *(i_color *)tmp;
+ colors[i] = *INT2PTR(i_color *, tmp);
}
else {
myfree(colors);
|| !sv_derived_from(ST(1), "Imager::ImgRaw")) {
croak("i_img_masked_new: parameter 2 must undef or an image");
}
- mask = (i_img *)SvIV((SV *)SvRV(ST(1)));
+ mask = INT2PTR(i_img *, SvIV((SV *)SvRV(ST(1))));
}
else
mask = NULL;
if (sv_isobject(ST(i+3))
&& sv_derived_from(ST(i+3), "Imager::Color")) {
IV tmp = SvIV((SV *)SvRV(ST(i+3)));
- work[i] = *(i_color *)tmp;
+ work[i] = *INT2PTR(i_color *, tmp);
}
else {
myfree(work);
if (sv_isobject(ST(i+3))
&& sv_derived_from(ST(i+3), "Imager::Color::Float")) {
IV tmp = SvIV((SV *)SvRV(ST(i+3)));
- work[i] = *(i_fcolor *)tmp;
+ work[i] = *INT2PTR(i_fcolor *, tmp);
}
else {
myfree(work);