mmx scaling back in - but forcibly disabled. new C scalign for scalign down..

works now.. :)


SVN revision: 2509
This commit is contained in:
Carsten Haitzler 2000-04-20 02:37:29 +00:00
parent 6f90764a22
commit 1f4e1b0a9e
4 changed files with 1263 additions and 308 deletions

View File

@ -1109,9 +1109,9 @@ __imlib_BlendImageToImage(ImlibImage *im_src, ImlibImage *im_dst,
/* setup h */
h = dh;
/* set our scaling up in x / y dir flags */
if (dw >= sw)
if (dw > sw)
xup = 1;
if (dh >= sh)
if (dh > sh)
yup = 1;
if (!IMAGE_HAS_ALPHA(im_dst))
merge_alpha = 0;
@ -1132,6 +1132,11 @@ __imlib_BlendImageToImage(ImlibImage *im_src, ImlibImage *im_dst,
/* scale the imagedata for this LINESIZE lines chunk of image */
if (aa)
{
#ifdef DO_MMX_ASM /*\ TODO: runtime mmx check \*/
__imlib_Scale_mmx_AARGBA(ypoints, xpoints, buf, xapoints,
yapoints, xup, yup, dxx, dyy + y,
0, 0, dw, hh, dw, im_src->w);
#else
if (IMAGE_HAS_ALPHA(im_src))
__imlib_ScaleAARGBA(ypoints, xpoints, buf, xapoints,
yapoints, xup, yup, dxx, dyy + y,
@ -1140,6 +1145,7 @@ __imlib_BlendImageToImage(ImlibImage *im_src, ImlibImage *im_dst,
__imlib_ScaleAARGB(ypoints, xpoints, buf, xapoints,
yapoints, xup, yup, dxx, dyy + y,
0, 0, dw, hh, dw, im_src->w);
#endif
}
else
__imlib_ScaleSampleRGBA(ypoints, xpoints, buf, dxx, dyy + y,

View File

@ -216,6 +216,13 @@ __imlib_RenderImage(Display *d, ImlibImage *im,
/* scale the imagedata for this LINESIZE lines chunk of image data */
if (antialias)
{
#ifdef DO_MMX_ASM /*\ TODO: runtime mmx check \*/
__imlib_Scale_mmx_AARGBA(ypoints, xpoints, buf, xapoints,
yapoints, xup, yup,
((sx * dw) / sw),
((sy * dh) / sh) + y,
0, 0, dw, hh, dw, im->w);
#else
if (IMAGE_HAS_ALPHA(im))
__imlib_ScaleAARGBA(ypoints, xpoints, buf, xapoints,
yapoints, xup, yup,
@ -226,6 +233,7 @@ __imlib_RenderImage(Display *d, ImlibImage *im,
yapoints, xup, yup,
((sx * dw) / sw), ((sy * dh) / sh) + y,
0, 0, dw, hh, dw, im->w);
#endif
}
else
__imlib_ScaleSampleRGBA(ypoints, xpoints, buf,

File diff suppressed because it is too large Load Diff

View File

@ -18,4 +18,8 @@ void
__imlib_ScaleAARGB(DATA32 **ypoints, int *xpoints, DATA32 *dest,
int *xapoints, int *yapoints, char xup, char yup,
int dxx, int dyy, int dx, int dy, int dw, int dh, int dow, int sow);
void
__imlib_Scale_mmx_AARGBA(DATA32 **ypoints, int *xpoints, DATA32 *dest,
int *xapoints, int *yapoints, char xup, char yup,
int dxx, int dyy, int dx, int dy, int dw, int dh, int dow, int sow);
#endif