Mon Apr 18 22:11:22 2005 Michael Jennings (mej)

Patch from C. David Wilde <cdw@mylinuxguy.com> to correct the non-MMX
color modifier routines.
----------------------------------------------------------------------


SVN revision: 14230
This commit is contained in:
Michael Jennings 2005-04-19 02:13:19 +00:00
parent 6657911db3
commit 5b1616a67f
2 changed files with 24 additions and 12 deletions

View File

@ -5329,3 +5329,8 @@ Mon Apr 18 21:49:08 2005 Michael Jennings (mej)
Re-indent code. Re-indent code.
---------------------------------------------------------------------- ----------------------------------------------------------------------
Mon Apr 18 22:11:22 2005 Michael Jennings (mej)
Patch from C. David Wilde <cdw@mylinuxguy.com> to correct the non-MMX
color modifier routines.
----------------------------------------------------------------------

View File

@ -1649,12 +1649,12 @@ shade_ximage_32(void *data, int bpl, int w, int h, int rm, int gm, int bm)
int r, g, b; int r, g, b;
# ifdef WORDS_BIGENDIAN # ifdef WORDS_BIGENDIAN
r = (ptr[x + 1] * rm) >> 8; r = (ptr[x + 6] * rm) >> 8;
g = (ptr[x + 2] * gm) >> 8; g = (ptr[x + 5] * gm) >> 8;
b = (ptr[x + 3] * bm) >> 8; b = (ptr[x + 4] * bm) >> 8;
ptr[x + 1] = r; ptr[x + 6] = r;
ptr[x + 2] = g; ptr[x + 5] = g;
ptr[x + 3] = b; ptr[x + 4] = b;
# else # else
r = (ptr[x + 2] * rm) >> 8; r = (ptr[x + 2] * rm) >> 8;
g = (ptr[x + 1] * gm) >> 8; g = (ptr[x + 1] * gm) >> 8;
@ -1672,9 +1672,9 @@ shade_ximage_32(void *data, int bpl, int w, int h, int rm, int gm, int bm)
int r, g, b; int r, g, b;
# ifdef WORDS_BIGENDIAN # ifdef WORDS_BIGENDIAN
r = (ptr[x + 1] * rm) >> 8; r = (ptr[x + 6] * rm) >> 8;
g = (ptr[x + 2] * gm) >> 8; g = (ptr[x + 5] * gm) >> 8;
b = (ptr[x + 3] * bm) >> 8; b = (ptr[x + 4] * bm) >> 8;
# else # else
r = (ptr[x + 2] * rm) >> 8; r = (ptr[x + 2] * rm) >> 8;
g = (ptr[x + 1] * gm) >> 8; g = (ptr[x + 1] * gm) >> 8;
@ -1684,9 +1684,9 @@ shade_ximage_32(void *data, int bpl, int w, int h, int rm, int gm, int bm)
g |= (!(g >> 8) - 1); g |= (!(g >> 8) - 1);
b |= (!(b >> 8) - 1); b |= (!(b >> 8) - 1);
# ifdef WORDS_BIGENDIAN # ifdef WORDS_BIGENDIAN
ptr[x + 1] = r; ptr[x + 6] = r;
ptr[x + 2] = g; ptr[x + 5] = g;
ptr[x + 3] = b; ptr[x + 4] = b;
# else # else
ptr[x + 2] = r; ptr[x + 2] = r;
ptr[x + 1] = g; ptr[x + 1] = g;
@ -1874,27 +1874,34 @@ colormod_trans(Pixmap p, imlib_t *iml, GC gc, unsigned short w, unsigned short h
switch (real_depth) { switch (real_depth) {
case 15: case 15:
#ifdef HAVE_MMX #ifdef HAVE_MMX
D_PIXMAP(("Using MMX - 15 bit\n"));
shade_ximage_15_mmx(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); shade_ximage_15_mmx(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm);
#else #else
D_PIXMAP(("No MMX Found - 15 bit\n"));
shade_ximage_15(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); shade_ximage_15(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm);
#endif #endif
break; break;
case 16: case 16:
#ifdef HAVE_MMX #ifdef HAVE_MMX
D_PIXMAP(("Using MMX - 16 bit\n"));
shade_ximage_16_mmx(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); shade_ximage_16_mmx(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm);
#else #else
D_PIXMAP(("No MMX Found - 16 bit\n"));
shade_ximage_16(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); shade_ximage_16(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm);
#endif #endif
break; break;
case 24: case 24:
if (ximg->bits_per_pixel != 32) { if (ximg->bits_per_pixel != 32) {
D_PIXMAP(("Rendering 24 bit\n"));
shade_ximage_24(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); shade_ximage_24(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm);
} }
/* drop */ /* drop */
case 32: case 32:
#ifdef HAVE_MMX #ifdef HAVE_MMX
D_PIXMAP(("Using MMX - 32 bit\n"));
shade_ximage_32_mmx(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); shade_ximage_32_mmx(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm);
#else #else
D_PIXMAP(("No MMX Found - 32 bit\n"));
shade_ximage_32(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm); shade_ximage_32(ximg->data, ximg->bytes_per_line, w, h, rm, gm, bm);
#endif #endif
break; break;