added code for 1 and 3 bytes per pixel. Fixes bug #504115.

2007-12-18  Sven Neumann  <sven@gimp.org>

	* app/display/gimpdisplayshell-render.c
	(render_image_tile_fault_nearest): added code for 1 and 3 bytes
	per pixel. Fixes bug #504115.


svn path=/trunk/; revision=24387
This commit is contained in:
Sven Neumann 2007-12-18 08:46:40 +00:00 committed by Sven Neumann
parent 50f65eb1b4
commit 53f3123847
2 changed files with 22 additions and 4 deletions

View File

@ -1,3 +1,9 @@
2007-12-18 Sven Neumann <sven@gimp.org>
* app/display/gimpdisplayshell-render.c
(render_image_tile_fault_nearest): added code for 1 and 3 bytes
per pixel. Fixes bug #504115.
2007-12-16 Bill Skaggs <weskaggs@primate.udavis.edu>
* plug-ins/common/edge.c: reverted to state pre-12/16.

View File

@ -392,14 +392,14 @@ static void
gimp_display_shell_render_mask (GimpDisplayShell *shell,
RenderInfo *info)
{
gint y, ye;
gint x, xe;
gint y, ye;
gint x, xe;
y = info->y;
ye = info->y + info->h;
xe = info->x + info->w;
info->dy = info->dy_start;
info->dy = info->dy_start;
info->src = render_image_tile_fault (info);
while (TRUE)
@ -778,7 +778,7 @@ box_filter_premult (const guint left_weight,
}
}
/* fast paths */
static const guchar * render_image_tile_fault_one_row (RenderInfo *info);
static const guchar * render_image_tile_fault_nearest (RenderInfo *info);
@ -1584,9 +1584,11 @@ render_image_tile_fault_nearest (RenderInfo *info)
{
case 4:
*d++ = *s++;
case 3:
*d++ = *s++;
case 2:
*d++ = *s++;
case 1:
*d++ = *s++;
}
}
@ -1604,6 +1606,12 @@ render_image_tile_fault_nearest (RenderInfo *info)
s += 4;
break;
case 3:
*d++ = *s++;
*d++ = *s++;
*d++ = *s++;
break;
case 2:
d[0] = (s[0] * (s[1] + 1)) >> 8;
d[1] = s[1];
@ -1611,6 +1619,10 @@ render_image_tile_fault_nearest (RenderInfo *info)
d += 2;
s += 2;
break;
case 1:
*d++ = *s++;
break;
}
}