summaryrefslogtreecommitdiff
path: root/riscos/sprite.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2004-08-11 16:26:13 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2004-08-11 16:26:13 +0000
commit912d09b1cb54de90d88d4f804e3552f55c682986 (patch)
tree6a1c5ac5ef02de8ca23e8f8ca0ae7860e4560ee0 /riscos/sprite.c
parentc682f9a5eae034cdbad984bb708e600952c61198 (diff)
downloadnetsurf-912d09b1cb54de90d88d4f804e3552f55c682986.tar.gz
netsurf-912d09b1cb54de90d88d4f804e3552f55c682986.tar.bz2
[project @ 2004-08-11 16:26:13 by jmb]
Make content_redraw return a bool Printing of foreground images now uses OS_SpriteOp Printing of background images disabled Mega-paranoid SWI result checking in htmlredraw.c Rearranged GIF data structure slightly - updates to reflect this. Other stuff I've probably forgotten svn path=/import/netsurf/; revision=1208
Diffstat (limited to 'riscos/sprite.c')
-rw-r--r--riscos/sprite.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/riscos/sprite.c b/riscos/sprite.c
index b5c5f64bb..b994cbef7 100644
--- a/riscos/sprite.c
+++ b/riscos/sprite.c
@@ -97,7 +97,7 @@ void sprite_destroy(struct content *c)
}
-void sprite_redraw(struct content *c, int x, int y,
+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)
@@ -106,33 +106,50 @@ void sprite_redraw(struct content *c, int x, int y,
osspriteop_area *area = (osspriteop_area*)c->data.sprite.data;
osspriteop_trans_tab *table;
os_factors factors;
+ os_error *error;
- xcolourtrans_generate_table_for_sprite(
+ 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);
- xcolourtrans_generate_table_for_sprite(
+ 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;
- xosspriteop_put_sprite_scaled(osspriteop_PTR,
+ 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;
}
#endif