summaryrefslogtreecommitdiff
path: root/riscos
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2004-09-03 22:44:48 +0000
committerJames Bursa <james@netsurf-browser.org>2004-09-03 22:44:48 +0000
commit3371a27391e828c6417e6d805572cf261b138785 (patch)
treef016defaa63ffc6e78e95d607cda00246df83206 /riscos
parentfb5082605cc100b493717bce25cb6bf6123e03d0 (diff)
downloadnetsurf-3371a27391e828c6417e6d805572cf261b138785.tar.gz
netsurf-3371a27391e828c6417e6d805572cf261b138785.tar.bz2
[project @ 2004-09-03 22:44:47 by bursa]
Add generic bitmap functions. Move jpeg and mng code from riscos/ to image/ and update to use bitmap. Note: background tiling and drawfile export for jpeg and mng/png are broken. svn path=/import/netsurf/; revision=1265
Diffstat (limited to 'riscos')
-rw-r--r--riscos/gui.h3
-rw-r--r--riscos/htmlredraw.c14
-rw-r--r--riscos/jpeg.c252
-rw-r--r--riscos/jpeg.h27
-rw-r--r--riscos/mng.c463
-rw-r--r--riscos/mng.h33
-rw-r--r--riscos/save.c8
-rw-r--r--riscos/save_draw.c13
8 files changed, 18 insertions, 795 deletions
diff --git a/riscos/gui.h b/riscos/gui.h
index 5c9c0c653..f3457ce8f 100644
--- a/riscos/gui.h
+++ b/riscos/gui.h
@@ -230,9 +230,6 @@ int ro_content_filetype(struct content *content);
/* in schedule.c */
extern bool sched_active;
extern os_t sched_time;
-void schedule(int t, void (*callback)(void *p), void *p);
-void schedule_remove(void (*callback)(void *p), void *p);
-void schedule_run(void);
/* in debugwin.c */
void ro_gui_debugwin_open(void);
diff --git a/riscos/htmlredraw.c b/riscos/htmlredraw.c
index 2a29d8eca..20d50fb5f 100644
--- a/riscos/htmlredraw.c
+++ b/riscos/htmlredraw.c
@@ -1010,30 +1010,30 @@ bool html_redraw_background(int xi, int yi, int width, int height,
/* and plot the image */
switch (box->background->type) {
#ifdef WITH_PNG
- case CONTENT_PNG:
+ case CONTENT_PNG:/*
image_redraw(box->background->data.png.sprite_area,
x, y, image_width, image_height,
box->background->width * 2,
box->background->height * 2,
background_colour,
repeat_x, repeat_y,
- IMAGE_PLOT_TINCT_ALPHA);
- break;
+ IMAGE_PLOT_TINCT_ALPHA);*/
+ break;
#endif
#ifdef WITH_MNG
case CONTENT_JNG:
case CONTENT_MNG:
- image_redraw(box->background->data.mng.sprite_area,
+ /*image_redraw(box->background->data.mng.sprite_area,
x, y, image_width, image_height,
box->background->width * 2,
box->background->height * 2,
background_colour,
repeat_x, repeat_y,
- IMAGE_PLOT_TINCT_ALPHA);
+ IMAGE_PLOT_TINCT_ALPHA);*/
break;
#endif
#ifdef WITH_JPEG
- case CONTENT_JPEG:
+ case CONTENT_JPEG:/*
image_redraw(box->background->data.jpeg.sprite_area,
x, y, image_width, image_height,
box->background->width * 2,
@@ -1041,7 +1041,7 @@ bool html_redraw_background(int xi, int yi, int width, int height,
background_colour,
repeat_x, repeat_y,
IMAGE_PLOT_TINCT_OPAQUE);
- break;
+ */break;
#endif
#ifdef WITH_GIF
case CONTENT_GIF:
diff --git a/riscos/jpeg.c b/riscos/jpeg.c
deleted file mode 100644
index b355be37b..000000000
--- a/riscos/jpeg.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * This file is part of NetSurf, http://netsurf.sourceforge.net/
- * Licensed under the GNU General Public License,
- * http://www.opensource.org/licenses/gpl-license
- * Copyright 2004 James Bursa <bursa@users.sourceforge.net>
- * Copyright 2004 John M Bell <jmb202@ecs.soton.ac.uk>
- */
-
-/** \file
- * Content for image/jpeg (implementation).
- *
- * This implementation uses the IJG JPEG library.
- */
-
-#include <assert.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#define JPEG_INTERNAL_OPTIONS
-#include "libjpeg/jpeglib.h"
-#include "oslib/osspriteop.h"
-#include "netsurf/utils/config.h"
-#include "netsurf/content/content.h"
-#include "netsurf/riscos/gui.h"
-#include "netsurf/riscos/image.h"
-#include "netsurf/riscos/jpeg.h"
-#include "netsurf/riscos/options.h"
-#include "netsurf/utils/log.h"
-#include "netsurf/utils/messages.h"
-#include "netsurf/utils/utils.h"
-
-
-/* We require a the library to be configured with these options to save
- * copying data during decoding. */
-#if RGB_RED != 0 || RGB_GREEN != 1 || RGB_BLUE != 2 || RGB_PIXELSIZE != 4
-#error JPEG library incorrectly configured.
-#endif
-
-
-static char nsjpeg_error_buffer[JMSG_LENGTH_MAX];
-
-
-struct nsjpeg_error_mgr {
- struct jpeg_error_mgr pub;
- jmp_buf setjmp_buffer;
-};
-
-
-static void nsjpeg_error_exit(j_common_ptr cinfo);
-static void nsjpeg_init_source(j_decompress_ptr cinfo);
-static boolean nsjpeg_fill_input_buffer(j_decompress_ptr cinfo);
-static void nsjpeg_skip_input_data(j_decompress_ptr cinfo, long num_bytes);
-static void nsjpeg_term_source(j_decompress_ptr cinfo);
-
-
-/**
- * Create a CONTENT_JPEG.
- */
-
-bool nsjpeg_create(struct content *c, const char *params[])
-{
- c->data.jpeg.sprite_area = 0;
- return true;
-}
-
-
-/**
- * Convert a CONTENT_JPEG for display.
- */
-
-bool nsjpeg_convert(struct content *c, int w, int h)
-{
- struct jpeg_decompress_struct cinfo;
- struct nsjpeg_error_mgr jerr;
- struct jpeg_source_mgr source_mgr = { 0, 0,
- nsjpeg_init_source, nsjpeg_fill_input_buffer,
- nsjpeg_skip_input_data, jpeg_resync_to_restart,
- nsjpeg_term_source };
- unsigned int height;
- unsigned int width;
- unsigned int area_size;
- osspriteop_area *sprite_area = 0;
- osspriteop_header *sprite;
- union content_msg_data msg_data;
-
- cinfo.err = jpeg_std_error(&jerr.pub);
- jerr.pub.error_exit = nsjpeg_error_exit;
- if (setjmp(jerr.setjmp_buffer)) {
- jpeg_destroy_decompress(&cinfo);
- free(sprite_area);
-
- msg_data.error = nsjpeg_error_buffer;
- content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
- return false;
- }
- jpeg_create_decompress(&cinfo);
- source_mgr.next_input_byte = c->source_data;
- source_mgr.bytes_in_buffer = c->source_size;
- cinfo.src = &source_mgr;
- jpeg_read_header(&cinfo, TRUE);
- cinfo.out_color_space = JCS_RGB;
- cinfo.dct_method = JDCT_ISLOW;
- jpeg_start_decompress(&cinfo);
-
- width = cinfo.output_width;
- height = cinfo.output_height;
-
- area_size = 16 + 44 + width * height * 4;
- sprite_area = malloc(area_size);
- if (!sprite_area) {
- LOG(("malloc failed"));
- jpeg_destroy_decompress(&cinfo);
-
- msg_data.error = messages_get("NoMemory");
- content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
- warn_user("NoMemory", 0);
- return false;
- }
-
- /* area control block */
- sprite_area->size = area_size;
- sprite_area->sprite_count = 1;
- sprite_area->first = 16;
- sprite_area->used = area_size;
-
- /* sprite control block */
- sprite = (osspriteop_header *) (sprite_area + 1);
- sprite->size = area_size - 16;
- memset(sprite->name, 0x00, 12);
- strncpy(sprite->name, "jpeg", 12);
- sprite->width = width - 1;
- sprite->height = height - 1;
- sprite->left_bit = 0;
- sprite->right_bit = 31;
- sprite->image = sprite->mask = 44;
- sprite->mode = (os_mode) 0x301680b5;
-
- do {
- JSAMPROW scanlines[1];
- scanlines[0] = (JSAMPROW) ((char *) sprite + 44 +
- width * cinfo.output_scanline * 4);
- jpeg_read_scanlines(&cinfo, scanlines, 1);
- } while (cinfo.output_scanline != cinfo.output_height);
-
- jpeg_finish_decompress(&cinfo);
- jpeg_destroy_decompress(&cinfo);
-
- /*xosspriteop_save_sprite_file(osspriteop_USER_AREA,
- sprite_area, "jpeg");*/
-
- c->width = width;
- c->height = height;
- c->data.jpeg.sprite_area = sprite_area;
- c->title = malloc(100);
- if (c->title)
- snprintf(c->title, 100, messages_get("JPEGTitle"),
- width, height, c->source_size);
- c->size += area_size + 100;
- c->status = CONTENT_STATUS_DONE;
- return true;
-}
-
-
-/**
- * Fatal error handler for JPEG library.
- *
- * This prevents jpeglib calling exit() on a fatal error.
- */
-
-void nsjpeg_error_exit(j_common_ptr cinfo)
-{
- struct nsjpeg_error_mgr *err = (struct nsjpeg_error_mgr *) cinfo->err;
- err->pub.format_message(cinfo, nsjpeg_error_buffer);
- longjmp(err->setjmp_buffer, 1);
-}
-
-
-/**
- * JPEG data source manager: initialize source.
- */
-
-void nsjpeg_init_source(j_decompress_ptr cinfo)
-{
-}
-
-
-static char nsjpeg_eoi[] = { 0xff, JPEG_EOI };
-
-/**
- * JPEG data source manager: fill the input buffer.
- *
- * This can only occur if the JPEG data was truncated or corrupted. Insert a
- * fake EOI marker to allow the decompressor to output as much as possible.
- */
-
-boolean nsjpeg_fill_input_buffer(j_decompress_ptr cinfo)
-{
- cinfo->src->next_input_byte = nsjpeg_eoi;
- cinfo->src->bytes_in_buffer = 2;
- return TRUE;
-}
-
-
-/**
- * JPEG data source manager: skip num_bytes worth of data.
- */
-
-void nsjpeg_skip_input_data(j_decompress_ptr cinfo, long num_bytes)
-{
- if ((long) cinfo->src->bytes_in_buffer < num_bytes) {
- cinfo->src->next_input_byte = 0;
- cinfo->src->bytes_in_buffer = 0;
- } else {
- cinfo->src->next_input_byte += num_bytes;
- cinfo->src->bytes_in_buffer -= num_bytes;
- }
-}
-
-
-/**
- * JPEG data source manager: terminate source.
- */
-
-void nsjpeg_term_source(j_decompress_ptr cinfo)
-{
-}
-
-
-/**
- * Destroy a CONTENT_JPEG and free all resources it owns.
- */
-
-void nsjpeg_destroy(struct content *c)
-{
- free(c->data.jpeg.sprite_area);
- free(c->title);
-}
-
-
-/**
- * Redraw a CONTENT_JPEG.
- */
-
-bool nsjpeg_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, unsigned long background_colour)
-{
- return image_redraw(c->data.jpeg.sprite_area, x, y, width, height,
- c->width * 2, c->height *2, background_colour,
- false, false, IMAGE_PLOT_TINCT_OPAQUE);
-}
diff --git a/riscos/jpeg.h b/riscos/jpeg.h
deleted file mode 100644
index 90c7492a5..000000000
--- a/riscos/jpeg.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * This file is part of NetSurf, http://netsurf.sourceforge.net/
- * Licensed under the GNU General Public License,
- * http://www.opensource.org/licenses/gpl-license
- * Copyright 2004 James Bursa <bursa@users.sourceforge.net>
- */
-
-#ifndef _NETSURF_RISCOS_JPEG_H_
-#define _NETSURF_RISCOS_JPEG_H_
-
-#include "oslib/osspriteop.h"
-
-struct content;
-
-struct content_jpeg_data {
- osspriteop_area *sprite_area;
-};
-
-bool nsjpeg_create(struct content *c, const char *params[]);
-bool nsjpeg_convert(struct content *c, int width, int height);
-void nsjpeg_destroy(struct content *c);
-bool nsjpeg_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, unsigned long background_colour);
-
-#endif
diff --git a/riscos/mng.c b/riscos/mng.c
deleted file mode 100644
index 9326c7da6..000000000
--- a/riscos/mng.c
+++ /dev/null
@@ -1,463 +0,0 @@
-/*
- * This file is part of NetSurf, http://netsurf.sourceforge.net/
- * Licensed under the GNU General Public License,
- * http://www.opensource.org/licenses/gpl-license
- * Copyright 2004 Richard Wilson <not_ginger_matt@users.sourceforge.net>
- */
-
-#include <assert.h>
-#include <stdbool.h>
-#include <string.h>
-#include <stdlib.h>
-#include "libmng/libmng.h"
-#include "oslib/os.h"
-#include "oslib/osspriteop.h"
-#include "netsurf/utils/config.h"
-#include "netsurf/content/content.h"
-#include "netsurf/riscos/gui.h"
-#include "netsurf/riscos/image.h"
-#include "netsurf/riscos/mng.h"
-#include "netsurf/riscos/options.h"
-#include "netsurf/riscos/wimp.h"
-#include "netsurf/utils/log.h"
-#include "netsurf/utils/messages.h"
-#include "netsurf/utils/utils.h"
-
-#ifdef WITH_MNG
-
-/* We do not currently support any form of colour/gamma correction, nor do
- we support dynamic MNGs.
-*/
-
-
-static mng_bool nsmng_openstream(mng_handle mng);
-static mng_bool nsmng_readdata(mng_handle mng, mng_ptr buffer, mng_uint32 size, mng_uint32 *bytesread);
-static mng_bool nsmng_closestream(mng_handle mng);
-static mng_bool nsmng_processheader(mng_handle mng, mng_uint32 width, mng_uint32 height);
-static mng_ptr nsmng_getcanvasline(mng_handle mng, mng_uint32 line);
-static mng_uint32 nsmng_gettickcount(mng_handle mng);
-static mng_bool nsmng_refresh(mng_handle mng, mng_uint32 x, mng_uint32 y, mng_uint32 w, mng_uint32 h);
-static mng_bool nsmng_settimer(mng_handle mng, mng_uint32 msecs);
-static void nsmng_animate(void *p);
-static bool nsmng_broadcast_error(struct content *c);
-static mng_bool nsmng_trace(mng_handle mng, mng_int32 iFunNr, mng_int32 iFuncseq, mng_pchar zFuncname);
-static mng_bool nsmng_errorproc(mng_handle mng, mng_int32 code,
- mng_int8 severity, mng_chunkid chunktype, mng_uint32 chunkseq,
- mng_int32 extra1, mng_int32 extra2, mng_pchar text);
-
-bool nsmng_create(struct content *c, const char *params[]) {
-
- /* Initialise the library (libmng is compiled with MNG_INTERNAL_MEMMNGMT)
- */
- c->data.mng.sprite_area = NULL;
- c->data.mng.handle = mng_initialize(c, MNG_NULL, MNG_NULL, MNG_NULL);
- if (c->data.mng.handle == MNG_NULL) {
- LOG(("Unable to initialise MNG library."));
- return nsmng_broadcast_error(c);
- }
-
- /* We need to decode in suspension mode
- */
- if (mng_set_suspensionmode(c->data.mng.handle, MNG_TRUE) != MNG_NOERROR) {
- LOG(("Unable to set suspension mode."));
- return nsmng_broadcast_error(c);
- }
-
- /* We need to register our callbacks
- */
- if (mng_setcb_openstream(c->data.mng.handle, nsmng_openstream) != MNG_NOERROR) {
- LOG(("Unable to set openstream callback."));
- return nsmng_broadcast_error(c);
- }
- if (mng_setcb_readdata(c->data.mng.handle, nsmng_readdata) != MNG_NOERROR) {
- LOG(("Unable to set readdata callback."));
- return nsmng_broadcast_error(c);
- }
- if (mng_setcb_closestream(c->data.mng.handle, nsmng_closestream) != MNG_NOERROR) {
- LOG(("Unable to set closestream callback."));
- return nsmng_broadcast_error(c);
- }
- if (mng_setcb_processheader(c->data.mng.handle, nsmng_processheader) != MNG_NOERROR) {
- LOG(("Unable to set processheader callback."));
- return nsmng_broadcast_error(c);
- }
-
- /* Register our callbacks for displaying
- */
- if (mng_setcb_getcanvasline(c->data.mng.handle, nsmng_getcanvasline) != MNG_NOERROR) {
- LOG(("Unable to set getcanvasline callback."));
- return nsmng_broadcast_error(c);
- }
- if (mng_setcb_refresh(c->data.mng.handle, nsmng_refresh) != MNG_NOERROR) {
- LOG(("Unable to set refresh callback."));
- return nsmng_broadcast_error(c);
- }
- if (mng_setcb_gettickcount(c->data.mng.handle, nsmng_gettickcount) != MNG_NOERROR) {
- LOG(("Unable to set gettickcount callback."));
- return nsmng_broadcast_error(c);
- }
- if (mng_setcb_settimer(c->data.mng.handle, nsmng_settimer) != MNG_NOERROR) {
- LOG(("Unable to set settimer callback."));
- return nsmng_broadcast_error(c);
- }
-
- /* register error handling function */
- if (mng_setcb_errorproc(c->data.mng.handle, nsmng_errorproc) != MNG_NOERROR) {
- LOG(("Unable to set errorproc"));
- return nsmng_broadcast_error(c);
- }
-
- /* Initialise the reading
- */
- c->data.mng.read_start = true;
- c->data.mng.read_resume = false;
- c->data.mng.read_size = 0;
- c->data.mng.waiting = false;
- return true;
-}
-
-
-/* START OF CALLBACKS REQUIRED FOR READING
-*/
-
-
-mng_bool nsmng_openstream(mng_handle mng) {
- return MNG_TRUE;
-}
-
-mng_bool nsmng_readdata(mng_handle mng, mng_ptr buffer, mng_uint32 size, mng_uint32 *bytesread) {
- struct content *c;
-
- /* Get our content back
- */
- c = (struct content *)mng_get_userdata(mng);
-
- /* Copy any data we have (maximum of 'size')
- */
- *bytesread = ((c->source_size - c->data.mng.read_size) < size) ?
- (c->source_size - c->data.mng.read_size) : size;
-
- LOG(("Read %d, processing %p", *bytesread, mng));
-
- if ((*bytesread) > 0) {
- memcpy(buffer, c->source_data + c->data.mng.read_size, *bytesread);
- c->data.mng.read_size += *bytesread;
- }
-
- /* Return success
- */
- return MNG_TRUE;
-}
-
-mng_bool nsmng_closestream(mng_handle mng) {
- return MNG_TRUE;
-}
-
-mng_bool nsmng_processheader(mng_handle mng, mng_uint32 width, mng_uint32 height) {
- struct content *c;
- int sprite_size;
- osspriteop_area *sprite_area;
- osspriteop_header *sprite_header;
- union content_msg_data msg_data;
-
- /* This function is called when the header has been read and we know
- the dimensions of the canvas.
- */
- c = (struct content *)mng_get_userdata(mng);
- sprite_size = width * height * 4 + sizeof(osspriteop_header) + sizeof(osspriteop_area);
- c->data.mng.sprite_area = (osspriteop_area *)malloc(sprite_size);
- if (!(c->data.mng.sprite_area)) {
- msg_data.error = messages_get("NoMemory");
- content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
- LOG(("Insufficient memory to create canvas."));
- return MNG_FALSE;
- }
-
- /* Initialise the content size
- */
- c->width = width;
- c->height = height;
-
- /* Initialise the sprite area
- */
- sprite_area = c->data.mng.sprite_area;
- sprite_area->size = sprite_size;
- sprite_area->sprite_count = 1;
- sprite_area->first = sizeof(osspriteop_area);
- sprite_area->used = sprite_size;
-
- /* Initialise the sprite header
- */
- sprite_header = (osspriteop_header *)(sprite_area + 1);
- sprite_header->size = sprite_size - sizeof(osspriteop_area);
- memset(sprite_header->name, 0x00, 12);
- strcpy(sprite_header->name, "mng");
- sprite_header->width = width - 1;
- sprite_header->height = height - 1;
- sprite_header->left_bit = 0;
- sprite_header->right_bit = 31;
- sprite_header->mask = sprite_header->image = sizeof(osspriteop_header);
- sprite_header->mode = (os_mode) 0x301680b5;
-
- /* Set the canvas style
- */
- if (mng_set_canvasstyle(mng, MNG_CANVAS_RGBA8) != MNG_NOERROR) {
- LOG(("Error setting canvas style."));
- }
-
- /* Return success
- */
- return MNG_TRUE;
-}
-
-
-/* END OF CALLBACKS REQUIRED FOR READING
-*/
-
-
-bool nsmng_process_data(struct content *c, char *data, unsigned int size) {
- mng_retcode status;
-
- /* We only need to do any processing if we're starting/resuming reading.
- */
- if ((!c->data.mng.read_resume) && (!c->data.mng.read_start)) return true;
-
- /* Try to start processing, or process some more data
- */
- if (c->data.mng.read_start) {
- status = mng_read(c->data.mng.handle);
- c->data.mng.read_start = false;
- } else {
- status = mng_read_resume(c->data.mng.handle);
- }
- c->data.mng.read_resume = (status == MNG_NEEDMOREDATA);
- if ((status != MNG_NOERROR) && (status != MNG_NEEDMOREDATA)) {
- LOG(("Failed to start/continue reading (%i).", status));
- return nsmng_broadcast_error(c);
- }
-
- /* Continue onwards
- */
- return true;
-}
-
-
-bool nsmng_convert(struct content *c, int width, int height) {
- mng_retcode status;
-
- LOG(("Converting"));
-
- /* Set the title
- */
- c->title = malloc(100);
- if (c->title) {
- if (c->type == CONTENT_MNG) {
- snprintf(c->title, 100, messages_get("MNGTitle"),
- c->width, c->height, c->source_size);
- } else if (c->type == CONTENT_PNG) {
- snprintf(c->title, 100, messages_get("PNGTitle"),
- c->width, c->height, c->source_size);
- } else {
- snprintf(c->title, 100, messages_get("JNGTitle"),
- c->width, c->height, c->source_size);
- }
- }
- c->size += (c->width * c->height * 4) + sizeof(osspriteop_header) + sizeof(osspriteop_area) + 100;
- c->status = CONTENT_STATUS_DONE;
-
-
- /* Start displaying
- */
- status = mng_display(c->data.mng.handle);
- if ((status != MNG_NOERROR) && (status != MNG_NEEDTIMERWAIT)) {
- LOG(("Unable to start display (%i)", status));
- return nsmng_broadcast_error(c);
- }
- return true;
-}
-
-
-/* START OF CALLBACKS REQUIRED FOR DISPLAYING
-*/
-
-
-mng_ptr nsmng_getcanvasline(mng_handle mng, mng_uint32 line) {
- char *base;
- struct content *c;
-
- /* Get our content back
- */
- c = (struct content *)mng_get_userdata(mng);
-
- /* Calculate the address
- */
- base = ((char *) c->data.mng.sprite_area + c->data.mng.sprite_area->first);
- base += sizeof(osspriteop_header);
- return base + (c->width * 4) * line;
-}
-
-
-mng_uint32 nsmng_gettickcount(mng_handle mng) {
- os_t time;
-
- /* Get the time in centiseconds and return in milliseconds
- */
- xos_read_monotonic_time(&time);
- return (time * 10);
-}
-
-mng_bool nsmng_refresh(mng_handle mng, mng_uint32 x, mng_uint32 y, mng_uint32 w, mng_uint32 h) {
- union content_msg_data data;
- struct content *c;
-
- /* Get our content back
- */
- c = (struct content *)mng_get_userdata(mng);
-
- /* Set the minimum redraw area
- */
- data.redraw.x = x;
- data.redraw.y = y;
- data.redraw.width = w;
- data.redraw.height = h;
-
- /* Set the redraw area to the whole canvas to ensure that if we can redraw something
- to trigger animation later then we do
- */
-/* data.redraw.x = 0;
- data.redraw.y = 0;
- data.redraw.width = c->width;
- data.redraw.height = c->height;
-*/
- /* Always redraw everything
- */
- data.redraw.full_redraw = true;
-
- /* Set the object characteristics
- */
- data.redraw.object = c;
- data.redraw.object_x = 0;
- data.redraw.object_y = 0;
- data.redraw.object_width = c->width;
- data.redraw.object_height = c->height;
-
- content_broadcast(c, CONTENT_MSG_REDRAW, data);
- return MNG_TRUE;
-}
-
-mng_bool nsmng_settimer(mng_handle mng, mng_uint32 msecs) {
- struct content *c;
-
- /* Get our content back
- */
- c = (struct content *)mng_get_userdata(mng);
-
- /* Perform the scheduling
- */
- schedule(msecs / 10, nsmng_animate, c);
- return MNG_TRUE;
-}
-
-
-/* END OF CALLBACKS REQUIRED FOR DISPLAYING
-*/
-
-
-void nsmng_destroy(struct content *c) {
- /* Cleanup the MNG structure and release the canvas memory
- */
- schedule_remove(nsmng_animate, c);
- mng_cleanup(&c->data.mng.handle);
- if (c->data.mng.sprite_area) {
- free(c->data.mng.sprite_area);
- c->data.mng.sprite_area = NULL;
- }
- free(c->title);
-}
-
-
-bool nsmng_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, unsigned long background_colour)
-{
- bool ret;
-
- ret = image_redraw(c->data.mng.sprite_area, x, y, width, height,
- c->width * 2, c->height * 2, background_colour,
- false, false, IMAGE_PLOT_TINCT_ALPHA);
-
- /* Check if we need to restart the animation
- */
- if (c->data.mng.waiting) nsmng_animate(c);
-
- return ret;
-}
-
-/**
- * Animates to the next frame
- */
-void nsmng_animate(void *p) {
- struct content *c = p;
-
- /* If we used the last animation we advance, if not we try again later
- */
- if (c->user_list->next == NULL) {
- c->data.mng.waiting = true;
- } else {
- c->data.mng.waiting = false;
- mng_display_resume(c->data.mng.handle);
- }
-}
-
-
-
-/**
- * Broadcasts an error message and returns false
- *
- * \param c the content to broadcast for
- * \return false
- */
-bool nsmng_broadcast_error(struct content *c) {
- union content_msg_data msg_data;
- if (c->type == CONTENT_MNG) {
- msg_data.error = messages_get("MNGError");
- } else if (c->type == CONTENT_PNG) {
- msg_data.error = messages_get("PNGError");
- } else {
- msg_data.error = messages_get("JNGError");
- }
- content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
- return false;
-
-}
-
-mng_bool nsmng_trace(mng_handle mng, mng_int32 iFunNr, mng_int32 iFuncseq, mng_pchar zFuncname)
-{
- LOG(("In %s(%d,%d), processing: %p", zFuncname, iFunNr, iFuncseq, mng));
- return MNG_TRUE;
-}
-
-mng_bool nsmng_errorproc(mng_handle mng, mng_int32 code,
- mng_int8 severity,
- mng_chunkid chunktype, mng_uint32 chunkseq,
- mng_int32 extra1, mng_int32 extra2, mng_pchar text)
-{
- struct content *c;
- char chunk[5];
-
- c = (struct content *)mng_get_userdata(mng);
-
- chunk[0] = (char)((chunktype >> 24) & 0xFF);
- chunk[1] = (char)((chunktype >> 16) & 0xFF);
- chunk[2] = (char)((chunktype >> 8) & 0xFF);
- chunk[3] = (char)((chunktype ) & 0xFF);
- chunk[4] = '\0';
-
- LOG(("error playing '%s' chunk %s (%d):", c->url, chunk, chunkseq));
- LOG(("code %d severity %d extra1 %d extra2 %d text:'%s'", code,
- severity, extra1, extra2, text));
-
- return (0);
-}
-#endif
diff --git a/riscos/mng.h b/riscos/mng.h
deleted file mode 100644
index d5ba0ea2e..000000000
--- a/riscos/mng.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * This file is part of NetSurf, http://netsurf.sourceforge.net/
- * Licensed under the GNU General Public License,
- * http://www.opensource.org/licenses/gpl-license
- * Copyright 2004 Richard Wilson <not_ginger_matt@users.sourceforge.net>
- */
-
-#ifndef _NETSURF_RISCOS_MNG_H_
-#define _NETSURF_RISCOS_MNG_H_
-
-#include "libmng/libmng.h"
-#include "oslib/osspriteop.h"
-
-struct content;
-
-struct content_mng_data {
- bool read_start;
- bool read_resume;
- int read_size;
- bool waiting;
- mng_handle handle;
- osspriteop_area *sprite_area;
-};
-
-bool nsmng_create(struct content *c, const char *params[]);
-bool nsmng_process_data(struct content *c, char *data, unsigned int size);
-bool nsmng_convert(struct content *c, int width, int height);
-void nsmng_destroy(struct content *c);
-bool nsmng_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, unsigned long background_colour);
-#endif
diff --git a/riscos/save.c b/riscos/save.c
index 1fafee589..6b0c49e35 100644
--- a/riscos/save.c
+++ b/riscos/save.c
@@ -430,18 +430,18 @@ void ro_gui_save_object_native(struct content *c, char *path)
switch (c->type) {
#ifdef WITH_JPEG
case CONTENT_JPEG:
- error = xosspriteop_save_sprite_file(osspriteop_USER_AREA, c->data.jpeg.sprite_area, path);
+ bitmap_save(c->bitmap, path);
break;
#endif
#ifdef WITH_PNG
case CONTENT_PNG:
- error = xosspriteop_save_sprite_file(osspriteop_USER_AREA, c->data.png.sprite_area, path);
- break;
+/* error = xosspriteop_save_sprite_file(osspriteop_USER_AREA, c->data.png.sprite_area, path);
+ break;*/
#endif
#ifdef WITH_MNG
case CONTENT_JNG:
case CONTENT_MNG:
- error = xosspriteop_save_sprite_file(osspriteop_USER_AREA, c->data.mng.sprite_area, path);
+ bitmap_save(c->bitmap, path);
break;
#endif
#ifdef WITH_GIF
diff --git a/riscos/save_draw.c b/riscos/save_draw.c
index 469d5a3d5..e00ad3350 100644
--- a/riscos/save_draw.c
+++ b/riscos/save_draw.c
@@ -703,17 +703,18 @@ static bool add_graphic(struct content *content, struct box *box,
/* cast-tastic... */
switch (content->type) {
case CONTENT_JPEG:
- sprite_length = ((osspriteop_header*)((char*)content->data.jpeg.sprite_area+content->data.jpeg.sprite_area->first))->size;
+ return true;
+ /*sprite_length = ((osspriteop_header*)((char*)content->data.jpeg.sprite_area+content->data.jpeg.sprite_area->first))->size;*/
break;
#ifdef WITH_PNG
case CONTENT_PNG:
- sprite_length = ((osspriteop_header*)((char*)content->data.png.sprite_area+content->data.png.sprite_area->first))->size;
+ /*sprite_length = ((osspriteop_header*)((char*)content->data.png.sprite_area+content->data.png.sprite_area->first))->size;*/
break;
#endif
#ifdef WITH_MNG
case CONTENT_JNG:
case CONTENT_MNG:
- sprite_length = ((osspriteop_header*)((char*)content->data.mng.sprite_area+content->data.mng.sprite_area->first))->size;
+ /*sprite_length = ((osspriteop_header*)((char*)content->data.mng.sprite_area+content->data.mng.sprite_area->first))->size;*/
break;
#endif
case CONTENT_GIF:
@@ -742,17 +743,17 @@ static bool add_graphic(struct content *content, struct box *box,
switch (content->type) {
case CONTENT_JPEG:
- memcpy((char*)ds+16, (char*)content->data.jpeg.sprite_area+content->data.jpeg.sprite_area->first, (unsigned)sprite_length);
+ /*memcpy((char*)ds+16, (char*)content->data.jpeg.sprite_area+content->data.jpeg.sprite_area->first, (unsigned)sprite_length);*/
break;
#ifdef WITH_PNG
case CONTENT_PNG:
- memcpy((char*)ds+16, (char*)content->data.png.sprite_area+content->data.png.sprite_area->first, (unsigned)sprite_length);
+ /*memcpy((char*)ds+16, (char*)content->data.png.sprite_area+content->data.png.sprite_area->first, (unsigned)sprite_length);*/
break;
#endif
#ifdef WITH_MNG
case CONTENT_JNG:
case CONTENT_MNG:
- memcpy((char*)ds+16, (char*)content->data.mng.sprite_area+content->data.mng.sprite_area->first, (unsigned)sprite_length);
+ /*memcpy((char*)ds+16, (char*)content->data.mng.sprite_area+content->data.mng.sprite_area->first, (unsigned)sprite_length);*/
break;
#endif
case CONTENT_GIF: