for (i = 0; i < src->sx; i++) {
pxlSrc = f (src,i,uRow);
- r = gdImageRed(src,pxlSrc) * dWeight;
- g = gdImageGreen(src,pxlSrc) * dWeight;
- b = gdImageBlue(src,pxlSrc) * dWeight;
- a = gdImageAlpha(src,pxlSrc) * dWeight;
+ r = (int)(gdImageRed(src,pxlSrc) * dWeight);
+ g = (int)(gdImageGreen(src,pxlSrc) * dWeight);
+ b = (int)(gdImageBlue(src,pxlSrc) * dWeight);
+ a = (int)(gdImageAlpha(src,pxlSrc) * dWeight);
pxlLeft = gdImageColorAllocateAlpha(src, r, g, b, a);
void gdImageSkewY (gdImagePtr dst, gdImagePtr src, int uCol, int iOffset, double dWeight, int clrBack)
{
typedef int (*FuncPtr)(gdImagePtr, int, int);
- int i, iYPos, r, g, b, a;
+ int i, iYPos=0, r, g, b, a;
FuncPtr f;
int pxlOldLeft, pxlLeft, pxlSrc;
pxlSrc = f (src, uCol, i);
iYPos = i + iOffset;
- r = gdImageRed(src,pxlSrc) * dWeight;
- g = gdImageGreen(src,pxlSrc) * dWeight;
- b = gdImageBlue(src,pxlSrc) * dWeight;
- a = gdImageAlpha(src,pxlSrc) * dWeight;
+ r = (int)(gdImageRed(src,pxlSrc) * dWeight);
+ g = (int)(gdImageGreen(src,pxlSrc) * dWeight);
+ b = (int)(gdImageBlue(src,pxlSrc) * dWeight);
+ a = (int)(gdImageAlpha(src,pxlSrc) * dWeight);
pxlLeft = gdImageColorAllocateAlpha(src, r, g, b, a);
dSinE = sin (dRadAngle);
dTan = tan (dRadAngle / 2.0);
- newx = src->sx + src->sy * fabs(dTan);
+ newx = (int)(src->sx + src->sy * fabs(dTan));
newy = src->sy;
/* 1st shear */
dShear = ((double)(u - dst1->sy) + 0.5) * dTan;
}
- iShear = floor(dShear);
+ iShear = (int)floor(dShear);
gdImageSkewX(dst1, src, u, iShear, (dShear - iShear), clrBack);
}
}
for (u = 0; u < dst2->sx; u++, dOffset -= dSinE) {
- iShear = floor (dOffset);
+ iShear = (int)floor (dOffset);
gdImageSkewY(dst2, dst1, u, iShear, (dOffset - iShear), clrBack);
}
if (ch == '\r')
{
penf.x = 0;
- x1 = (penf.x * cos_a - penf.y * sin_a + 32) / 64;
- y1 = (penf.x * sin_a + penf.y * cos_a + 32) / 64;
+ x1 = (int)((penf.x * cos_a - penf.y * sin_a + 32.0) / 64.0);
+ y1 = (int)((penf.x * sin_a + penf.y * cos_a + 32.0) / 64.0);
pen.x = pen.y = 0;
previous = 0; /* clear kerning flag */
next++;
/* newlines */
if (ch == '\n')
{
- penf.y -= face->size->metrics.height * LINESPACE;
+ penf.y = penf.y - (int)(face->size->metrics.height * LINESPACE);
penf.y = (penf.y - 32) & -64; /* round to next pixel row */
- x1 = (penf.x * cos_a - penf.y * sin_a + 32) / 64;
- y1 = (penf.x * sin_a + penf.y * cos_a + 32) / 64;
+ x1 = (int)((penf.x * cos_a - penf.y * sin_a + 32.0) / 64.0);
+ y1 = (int)((penf.x * sin_a + penf.y * cos_a + 32.0) / 64.0);
pen.x = pen.y = 0;
previous = 0; /* clear kerning flag */
next++;