handle lower depths :)

SVN revision: 3482
This commit is contained in:
Carsten Haitzler 2000-09-15 23:47:27 +00:00
parent 9fce1f5580
commit 69c726a9cf
5 changed files with 191 additions and 83 deletions

View File

@ -46,7 +46,7 @@ __imlib_BestVisual(Display *d, int screen, int *depth_return)
{ {
for (i = 0; i < num; i++) for (i = 0; i < num; i++)
{ {
if ((xvir[i].depth == 8) && if ((xvir[i].depth > 1) &&
(xvir[i].depth >= maxd) && (xvir[i].depth >= maxd) &&
(xvi.class == PseudoColor)) (xvi.class == PseudoColor))
{ {
@ -63,62 +63,70 @@ __imlib_BestVisual(Display *d, int screen, int *depth_return)
XFree(xvir); XFree(xvir);
} }
} }
printf("%x\n", v->visualid);
if (depth_return) if (depth_return)
*depth_return = maxd; *depth_return = maxd;
return v; return v;
} }
DATA8 * DATA8 *
__imlib_AllocColorTable(Display *d, Colormap cmap, DATA8 *type_return) __imlib_AllocColorTable(Display *d, Colormap cmap, DATA8 *type_return, Visual *v)
{ {
DATA8 *color_lut = NULL; DATA8 *color_lut = NULL;
if ((_max_colors >= 256) && (color_lut = __imlib_AllocColors332(d, cmap))) if (v->bits_per_rgb > 1)
{
if ((_max_colors >= 256) && (color_lut = __imlib_AllocColors332(d, cmap, v)))
{ {
*type_return = _pal_type; *type_return = _pal_type;
return color_lut; return color_lut;
} }
if ((_max_colors >= 216) && (color_lut = __imlib_AllocColors666(d, cmap))) if ((_max_colors >= 216) && (color_lut = __imlib_AllocColors666(d, cmap, v)))
{ {
*type_return = _pal_type; *type_return = _pal_type;
return color_lut; return color_lut;
} }
if ((_max_colors >= 128) && (color_lut = __imlib_AllocColors232(d, cmap))) if ((_max_colors >= 128) && (color_lut = __imlib_AllocColors232(d, cmap, v)))
{ {
*type_return = _pal_type; *type_return = _pal_type;
return color_lut; return color_lut;
} }
if ((_max_colors >= 64) && (color_lut = __imlib_AllocColors222(d, cmap))) if ((_max_colors >= 64) && (color_lut = __imlib_AllocColors222(d, cmap, v)))
{ {
*type_return = _pal_type; *type_return = _pal_type;
return color_lut; return color_lut;
} }
if ((_max_colors >= 32) && (color_lut = __imlib_AllocColors221(d, cmap))) if ((_max_colors >= 32) && (color_lut = __imlib_AllocColors221(d, cmap, v)))
{ {
*type_return = _pal_type; *type_return = _pal_type;
return color_lut; return color_lut;
} }
if ((_max_colors >= 16) && (color_lut = __imlib_AllocColors121(d, cmap))) if ((_max_colors >= 16) && (color_lut = __imlib_AllocColors121(d, cmap, v)))
{ {
*type_return = _pal_type; *type_return = _pal_type;
return color_lut; return color_lut;
} }
if ((_max_colors >= 8) && (color_lut = __imlib_AllocColors111(d, cmap))) }
if ((_max_colors >= 8) && (color_lut = __imlib_AllocColors111(d, cmap, v)))
{ {
*type_return = _pal_type; *type_return = _pal_type;
return color_lut; return color_lut;
} }
color_lut = __imlib_AllocColors1(d, cmap); color_lut = __imlib_AllocColors1(d, cmap, v);
*type_return = _pal_type; *type_return = _pal_type;
return color_lut; return color_lut;
} }
DATA8 * DATA8 *
__imlib_AllocColors332(Display *d, Colormap cmap) __imlib_AllocColors332(Display *d, Colormap cmap, Visual *v)
{ {
int r, g, b, i = 0; int r, g, b, i;
DATA8 *color_lut; DATA8 *color_lut;
int sig_mask = 0;
for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i);
sig_mask <<= (16 - v->bits_per_rgb);
i = 0;
color_lut = malloc(256 * sizeof(DATA8)); color_lut = malloc(256 * sizeof(DATA8));
for (r = 0; r < 8; r++) for (r = 0; r < 8; r++)
{ {
@ -127,7 +135,9 @@ __imlib_AllocColors332(Display *d, Colormap cmap)
for (b = 0; b < 4; b++) for (b = 0; b < 4; b++)
{ {
XColor xcl; XColor xcl;
XColor xcl_in;
int val; int val;
Status ret;
val = (r << 6) | (r << 3) | (r); val = (r << 6) | (r << 3) | (r);
xcl.red = (unsigned short)((val << 7) | (val >> 2)); xcl.red = (unsigned short)((val << 7) | (val >> 2));
@ -135,7 +145,12 @@ __imlib_AllocColors332(Display *d, Colormap cmap)
xcl.green = (unsigned short)((val << 7) | (val >> 2)); xcl.green = (unsigned short)((val << 7) | (val >> 2));
val = (b << 6) | (b << 4) | (b << 2) | (b); val = (b << 6) | (b << 4) | (b << 2) | (b);
xcl.blue = (unsigned short)((val << 8) | (val)); xcl.blue = (unsigned short)((val << 8) | (val));
if (!XAllocColor(d, cmap, &xcl)) xcl_in = xcl;
ret = XAllocColor(d, cmap, &xcl);
if ((ret == Success) ||
((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask)))
{ {
unsigned long pixels[256]; unsigned long pixels[256];
int j; int j;
@ -159,11 +174,15 @@ __imlib_AllocColors332(Display *d, Colormap cmap)
} }
DATA8 * DATA8 *
__imlib_AllocColors666(Display *d, Colormap cmap) __imlib_AllocColors666(Display *d, Colormap cmap, Visual *v)
{ {
int r, g, b, i = 0; int r, g, b, i;
DATA8 *color_lut; DATA8 *color_lut;
int sig_mask = 0;
for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i);
sig_mask <<= (16 - v->bits_per_rgb);
i = 0;
color_lut = malloc(256 * sizeof(DATA8)); color_lut = malloc(256 * sizeof(DATA8));
for (r = 0; r < 6; r++) for (r = 0; r < 6; r++)
{ {
@ -172,7 +191,9 @@ __imlib_AllocColors666(Display *d, Colormap cmap)
for (b = 0; b < 6; b++) for (b = 0; b < 6; b++)
{ {
XColor xcl; XColor xcl;
XColor xcl_in;
int val; int val;
Status ret;
val = (int)((((double)r) / 5.0) * 65535); val = (int)((((double)r) / 5.0) * 65535);
xcl.red = (unsigned short)(val); xcl.red = (unsigned short)(val);
@ -180,7 +201,12 @@ __imlib_AllocColors666(Display *d, Colormap cmap)
xcl.green = (unsigned short)(val); xcl.green = (unsigned short)(val);
val = (int)((((double)b) / 5.0) * 65535); val = (int)((((double)b) / 5.0) * 65535);
xcl.blue = (unsigned short)(val); xcl.blue = (unsigned short)(val);
if (!XAllocColor(d, cmap, &xcl)) xcl_in = xcl;
ret = XAllocColor(d, cmap, &xcl);
if ((ret == Success) ||
((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask)))
{ {
unsigned long pixels[256]; unsigned long pixels[256];
int j; int j;
@ -204,11 +230,15 @@ __imlib_AllocColors666(Display *d, Colormap cmap)
} }
DATA8 * DATA8 *
__imlib_AllocColors232(Display *d, Colormap cmap) __imlib_AllocColors232(Display *d, Colormap cmap, Visual *v)
{ {
int r, g, b, i = 0; int r, g, b, i;
DATA8 *color_lut; DATA8 *color_lut;
int sig_mask = 0;
for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i);
sig_mask <<= (16 - v->bits_per_rgb);
i = 0;
color_lut = malloc(128 * sizeof(DATA8)); color_lut = malloc(128 * sizeof(DATA8));
for (r = 0; r < 4; r++) for (r = 0; r < 4; r++)
{ {
@ -217,7 +247,9 @@ __imlib_AllocColors232(Display *d, Colormap cmap)
for (b = 0; b < 4; b++) for (b = 0; b < 4; b++)
{ {
XColor xcl; XColor xcl;
XColor xcl_in;
int val; int val;
Status ret;
val = (r << 6) | (r << 4) | (r << 2) | (r); val = (r << 6) | (r << 4) | (r << 2) | (r);
xcl.red = (unsigned short)((val << 8) | (val)); xcl.red = (unsigned short)((val << 8) | (val));
@ -225,7 +257,12 @@ __imlib_AllocColors232(Display *d, Colormap cmap)
xcl.green = (unsigned short)((val << 7) | (val >> 2)); xcl.green = (unsigned short)((val << 7) | (val >> 2));
val = (b << 6) | (b << 4) | (b << 2) | (b); val = (b << 6) | (b << 4) | (b << 2) | (b);
xcl.blue = (unsigned short)((val << 8) | (val)); xcl.blue = (unsigned short)((val << 8) | (val));
if (!XAllocColor(d, cmap, &xcl)) xcl_in = xcl;
ret = XAllocColor(d, cmap, &xcl);
if ((ret == Success) ||
((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask)))
{ {
unsigned long pixels[256]; unsigned long pixels[256];
int j; int j;
@ -249,11 +286,15 @@ __imlib_AllocColors232(Display *d, Colormap cmap)
} }
DATA8 * DATA8 *
__imlib_AllocColors222(Display *d, Colormap cmap) __imlib_AllocColors222(Display *d, Colormap cmap, Visual *v)
{ {
int r, g, b, i = 0; int r, g, b, i;
DATA8 *color_lut; DATA8 *color_lut;
int sig_mask = 0;
for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i);
sig_mask <<= (16 - v->bits_per_rgb);
i = 0;
color_lut = malloc(64 * sizeof(DATA8)); color_lut = malloc(64 * sizeof(DATA8));
for (r = 0; r < 4; r++) for (r = 0; r < 4; r++)
{ {
@ -262,7 +303,9 @@ __imlib_AllocColors222(Display *d, Colormap cmap)
for (b = 0; b < 4; b++) for (b = 0; b < 4; b++)
{ {
XColor xcl; XColor xcl;
XColor xcl_in;
int val; int val;
Status ret;
val = (r << 6) | (r << 4) | (r << 2) | (r); val = (r << 6) | (r << 4) | (r << 2) | (r);
xcl.red = (unsigned short)((val << 8) | (val)); xcl.red = (unsigned short)((val << 8) | (val));
@ -270,7 +313,12 @@ __imlib_AllocColors222(Display *d, Colormap cmap)
xcl.green = (unsigned short)((val << 8) | (val)); xcl.green = (unsigned short)((val << 8) | (val));
val = (b << 6) | (b << 4) | (b << 2) | (b); val = (b << 6) | (b << 4) | (b << 2) | (b);
xcl.blue = (unsigned short)((val << 8) | (val)); xcl.blue = (unsigned short)((val << 8) | (val));
if (!XAllocColor(d, cmap, &xcl)) xcl_in = xcl;
ret = XAllocColor(d, cmap, &xcl);
if ((ret == Success) ||
((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask)))
{ {
unsigned long pixels[256]; unsigned long pixels[256];
int j; int j;
@ -294,11 +342,15 @@ __imlib_AllocColors222(Display *d, Colormap cmap)
} }
DATA8 * DATA8 *
__imlib_AllocColors221(Display *d, Colormap cmap) __imlib_AllocColors221(Display *d, Colormap cmap, Visual *v)
{ {
int r, g, b, i = 0; int r, g, b, i;
DATA8 *color_lut; DATA8 *color_lut;
int sig_mask = 0;
for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i);
sig_mask <<= (16 - v->bits_per_rgb);
i = 0;
color_lut = malloc(32 * sizeof(DATA8)); color_lut = malloc(32 * sizeof(DATA8));
for (r = 0; r < 4; r++) for (r = 0; r < 4; r++)
{ {
@ -307,7 +359,9 @@ __imlib_AllocColors221(Display *d, Colormap cmap)
for (b = 0; b < 2; b++) for (b = 0; b < 2; b++)
{ {
XColor xcl; XColor xcl;
XColor xcl_in;
int val; int val;
Status ret;
val = (r << 6) | (r << 4) | (r << 2) | (r); val = (r << 6) | (r << 4) | (r << 2) | (r);
xcl.red = (unsigned short)((val << 8) | (val)); xcl.red = (unsigned short)((val << 8) | (val));
@ -315,7 +369,12 @@ __imlib_AllocColors221(Display *d, Colormap cmap)
xcl.green = (unsigned short)((val << 8) | (val)); xcl.green = (unsigned short)((val << 8) | (val));
val = (b << 7) | (b << 6) | (b << 5) | (b << 4) | (b << 3) | (b << 2) | (b << 1) | (b); val = (b << 7) | (b << 6) | (b << 5) | (b << 4) | (b << 3) | (b << 2) | (b << 1) | (b);
xcl.blue = (unsigned short)((val << 8) | (val)); xcl.blue = (unsigned short)((val << 8) | (val));
if (!XAllocColor(d, cmap, &xcl)) xcl_in = xcl;
ret = XAllocColor(d, cmap, &xcl);
if ((ret == Success) ||
((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask)))
{ {
unsigned long pixels[256]; unsigned long pixels[256];
int j; int j;
@ -339,11 +398,15 @@ __imlib_AllocColors221(Display *d, Colormap cmap)
} }
DATA8 * DATA8 *
__imlib_AllocColors121(Display *d, Colormap cmap) __imlib_AllocColors121(Display *d, Colormap cmap, Visual *v)
{ {
int r, g, b, i = 0; int r, g, b, i;
DATA8 *color_lut; DATA8 *color_lut;
int sig_mask = 0;
for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i);
sig_mask <<= (16 - v->bits_per_rgb);
i = 0;
color_lut = malloc(16 * sizeof(DATA8)); color_lut = malloc(16 * sizeof(DATA8));
for (r = 0; r < 2; r++) for (r = 0; r < 2; r++)
{ {
@ -352,7 +415,9 @@ __imlib_AllocColors121(Display *d, Colormap cmap)
for (b = 0; b < 2; b++) for (b = 0; b < 2; b++)
{ {
XColor xcl; XColor xcl;
XColor xcl_in;
int val; int val;
Status ret;
val = (r << 7) | (r << 6) | (r << 5) | (r << 4) | (r << 3) | (r << 2) | (r << 1) | (r); val = (r << 7) | (r << 6) | (r << 5) | (r << 4) | (r << 3) | (r << 2) | (r << 1) | (r);
xcl.red = (unsigned short)((val << 8) | (val)); xcl.red = (unsigned short)((val << 8) | (val));
@ -360,7 +425,12 @@ __imlib_AllocColors121(Display *d, Colormap cmap)
xcl.green = (unsigned short)((val << 8) | (val)); xcl.green = (unsigned short)((val << 8) | (val));
val = (b << 7) | (b << 6) | (b << 5) | (b << 4) | (b << 3) | (b << 2) | (b << 1) | (b); val = (b << 7) | (b << 6) | (b << 5) | (b << 4) | (b << 3) | (b << 2) | (b << 1) | (b);
xcl.blue = (unsigned short)((val << 8) | (val)); xcl.blue = (unsigned short)((val << 8) | (val));
if (!XAllocColor(d, cmap, &xcl)) xcl_in = xcl;
ret = XAllocColor(d, cmap, &xcl);
if ((ret == Success) ||
((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask)))
{ {
unsigned long pixels[256]; unsigned long pixels[256];
int j; int j;
@ -384,11 +454,15 @@ __imlib_AllocColors121(Display *d, Colormap cmap)
} }
DATA8 * DATA8 *
__imlib_AllocColors111(Display *d, Colormap cmap) __imlib_AllocColors111(Display *d, Colormap cmap, Visual *v)
{ {
int r, g, b, i = 0; int r, g, b, i ;
DATA8 *color_lut; DATA8 *color_lut;
int sig_mask = 0;
for (i = 0; i < v->bits_per_rgb; i++) sig_mask |= (0x1 << i);
sig_mask <<= (16 - v->bits_per_rgb);
i = 0;
color_lut = malloc(8 * sizeof(DATA8)); color_lut = malloc(8 * sizeof(DATA8));
for (r = 0; r < 2; r++) for (r = 0; r < 2; r++)
{ {
@ -397,7 +471,9 @@ __imlib_AllocColors111(Display *d, Colormap cmap)
for (b = 0; b < 2; b++) for (b = 0; b < 2; b++)
{ {
XColor xcl; XColor xcl;
XColor xcl_in;
int val; int val;
Status ret;
val = (r << 7) | (r << 6) | (r << 5) | (r << 4) | (r << 3) | (r << 2) | (r << 1) | (r); val = (r << 7) | (r << 6) | (r << 5) | (r << 4) | (r << 3) | (r << 2) | (r << 1) | (r);
xcl.red = (unsigned short)((val << 8) | (val)); xcl.red = (unsigned short)((val << 8) | (val));
@ -405,7 +481,12 @@ __imlib_AllocColors111(Display *d, Colormap cmap)
xcl.green = (unsigned short)((val << 8) | (val)); xcl.green = (unsigned short)((val << 8) | (val));
val = (b << 7) | (b << 6) | (b << 5) | (b << 4) | (b << 3) | (b << 2) | (b << 1) | (b); val = (b << 7) | (b << 6) | (b << 5) | (b << 4) | (b << 3) | (b << 2) | (b << 1) | (b);
xcl.blue = (unsigned short)((val << 8) | (val)); xcl.blue = (unsigned short)((val << 8) | (val));
if (!XAllocColor(d, cmap, &xcl)) xcl_in = xcl;
ret = XAllocColor(d, cmap, &xcl);
if ((ret == Success) ||
((xcl_in.red & sig_mask) != (xcl.red & sig_mask)) ||
((xcl_in.green & sig_mask) != (xcl.green & sig_mask)) ||
((xcl_in.blue & sig_mask) != (xcl.blue & sig_mask)))
{ {
unsigned long pixels[256]; unsigned long pixels[256];
int j; int j;
@ -429,7 +510,7 @@ __imlib_AllocColors111(Display *d, Colormap cmap)
} }
DATA8 * DATA8 *
__imlib_AllocColors1(Display *d, Colormap cmap) __imlib_AllocColors1(Display *d, Colormap cmap, Visual *v)
{ {
XColor xcl; XColor xcl;
DATA8 *color_lut; DATA8 *color_lut;

View File

@ -4,13 +4,13 @@ extern DATA16 _max_colors;
int __imlib_XActualDepth(Display *d, Visual *v); int __imlib_XActualDepth(Display *d, Visual *v);
Visual *__imlib_BestVisual(Display *d, int screen, int *depth_return); Visual *__imlib_BestVisual(Display *d, int screen, int *depth_return);
DATA8 * __imlib_AllocColorTable(Display *d, Colormap cmap, DATA8 *type_return); DATA8 * __imlib_AllocColorTable(Display *d, Colormap cmap, DATA8 *type_return, Visual *v);
DATA8 * __imlib_AllocColors332(Display *d, Colormap cmap); DATA8 * __imlib_AllocColors332(Display *d, Colormap cmap, Visual *v);
DATA8 * __imlib_AllocColors666(Display *d, Colormap cmap); DATA8 * __imlib_AllocColors666(Display *d, Colormap cmap, Visual *v);
DATA8 * __imlib_AllocColors232(Display *d, Colormap cmap); DATA8 * __imlib_AllocColors232(Display *d, Colormap cmap, Visual *v);
DATA8 * __imlib_AllocColors222(Display *d, Colormap cmap); DATA8 * __imlib_AllocColors222(Display *d, Colormap cmap, Visual *v);
DATA8 * __imlib_AllocColors221(Display *d, Colormap cmap); DATA8 * __imlib_AllocColors221(Display *d, Colormap cmap, Visual *v);
DATA8 * __imlib_AllocColors121(Display *d, Colormap cmap); DATA8 * __imlib_AllocColors121(Display *d, Colormap cmap, Visual *v);
DATA8 * __imlib_AllocColors111(Display *d, Colormap cmap); DATA8 * __imlib_AllocColors111(Display *d, Colormap cmap, Visual *v);
DATA8 * __imlib_AllocColors1(Display *d, Colormap cmap); DATA8 * __imlib_AllocColors1(Display *d, Colormap cmap, Visual *v);
#endif #endif

View File

@ -156,7 +156,7 @@ __imlib_NewContext(Display *d, Visual *v, Colormap c, int depth)
if (depth <= 8) if (depth <= 8)
{ {
ct->palette = __imlib_AllocColorTable(d, c, &(ct->palette_type)); ct->palette = __imlib_AllocColorTable(d, c, &(ct->palette_type), v);
ct->r_dither = malloc(sizeof(DATA8) * 8 * 8 * 256); ct->r_dither = malloc(sizeof(DATA8) * 8 * 8 * 256);
ct->g_dither = malloc(sizeof(DATA8) * 8 * 8 * 256); ct->g_dither = malloc(sizeof(DATA8) * 8 * 8 * 256);
ct->b_dither = malloc(sizeof(DATA8) * 8 * 8 * 256); ct->b_dither = malloc(sizeof(DATA8) * 8 * 8 * 256);

View File

@ -19,12 +19,42 @@
void void
__imlib_generic_render(DATA32 *src, int jump, int w, int h, int dx, int dy, __imlib_generic_render(DATA32 *src, int jump, int w, int h, int dx, int dy,
XImage *xim, Visual *v) XImage *xim, Visual *v, Context *ct)
{ {
unsigned int x, y, r, g, b, val, hh; unsigned int x, y, r, g, b, val, hh;
unsigned int rmask, gmask, bmask; unsigned int rmask, gmask, bmask;
int i, rshift, gshift, bshift; int i, rshift, gshift, bshift;
const DATA8 _dither_88[8][8] =
{
{ 0, 32, 8, 40, 2, 34, 10, 42 },
{ 48, 16, 56, 24, 50, 18, 58, 26 },
{ 12, 44, 4, 36, 14, 46, 6, 38 },
{ 60, 28, 52, 20, 62, 30, 54, 22 },
{ 3, 35, 11, 43, 1, 33, 9, 41 },
{ 51, 19, 59, 27, 49, 17, 57, 25 },
{ 15, 47, 7, 39, 13, 45, 5, 37 },
{ 63, 31, 55, 23, 61, 29, 53, 21 }
};
if (xim->depth == 1)
{
hh = dy + h;
for (y = dy; y < hh; y++)
{
for (x = dx; x < w; x++)
{
r = R_VAL(src);
g = G_VAL(src);
b = B_VAL(src);
val = (R_VAL(src) + G_VAL(src) + B_VAL(src)) / 12;
if (val > _dither_88[x & 0x3][y & 0x3]) val = ct->palette[1];
else val = ct->palette[0];
XPutPixel(xim, x, y, val);
src++;
}
}
return;
}
rmask = xim->red_mask; rmask = xim->red_mask;
gmask = xim->green_mask; gmask = xim->green_mask;
bmask = xim->blue_mask; bmask = xim->blue_mask;
@ -290,7 +320,7 @@ __imlib_RenderImage(Display *d, ImlibImage *im,
((DATA8 *)xim->data) + (y * (xim->bytes_per_line)), ((DATA8 *)xim->data) + (y * (xim->bytes_per_line)),
xim->bytes_per_line, dw, hh, dx, dy + y); xim->bytes_per_line, dw, hh, dx, dy + y);
else else
__imlib_generic_render(pointer, jump, dw, hh, 0, y, xim, v); __imlib_generic_render(pointer, jump, dw, hh, 0, y, xim, v, ct);
if (m) if (m)
masker(pointer, jump, masker(pointer, jump,
((DATA8 *)mxim->data) + (y * (mxim->bytes_per_line)), ((DATA8 *)mxim->data) + (y * (mxim->bytes_per_line)),

View File

@ -1166,7 +1166,7 @@ static DATA8 _dither_a1[8 * 8 * 256];
#define RGB111_RSHIFT >> 21 #define RGB111_RSHIFT >> 21
#define RGB111_BMASK & 0x01 #define RGB111_BMASK & 0x01
#define RGB111_GMASK & 0x02 #define RGB111_GMASK & 0x02
#define RGB111_RMASK & 0x30 #define RGB111_RMASK & 0x04
#define WRITE1_RGBA_RGB111(src, dest) \ #define WRITE1_RGBA_RGB111(src, dest) \
*dest = _dither_color_lut[((*src RGB111_BSHIFT) RGB111_BMASK) | \ *dest = _dither_color_lut[((*src RGB111_BSHIFT) RGB111_BMASK) | \
@ -1529,7 +1529,7 @@ __imlib_RGBA_init(void *rd, void *gd, void *bd, int depth, DATA8 palette_type)
} }
} }
break; break;
case 8: default:
rd8 = (DATA8 *)rd; rd8 = (DATA8 *)rd;
gd8 = (DATA8 *)gd; gd8 = (DATA8 *)gd;
bd8 = (DATA8 *)bd; bd8 = (DATA8 *)bd;
@ -1775,8 +1775,6 @@ __imlib_RGBA_init(void *rd, void *gd, void *bd, int depth, DATA8 palette_type)
break; break;
} }
break; break;
default:
break;
} }
} }
@ -3892,7 +3890,6 @@ __imlib_GetRGBAFunction(int depth,
return __imlib_RGBA_to_RGB666_fast; return __imlib_RGBA_to_RGB666_fast;
} }
} }
printf("Imlib2: unknown depth %i\n", depth);
return NULL; return NULL;
} }