foudn bug in mmx asm blending.. 1 line hihg blends get skipped.. fix! :)

(ugly fix tho)


SVN revision: 3296
This commit is contained in:
Carsten Haitzler 2000-09-02 07:27:50 +00:00
parent 0794fb0f14
commit 6fe8ee962f
3 changed files with 5 additions and 4 deletions

2
TODO
View File

@ -3,4 +3,4 @@ path rendering is correct for that visual
* formalize loader/saver api * formalize loader/saver api
* fix loaders to only build if libs are present * fix loaders to only build if libs are present
* move db loader/saver to use edb * move db loader/saver to use edb
* bug in mmx image -> image blending skips 1 line high segments

View File

@ -119,8 +119,10 @@ c1: .word 0x1, 0x1, 0x1, 0x1
leal (%edi, %ebx, 4), %edi ;\ leal (%edi, %ebx, 4), %edi ;\
negl %ebx ;\ negl %ebx ;\
jz 9f ;\ jz 9f ;\
incl %edx ;\
decl %edx ;\ decl %edx ;\
jz 9f ;\ jz 9f ;\
decl %edx ;\
#define LOOP_START \ #define LOOP_START \
8: ;\ 8: ;\
@ -148,7 +150,7 @@ c1: .word 0x1, 0x1, 0x1, 0x1
popl %ebp ;\ popl %ebp ;\
ret ret
/****!!!!!!!!1 has bug wiht 1 line high ********/
PR_(imlib_mmx_blend_rgba_to_rgb): PR_(imlib_mmx_blend_rgba_to_rgb):
ENTER ENTER

View File

@ -906,7 +906,7 @@ __imlib_GetBlendFunction(ImlibOp op, char blend, char merge_alpha, char rgb_src,
#ifdef DO_MMX_ASM #ifdef DO_MMX_ASM
/*\ OP_COPY \*/ /*\ OP_COPY \*/
{{{{{ __imlib_mmx_copy_rgba_to_rgb, __imlib_mmx_blend_rgba_to_rgb }, {{{{{ __imlib_mmx_copy_rgba_to_rgb, __imlib_mmx_blend_rgba_to_rgb},
{ __imlib_mmx_copy_rgb_to_rgb, __imlib_mmx_blend_rgb_to_rgb } }, { __imlib_mmx_copy_rgb_to_rgb, __imlib_mmx_blend_rgb_to_rgb } },
{{ __imlib_mmx_copy_rgba_to_rgba, __imlib_BlendRGBAToRGBA/*__imlib_mmx_blend_rgba_to_rgba*/ }, {{ __imlib_mmx_copy_rgba_to_rgba, __imlib_BlendRGBAToRGBA/*__imlib_mmx_blend_rgba_to_rgba*/ },
{ __imlib_mmx_copy_rgb_to_rgba, __imlib_mmx_blend_rgb_to_rgba } } }, { __imlib_mmx_copy_rgb_to_rgba, __imlib_mmx_blend_rgb_to_rgba } } },
@ -1202,7 +1202,6 @@ __imlib_BlendImageToImage(ImlibImage *im_src, ImlibImage *im_dst,
else else
__imlib_ScaleSampleRGBA(scaleinfo, buf, dxx, dyy + y, __imlib_ScaleSampleRGBA(scaleinfo, buf, dxx, dyy + y,
0, 0, dw, hh, dw); 0, 0, dw, hh, dw);
__imlib_BlendRGBAToData(buf, dw, hh, __imlib_BlendRGBAToData(buf, dw, hh,
im_dst->data, im_dst->w, im_dst->data, im_dst->w,
im_dst->h, im_dst->h,