summaryrefslogtreecommitdiff
path: root/riscos
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2003-09-12 19:51:17 +0000
committerJames Bursa <james@netsurf-browser.org>2003-09-12 19:51:17 +0000
commit83f6cd25ab339588c3c438b45ef814d515f3addd (patch)
treec2f2676a49aa5a510bed44beb97e121799dbd333 /riscos
parent72c753c5823cb5b4bed3129722284143215ec32c (diff)
downloadnetsurf-83f6cd25ab339588c3c438b45ef814d515f3addd.tar.gz
netsurf-83f6cd25ab339588c3c438b45ef814d515f3addd.tar.bz2
[project @ 2003-09-12 19:51:17 by bursa]
Display sprites with extension areas, fix some warnings. svn path=/import/netsurf/; revision=289
Diffstat (limited to 'riscos')
-rw-r--r--riscos/sprite.c20
-rw-r--r--riscos/sprite.h2
2 files changed, 12 insertions, 10 deletions
diff --git a/riscos/sprite.c b/riscos/sprite.c
index 4d59334f5..4168b2869 100644
--- a/riscos/sprite.c
+++ b/riscos/sprite.c
@@ -35,13 +35,14 @@ int sprite_convert(struct content *c, unsigned int width, unsigned int height)
{
os_error *error;
int w, h;
+ osspriteop_area *area = c->data.sprite.data;
/* fill in the size (first word) of the area */
- memcpy(c->data.sprite.data, (char*)&c->data.sprite.length, 4);
+ area->size = c->data.sprite.length;
error = xosspriteop_read_sprite_info(osspriteop_PTR,
- (osspriteop_area*)(c->data.sprite.data),
- (osspriteop_id)((osspriteop_area*)c->data.sprite.data + 1),
+ area,
+ (osspriteop_id)(c->data.sprite.data + area->first),
&w, &h, NULL, NULL);
if (error) {
@@ -81,18 +82,19 @@ void sprite_redraw(struct content *c, long x, long y,
long clip_x0, long clip_y0, long clip_x1, long clip_y1)
{
unsigned int size;
+ osspriteop_area *area = c->data.sprite.data;
osspriteop_trans_tab *table;
os_factors factors;
xcolourtrans_generate_table_for_sprite(
- (osspriteop_area*)(c->data.sprite.data),
- (osspriteop_id) ((osspriteop_area*)c->data.sprite.data + 1),
+ area,
+ (osspriteop_id)(c->data.sprite.data + area->first),
colourtrans_CURRENT_MODE, colourtrans_CURRENT_PALETTE,
0, colourtrans_GIVEN_SPRITE, 0, 0, &size);
table = xcalloc(size, 1);
xcolourtrans_generate_table_for_sprite(
- (osspriteop_area*)(c->data.sprite.data),
- (osspriteop_id) ((osspriteop_area*)c->data.sprite.data + 1),
+ area,
+ (osspriteop_id)(c->data.sprite.data + area->first),
colourtrans_CURRENT_MODE, colourtrans_CURRENT_PALETTE,
table, colourtrans_GIVEN_SPRITE, 0, 0, 0);
@@ -102,8 +104,8 @@ void sprite_redraw(struct content *c, long x, long y,
factors.ydiv = c->height * 2;
xosspriteop_put_sprite_scaled(osspriteop_PTR,
- (osspriteop_area*)(c->data.sprite.data),
- (osspriteop_id) ((osspriteop_area*)c->data.sprite.data + 1),
+ area,
+ (osspriteop_id)(c->data.sprite.data + area->first),
x, y - height,
osspriteop_USE_MASK | osspriteop_USE_PALETTE, &factors, table);
diff --git a/riscos/sprite.h b/riscos/sprite.h
index 64cfc0888..d917c3c6f 100644
--- a/riscos/sprite.h
+++ b/riscos/sprite.h
@@ -13,7 +13,7 @@
struct content;
struct content_sprite_data {
- void* data;
+ char *data;
unsigned long length;
};