summaryrefslogtreecommitdiff
path: root/image/image.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2011-05-06 20:40:09 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2011-05-06 20:40:09 +0000
commite71691bae890040b83cfd54a2d9a1097d5026866 (patch)
tree96b2680dc6559ca0ab88fa0b6a533c13b7c9487e /image/image.c
parente77b1a29550e4753f771848705975295a6ebe99e (diff)
downloadnetsurf-e71691bae890040b83cfd54a2d9a1097d5026866.tar.gz
netsurf-e71691bae890040b83cfd54a2d9a1097d5026866.tar.bz2
Merge branches/jmb/content-factory to trunk
svn path=/trunk/netsurf/; revision=12283
Diffstat (limited to 'image/image.c')
-rw-r--r--image/image.c100
1 files changed, 100 insertions, 0 deletions
diff --git a/image/image.c b/image/image.c
new file mode 100644
index 000000000..23853f133
--- /dev/null
+++ b/image/image.c
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2011 John-Mark Bell <jmb@netsurf-browser.org>
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include "image/image.h"
+
+#include "image/bmp.h"
+#include "image/gif.h"
+#include "image/ico.h"
+#include "image/jpeg.h"
+#include "image/mng.h"
+#include "image/nssprite.h"
+#include "image/png.h"
+#include "image/rsvg.h"
+#include "image/svg.h"
+#include "image/webp.h"
+
+/**
+ * Initialise image content handlers
+ *
+ * \return NSERROR_OK on success, appropriate error otherwise.
+ */
+nserror image_init(void)
+{
+ nserror error;
+
+ error = nsbmp_init();
+ if (error != NSERROR_OK)
+ return error;
+
+ error = nsgif_init();
+ if (error != NSERROR_OK)
+ return error;
+
+ error = nsico_init();
+ if (error != NSERROR_OK)
+ return error;
+
+ error = nsjpeg_init();
+ if (error != NSERROR_OK)
+ return error;
+
+ /* Prefer libpng over libmng for pngs */
+ error = nsmng_init();
+ if (error != NSERROR_OK)
+ return error;
+ error = nspng_init();
+ if (error != NSERROR_OK)
+ return error;
+
+ error = nssprite_init();
+ if (error != NSERROR_OK)
+ return error;
+
+ /* Prefer rsvg over libsvgtiny for svgs */
+ error = svg_init();
+ if (error != NSERROR_OK)
+ return error;
+ error = nsrsvg_init();
+ if (error != NSERROR_OK)
+ return error;
+
+ error = webp_init();
+ if (error != NSERROR_OK)
+ return error;
+
+ return NSERROR_OK;
+}
+
+/**
+ * Finalise image content handlers
+ */
+void image_fini(void)
+{
+ nsbmp_fini();
+ nsgif_fini();
+ nsico_fini();
+ nsjpeg_fini();
+ nsmng_fini();
+ nssprite_fini();
+ nspng_fini();
+ nsrsvg_fini();
+ svg_fini();
+ webp_fini();
+}
+