From 2dab078f21db7dec5a29079daf9a5f0a06a6e0bd Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Thu, 26 May 2016 23:01:03 +0100 Subject: move bitmap API header to core include directory --- content/content.c | 2 +- content/handlers/image/bitmap.h | 177 ----------------------------------- content/handlers/image/bmp.c | 2 +- content/handlers/image/gif.c | 2 +- content/handlers/image/ico.c | 2 +- content/handlers/image/image.c | 2 +- content/handlers/image/image_cache.c | 2 +- content/handlers/image/jpeg.c | 2 +- content/handlers/image/nssprite.c | 2 +- content/handlers/image/png.c | 2 +- content/handlers/image/rsvg.c | 2 +- content/urldb.c | 2 +- desktop/browser_history.c | 2 +- desktop/gui_factory.c | 2 +- desktop/knockout.c | 2 +- desktop/save_pdf.c | 2 +- desktop/treeview.c | 2 +- frontends/amiga/bitmap.c | 2 +- frontends/amiga/dt_anim.c | 2 +- frontends/amiga/dt_picture.c | 2 +- frontends/amiga/icon.c | 2 +- frontends/atari/bitmap.c | 2 +- frontends/atari/plot/plot.c | 2 +- frontends/beos/bitmap.cpp | 2 +- frontends/cocoa/apple_image.m | 2 +- frontends/cocoa/bitmap.m | 2 +- frontends/framebuffer/bitmap.c | 2 +- frontends/framebuffer/framebuffer.c | 2 +- frontends/gtk/bitmap.c | 2 +- frontends/monkey/bitmap.c | 2 +- frontends/riscos/bitmap.c | 2 +- frontends/riscos/save.c | 2 +- frontends/riscos/window.c | 2 +- frontends/windows/bitmap.c | 2 +- include/netsurf/bitmap.h | 177 +++++++++++++++++++++++++++++++++++ render/html.c | 2 +- render/html_redraw.c | 2 +- test/urldbtest.c | 2 +- 38 files changed, 213 insertions(+), 213 deletions(-) delete mode 100644 content/handlers/image/bitmap.h create mode 100644 include/netsurf/bitmap.h diff --git a/content/content.c b/content/content.c index 9b53a4971..ad130a550 100644 --- a/content/content.c +++ b/content/content.c @@ -33,7 +33,7 @@ #include "desktop/gui_internal.h" #include "desktop/browser.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "content/content_protected.h" #include "content/content_debug.h" #include "content/hlcache.h" diff --git a/content/handlers/image/bitmap.h b/content/handlers/image/bitmap.h deleted file mode 100644 index ef6c1b49b..000000000 --- a/content/handlers/image/bitmap.h +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright 2004 James Bursa - * - * This file is part of NetSurf, http://www.netsurf-browser.org/ - * - * NetSurf is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * NetSurf is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/** - * \file - * Generic bitmap handling interface. - * - * This interface wraps the native platform-specific image format, so that - * portable image convertors can be written. - * - * Bitmaps are required to be 32bpp with components in the order RR GG BB AA. - * - * For example, an opaque 1x1 pixel image would yield the following bitmap - * data: - * - * > Red : 0xff 0x00 0x00 0x00 - * > Green: 0x00 0xff 0x00 0x00 - * > Blue : 0x00 0x00 0xff 0x00 - * - * Any attempt to read pixels by casting bitmap data to uint32_t or similar - * will need to cater for the order of bytes in a word being different on - * big and little endian systems. To avoid confusion, it is recommended - * that pixel data is loaded as follows: - * - * uint32_t read_pixel(const uint8_t *bmp) - * { - * // red green blue alpha - * return bmp[0] | (bmp[1] << 8) | (bmp[2] << 16) | (bmp[3] << 24); - * } - * - * and *not* as follows: - * - * uint32_t read_pixel(const uint8_t *bmp) - * { - * return *((uint32_t *) bmp); - * } - */ - -#ifndef _NETSURF_IMAGE_BITMAP_H_ -#define _NETSURF_IMAGE_BITMAP_H_ - -#define BITMAP_NEW 0 -#define BITMAP_OPAQUE (1 << 0) /**< image is opaque */ -#define BITMAP_MODIFIED (1 << 1) /**< buffer has been modified */ -#define BITMAP_CLEAR_MEMORY (1 << 2) /**< memory should be wiped */ - -struct content; -struct bitmap; -struct hlcache_handle; - -/** - * Bitmap operations. - */ -struct gui_bitmap_table { - /* Mandantory entries */ - - /** - * Create a new bitmap. - * - * \param width width of image in pixels - * \param height width of image in pixels - * \param state The state to create the bitmap in. - * \return A bitmap structure or NULL on error. - */ - void *(*create)(int width, int height, unsigned int state); - - /** - * Destroy a bitmap. - * - * \param bitmap The bitmap to destroy. - */ - void (*destroy)(void *bitmap); - - /** - * Set the opacity of a bitmap. - * - * \param bitmap The bitmap to set opacity on. - * \param opaque The bitmap opacity to set. - */ - void (*set_opaque)(void *bitmap, bool opaque); - - /** - * Get the opacity of a bitmap. - * - * \param bitmap The bitmap to examine. - * \return The bitmap opacity. - */ - bool (*get_opaque)(void *bitmap); - - /** - * Test if a bitmap is opaque. - * - * \param bitmap The bitmap to examine. - * \return The bitmap opacity. - */ - bool (*test_opaque)(void *bitmap); - - /** - * Get the image buffer from a bitmap - * - * \param bitmap The bitmap to get the buffer from. - * \return The image buffer or NULL if there is none. - */ - unsigned char *(*get_buffer)(void *bitmap); - - /** - * Get the number of bytes per row of the image - * - * \param bitmap The bitmap - * \return The number of bytes for a row of the bitmap. - */ - size_t (*get_rowstride)(void *bitmap); - - /** - * Get the bitmap width - * - * \param bitmap The bitmap - * \return The bitmap width in pixels. - */ - int (*get_width)(void *bitmap); - - /** - * Get the bitmap height - * - * \param bitmap The bitmap - * \return The bitmap height in pixels. - */ - int (*get_height)(void *bitmap); - - /** - * The the *bytes* per pixel. - * - * \param bitmap The bitmap - */ - size_t (*get_bpp)(void *bitmap); - - /** - * Savde a bitmap to disc. - * - * \param bitmap The bitmap to save - * \param path The path to save the bitmap to. - * \param flags Flags affectin the save. - */ - bool (*save)(void *bitmap, const char *path, unsigned flags); - - /** - * Marks a bitmap as modified. - * - * \param bitmap The bitmap set as modified. - */ - void (*modified)(void *bitmap); - - /** - * Render content into a bitmap. - * - * \param bitmap The bitmap to render into. - * \param content The content to render. - */ - nserror (*render)(struct bitmap *bitmap, struct hlcache_handle *content); -}; - -#endif diff --git a/content/handlers/image/bmp.c b/content/handlers/image/bmp.c index f622f6cb0..e108b48ac 100644 --- a/content/handlers/image/bmp.c +++ b/content/handlers/image/bmp.c @@ -31,8 +31,8 @@ #include "content/content_protected.h" #include "desktop/gui_internal.h" #include "desktop/plotters.h" +#include "netsurf/bitmap.h" -#include "bitmap.h" #include "bmp.h" /** bmp context. */ diff --git a/content/handlers/image/gif.c b/content/handlers/image/gif.c index d8d968e7d..1167266a6 100644 --- a/content/handlers/image/gif.c +++ b/content/handlers/image/gif.c @@ -42,9 +42,9 @@ #include "content/content_protected.h" #include "desktop/gui_misc.h" #include "desktop/gui_internal.h" +#include "netsurf/bitmap.h" #include "image.h" -#include "bitmap.h" #include "gif.h" typedef struct nsgif_content { diff --git a/content/handlers/image/ico.c b/content/handlers/image/ico.c index d364fdff5..5ea29bfab 100644 --- a/content/handlers/image/ico.c +++ b/content/handlers/image/ico.c @@ -29,9 +29,9 @@ #include "utils/messages.h" #include "content/content_protected.h" #include "desktop/gui_internal.h" +#include "netsurf/bitmap.h" #include "image.h" -#include "bitmap.h" #include "ico.h" typedef struct nsico_content { diff --git a/content/handlers/image/image.c b/content/handlers/image/image.c index d1743697d..487b35bcd 100644 --- a/content/handlers/image/image.c +++ b/content/handlers/image/image.c @@ -25,8 +25,8 @@ #include "content/content.h" #include "desktop/plotters.h" #include "desktop/gui_internal.h" +#include "netsurf/bitmap.h" -#include "bitmap.h" #include "bmp.h" #include "gif.h" #include "ico.h" diff --git a/content/handlers/image/image_cache.c b/content/handlers/image/image_cache.c index 49370ad6e..52b3b344f 100644 --- a/content/handlers/image/image_cache.c +++ b/content/handlers/image/image_cache.c @@ -28,8 +28,8 @@ #include "content/content_protected.h" #include "desktop/gui_misc.h" #include "desktop/gui_internal.h" +#include "netsurf/bitmap.h" -#include "bitmap.h" #include "image_cache.h" #include "image.h" diff --git a/content/handlers/image/jpeg.c b/content/handlers/image/jpeg.c index b5eade306..179b8fc5b 100644 --- a/content/handlers/image/jpeg.c +++ b/content/handlers/image/jpeg.c @@ -32,9 +32,9 @@ #include "utils/messages.h" #include "content/content_protected.h" #include "desktop/gui_internal.h" +#include "netsurf/bitmap.h" #include "image_cache.h" -#include "bitmap.h" #define JPEG_INTERNAL_OPTIONS #include "jpeglib.h" diff --git a/content/handlers/image/nssprite.c b/content/handlers/image/nssprite.c index fd651e0b0..082bf9eb1 100644 --- a/content/handlers/image/nssprite.c +++ b/content/handlers/image/nssprite.c @@ -31,8 +31,8 @@ #include "content/content_protected.h" #include "desktop/gui_internal.h" #include "desktop/plotters.h" +#include "netsurf/bitmap.h" -#include "bitmap.h" #include "nssprite.h" typedef struct nssprite_content { diff --git a/content/handlers/image/png.c b/content/handlers/image/png.c index 4f6f17d58..04083d8a4 100644 --- a/content/handlers/image/png.c +++ b/content/handlers/image/png.c @@ -27,9 +27,9 @@ #include "utils/messages.h" #include "content/content_protected.h" #include "desktop/gui_internal.h" +#include "netsurf/bitmap.h" #include "image_cache.h" -#include "bitmap.h" #include "png.h" /* accommodate for old versions of libpng (beware security holes!) */ diff --git a/content/handlers/image/rsvg.c b/content/handlers/image/rsvg.c index bd773682f..dce1ea9fe 100644 --- a/content/handlers/image/rsvg.c +++ b/content/handlers/image/rsvg.c @@ -44,8 +44,8 @@ #include "content/content_protected.h" #include "desktop/plotters.h" #include "desktop/gui_internal.h" +#include "netsurf/bitmap.h" -#include "bitmap.h" #include "rsvg.h" typedef struct rsvg_content { diff --git a/content/urldb.c b/content/urldb.c index b11ec987e..5230438d6 100644 --- a/content/urldb.c +++ b/content/urldb.c @@ -104,7 +104,7 @@ #include "utils/utils.h" #include "utils/bloom.h" #include "utils/time.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "desktop/cookie_manager.h" #include "desktop/gui_internal.h" diff --git a/desktop/browser_history.c b/desktop/browser_history.c index b3d12d525..871cc3e4b 100644 --- a/desktop/browser_history.c +++ b/desktop/browser_history.c @@ -34,7 +34,7 @@ #include "content/content.h" #include "content/hlcache.h" #include "content/urldb.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "desktop/gui_layout.h" #include "desktop/gui_internal.h" diff --git a/desktop/gui_factory.c b/desktop/gui_factory.c index f43e1c9fd..07848ee02 100644 --- a/desktop/gui_factory.c +++ b/desktop/gui_factory.c @@ -23,7 +23,7 @@ #include "utils/config.h" #include "utils/errors.h" #include "utils/file.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "content/hlcache.h" #include "content/backing_store.h" diff --git a/desktop/knockout.c b/desktop/knockout.c index 22aac8693..a20ec28b7 100644 --- a/desktop/knockout.c +++ b/desktop/knockout.c @@ -69,7 +69,7 @@ #include "utils/utils.h" #include "utils/log.h" #include "utils/errors.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "content/content.h" #include "desktop/gui_internal.h" diff --git a/desktop/save_pdf.c b/desktop/save_pdf.c index 40082f23c..0c870b464 100644 --- a/desktop/save_pdf.c +++ b/desktop/save_pdf.c @@ -60,7 +60,7 @@ #include "utils/useragent.h" #include "content/hlcache.h" #include "utils/nsoption.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "desktop/plotters.h" #include "desktop/print.h" diff --git a/desktop/treeview.c b/desktop/treeview.c index c12ecd98e..ec2a513ca 100644 --- a/desktop/treeview.c +++ b/desktop/treeview.c @@ -23,7 +23,7 @@ */ #include "utils/log.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "content/hlcache.h" #include "content/handlers/css/utils.h" diff --git a/frontends/amiga/bitmap.c b/frontends/amiga/bitmap.c index 62a5fdf1b..cf342d8c7 100644 --- a/frontends/amiga/bitmap.c +++ b/frontends/amiga/bitmap.c @@ -50,7 +50,7 @@ #include "content/hlcache.h" #include "desktop/mouse.h" #include "desktop/gui_window.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "amiga/gui.h" #include "amiga/bitmap.h" diff --git a/frontends/amiga/dt_anim.c b/frontends/amiga/dt_anim.c index 824609985..fec707683 100644 --- a/frontends/amiga/dt_anim.c +++ b/frontends/amiga/dt_anim.c @@ -39,7 +39,7 @@ #include "utils/messages.h" #include "content/content_protected.h" #include "desktop/plotters.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "amiga/bitmap.h" #include "amiga/filetype.h" diff --git a/frontends/amiga/dt_picture.c b/frontends/amiga/dt_picture.c index 6d7d5aae8..aba089379 100644 --- a/frontends/amiga/dt_picture.c +++ b/frontends/amiga/dt_picture.c @@ -35,7 +35,7 @@ #include "utils/messages.h" #include "content/content_protected.h" #include "desktop/plotters.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "content/handlers/image/image_cache.h" #include "amiga/bitmap.h" diff --git a/frontends/amiga/icon.c b/frontends/amiga/icon.c index 816361283..819879d00 100644 --- a/frontends/amiga/icon.c +++ b/frontends/amiga/icon.c @@ -42,7 +42,7 @@ #include "utils/utils.h" #include "utils/file.h" #include "desktop/plotters.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "content/content_protected.h" #include "amiga/os3support.h" diff --git a/frontends/atari/bitmap.c b/frontends/atari/bitmap.c index 680fe97a0..35886c0fa 100644 --- a/frontends/atari/bitmap.c +++ b/frontends/atari/bitmap.c @@ -24,7 +24,7 @@ #include "utils/nsoption.h" #include "utils/log.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "desktop/mouse.h" #include "atari/bitmap.h" diff --git a/frontends/atari/plot/plot.c b/frontends/atari/plot/plot.c index 4f4d08cb9..f96039dd9 100644 --- a/frontends/atari/plot/plot.c +++ b/frontends/atari/plot/plot.c @@ -29,7 +29,7 @@ #include "utils/log.h" #include "utils/utf8.h" #include "utils/utils.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "desktop/plotters.h" #include "desktop/mouse.h" diff --git a/frontends/beos/bitmap.cpp b/frontends/beos/bitmap.cpp index 7adaae7e7..c9c786a94 100644 --- a/frontends/beos/bitmap.cpp +++ b/frontends/beos/bitmap.cpp @@ -42,7 +42,7 @@ extern "C" { #include "content/urldb.h" #include "desktop/plotters.h" #include "desktop/browser.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" } #include "beos/bitmap.h" diff --git a/frontends/cocoa/apple_image.m b/frontends/cocoa/apple_image.m index 4f8deeb99..896cf4c72 100644 --- a/frontends/cocoa/apple_image.m +++ b/frontends/cocoa/apple_image.m @@ -22,7 +22,7 @@ #include "utils/config.h" #include "content/content_protected.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "desktop/plotters.h" #include "utils/utils.h" diff --git a/frontends/cocoa/bitmap.m b/frontends/cocoa/bitmap.m index 5905eeb0c..14394d087 100644 --- a/frontends/cocoa/bitmap.m +++ b/frontends/cocoa/bitmap.m @@ -25,7 +25,7 @@ #import "desktop/browser.h" #import "desktop/plotters.h" -#import "content/handlers/image/bitmap.h" +#import "netsurf/bitmap.h" #import "content/urldb.h" #import "content/content.h" diff --git a/frontends/framebuffer/bitmap.c b/frontends/framebuffer/bitmap.c index 925b6feb8..df99e711d 100644 --- a/frontends/framebuffer/bitmap.c +++ b/frontends/framebuffer/bitmap.c @@ -30,7 +30,7 @@ #include "utils/log.h" #include "utils/utils.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "desktop/plotters.h" #include "content/content.h" diff --git a/frontends/framebuffer/framebuffer.c b/frontends/framebuffer/framebuffer.c index bd94403fb..16e9dd736 100644 --- a/frontends/framebuffer/framebuffer.c +++ b/frontends/framebuffer/framebuffer.c @@ -33,7 +33,7 @@ #include "utils/utf8.h" #include "desktop/browser.h" #include "desktop/plotters.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "framebuffer/gui.h" #include "framebuffer/fbtk.h" diff --git a/frontends/gtk/bitmap.c b/frontends/gtk/bitmap.c index 08dee61be..ff5a0c43f 100644 --- a/frontends/gtk/bitmap.c +++ b/frontends/gtk/bitmap.c @@ -33,7 +33,7 @@ #include "utils/utils.h" #include "utils/log.h" #include "content/content.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "desktop/plotters.h" #include "gtk/scaffolding.h" diff --git a/frontends/monkey/bitmap.c b/frontends/monkey/bitmap.c index daf90b43a..3313e1123 100644 --- a/frontends/monkey/bitmap.c +++ b/frontends/monkey/bitmap.c @@ -21,7 +21,7 @@ #include #include "utils/errors.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "monkey/bitmap.h" diff --git a/frontends/riscos/bitmap.c b/frontends/riscos/bitmap.c index b56000f95..525a230b3 100644 --- a/frontends/riscos/bitmap.c +++ b/frontends/riscos/bitmap.c @@ -45,7 +45,7 @@ #include "utils/messages.h" #include "desktop/plotters.h" #include "content/content.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "riscos/gui.h" #include "riscos/image.h" diff --git a/frontends/riscos/save.c b/frontends/riscos/save.c index 468ede6f6..0432b1a23 100644 --- a/frontends/riscos/save.c +++ b/frontends/riscos/save.c @@ -49,7 +49,7 @@ #include "desktop/save_complete.h" #include "desktop/save_text.h" #include "desktop/gui_window.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "render/form.h" #include "riscos/bitmap.h" diff --git a/frontends/riscos/window.c b/frontends/riscos/window.c index ff8902770..b6d074f55 100644 --- a/frontends/riscos/window.c +++ b/frontends/riscos/window.c @@ -65,7 +65,7 @@ #include "desktop/textinput.h" #include "desktop/tree.h" #include "desktop/gui_window.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "render/form.h" #include "riscos/bitmap.h" diff --git a/frontends/windows/bitmap.c b/frontends/windows/bitmap.c index 1a7856104..a50d9aa45 100644 --- a/frontends/windows/bitmap.c +++ b/frontends/windows/bitmap.c @@ -30,7 +30,7 @@ #include #include "utils/log.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "desktop/plotters.h" #include "content/content.h" diff --git a/include/netsurf/bitmap.h b/include/netsurf/bitmap.h new file mode 100644 index 000000000..e54bdff85 --- /dev/null +++ b/include/netsurf/bitmap.h @@ -0,0 +1,177 @@ +/* + * Copyright 2004 James Bursa + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/** + * \file + * Generic bitmap handling interface. + * + * This interface wraps the native platform-specific image format, so that + * portable image convertors can be written. + * + * Bitmaps are required to be 32bpp with components in the order RR GG BB AA. + * + * For example, an opaque 1x1 pixel image would yield the following bitmap + * data: + * + * > Red : 0xff 0x00 0x00 0x00 + * > Green: 0x00 0xff 0x00 0x00 + * > Blue : 0x00 0x00 0xff 0x00 + * + * Any attempt to read pixels by casting bitmap data to uint32_t or similar + * will need to cater for the order of bytes in a word being different on + * big and little endian systems. To avoid confusion, it is recommended + * that pixel data is loaded as follows: + * + * uint32_t read_pixel(const uint8_t *bmp) + * { + * // red green blue alpha + * return bmp[0] | (bmp[1] << 8) | (bmp[2] << 16) | (bmp[3] << 24); + * } + * + * and *not* as follows: + * + * uint32_t read_pixel(const uint8_t *bmp) + * { + * return *((uint32_t *) bmp); + * } + */ + +#ifndef _NETSURF_BITMAP_H_ +#define _NETSURF_BITMAP_H_ + +#define BITMAP_NEW 0 +#define BITMAP_OPAQUE (1 << 0) /**< image is opaque */ +#define BITMAP_MODIFIED (1 << 1) /**< buffer has been modified */ +#define BITMAP_CLEAR_MEMORY (1 << 2) /**< memory should be wiped */ + +struct content; +struct bitmap; +struct hlcache_handle; + +/** + * Bitmap operations. + */ +struct gui_bitmap_table { + /* Mandantory entries */ + + /** + * Create a new bitmap. + * + * \param width width of image in pixels + * \param height width of image in pixels + * \param state The state to create the bitmap in. + * \return A bitmap structure or NULL on error. + */ + void *(*create)(int width, int height, unsigned int state); + + /** + * Destroy a bitmap. + * + * \param bitmap The bitmap to destroy. + */ + void (*destroy)(void *bitmap); + + /** + * Set the opacity of a bitmap. + * + * \param bitmap The bitmap to set opacity on. + * \param opaque The bitmap opacity to set. + */ + void (*set_opaque)(void *bitmap, bool opaque); + + /** + * Get the opacity of a bitmap. + * + * \param bitmap The bitmap to examine. + * \return The bitmap opacity. + */ + bool (*get_opaque)(void *bitmap); + + /** + * Test if a bitmap is opaque. + * + * \param bitmap The bitmap to examine. + * \return The bitmap opacity. + */ + bool (*test_opaque)(void *bitmap); + + /** + * Get the image buffer from a bitmap + * + * \param bitmap The bitmap to get the buffer from. + * \return The image buffer or NULL if there is none. + */ + unsigned char *(*get_buffer)(void *bitmap); + + /** + * Get the number of bytes per row of the image + * + * \param bitmap The bitmap + * \return The number of bytes for a row of the bitmap. + */ + size_t (*get_rowstride)(void *bitmap); + + /** + * Get the bitmap width + * + * \param bitmap The bitmap + * \return The bitmap width in pixels. + */ + int (*get_width)(void *bitmap); + + /** + * Get the bitmap height + * + * \param bitmap The bitmap + * \return The bitmap height in pixels. + */ + int (*get_height)(void *bitmap); + + /** + * The the *bytes* per pixel. + * + * \param bitmap The bitmap + */ + size_t (*get_bpp)(void *bitmap); + + /** + * Savde a bitmap to disc. + * + * \param bitmap The bitmap to save + * \param path The path to save the bitmap to. + * \param flags Flags affectin the save. + */ + bool (*save)(void *bitmap, const char *path, unsigned flags); + + /** + * Marks a bitmap as modified. + * + * \param bitmap The bitmap set as modified. + */ + void (*modified)(void *bitmap); + + /** + * Render content into a bitmap. + * + * \param bitmap The bitmap to render into. + * \param content The content to render. + */ + nserror (*render)(struct bitmap *bitmap, struct hlcache_handle *content); +}; + +#endif diff --git a/render/html.c b/render/html.c index ecbd99c2a..5090b6f41 100644 --- a/render/html.c +++ b/render/html.c @@ -46,7 +46,7 @@ #include "desktop/selection.h" #include "desktop/scrollbar.h" #include "desktop/textarea.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "javascript/js.h" #include "desktop/browser.h" #include "desktop/gui_utf8.h" diff --git a/render/html_redraw.c b/render/html_redraw.c index 7f8391cf9..cf4bd6f67 100644 --- a/render/html_redraw.c +++ b/render/html_redraw.c @@ -48,7 +48,7 @@ #include "desktop/print.h" #include "desktop/scrollbar.h" #include "desktop/textarea.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "desktop/gui_layout.h" #include "desktop/gui_internal.h" diff --git a/test/urldbtest.c b/test/urldbtest.c index efe33be05..820dc6b6c 100644 --- a/test/urldbtest.c +++ b/test/urldbtest.c @@ -30,7 +30,7 @@ #include #include "utils/errors.h" -#include "content/handlers/image/bitmap.h" +#include "netsurf/bitmap.h" #include "content/content.h" #include "content/urldb.h" #include "desktop/cookie_manager.h" -- cgit v1.2.3