From 006344401cfaedda64387fd59c1626b71cb178d6 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sun, 15 Aug 2004 19:06:24 +0000 Subject: [project @ 2004-08-15 19:06:23 by jmb] Rationalise image redraw. Supply background colour when redrawing contents Reenable printing of background images Require Tinct 0.07 svn path=/import/netsurf/; revision=1234 --- riscos/sprite.c | 55 +++++-------------------------------------------------- 1 file changed, 5 insertions(+), 50 deletions(-) (limited to 'riscos/sprite.c') diff --git a/riscos/sprite.c b/riscos/sprite.c index b994cbef7..f4a187f1d 100644 --- a/riscos/sprite.c +++ b/riscos/sprite.c @@ -12,6 +12,7 @@ #include "oslib/osspriteop.h" #include "netsurf/utils/config.h" #include "netsurf/content/content.h" +#include "netsurf/riscos/image.h" #include "netsurf/riscos/sprite.h" #include "netsurf/utils/log.h" #include "netsurf/utils/messages.h" @@ -100,56 +101,10 @@ void sprite_destroy(struct content *c) bool sprite_redraw(struct content *c, int x, int y, int width, int height, int clip_x0, int clip_y0, int clip_x1, int clip_y1, - float scale) + float scale, unsigned long background_colour) { - unsigned int size; - osspriteop_area *area = (osspriteop_area*)c->data.sprite.data; - osspriteop_trans_tab *table; - os_factors factors; - os_error *error; - - error = xcolourtrans_generate_table_for_sprite( - area, - (osspriteop_id)((char*)(c->data.sprite.data) + - area->first), - colourtrans_CURRENT_MODE, colourtrans_CURRENT_PALETTE, - 0, colourtrans_GIVEN_SPRITE, 0, 0, &size); - if (error) { - LOG(("xcolourtrans_generate_table_for_sprite: 0x%x: %s", error->errnum, error->errmess)); - return false; - } - table = xcalloc(size, 1); - error = xcolourtrans_generate_table_for_sprite( - area, - (osspriteop_id)((char*)(c->data.sprite.data) + - area->first), - colourtrans_CURRENT_MODE, colourtrans_CURRENT_PALETTE, - table, colourtrans_GIVEN_SPRITE, 0, 0, 0); - if (error) { - LOG(("xcolourtrans_generate_table_for_sprite: 0x%x: %s", error->errnum, error->errmess)); - free(table); - return false; - } - - factors.xmul = width; - factors.ymul = height; - factors.xdiv = c->width * 2; - factors.ydiv = c->height * 2; - - error = xosspriteop_put_sprite_scaled(osspriteop_PTR, - area, - (osspriteop_id)((char*)(c->data.sprite.data) + - area->first), - x, (int)(y - height), - osspriteop_USE_MASK | osspriteop_USE_PALETTE, &factors, table); - if (error) { - LOG(("xosspriteop_put_sprite_scaled: 0x%x: %s", error->errnum, error->errmess)); - free(table); - return false; - } - - xfree(table); - - return true; + return image_redraw(c->data.sprite.data, x, y, width, height, + c->width * 2, c->height * 2, background_colour, + false, false, IMAGE_PLOT_OS); } #endif -- cgit v1.2.3