r3440 tlsa - /trunk/netsurfweb/progress.de
by netsurf@semichrome.net
Author: tlsa
Date: Thu Jul 19 12:07:18 2007
New Revision: 3440
URL: http://source.netsurf-browser.org?rev=3440&view=rev
Log:
Updated German translation by Sebastian Barthel.
Modified:
trunk/netsurfweb/progress.de
Modified: trunk/netsurfweb/progress.de
URL: http://source.netsurf-browser.org/trunk/netsurfweb/progress.de?rev=3440&r...
==============================================================================
--- trunk/netsurfweb/progress.de (original)
+++ trunk/netsurfweb/progress.de Thu Jul 19 12:07:18 2007
@@ -11,7 +11,7 @@
<h1>Stand der Entwicklung</h1>
-<p>Diese Seite existiert, um einen Einblick in den Stand der NetSurf Entwicklung zu geben. Der Text dieser Seite ist gemischt deutsch / englisch. Aufgeführt sind die bereits implementierten Programmteile ebenso wie die noch in Entwicklung befindlichen. Um hierzu genauere und aktuellere Informationen zu erhalten, bitte die <a href="http://source.netsurf-browser.org/trunk/netsurf/Docs/">TODO lists</a> (englisch) lesen.</p>
+<p>Diese Seite existiert, um einen Einblick in den Stand der NetSurf Entwicklung zu geben. Der Text dieser Seite ist gemischt deutsch / englisch. Aufgeführt sind die bereits implementierten Programmteile ebenso wie die noch in Entwicklung befindlichen. Um hierzu genauere und aktuellere Informationen zu erhalten, bitte die <a href="http://source.netsurf-browser.org/trunk/netsurf/Docs/">TODO lists</a> (englisch) lesen. Der <a href="http://netsurf-browser.org/plan">Entwicklungsplan</a> (englisch) des Projektes zeigt die aktuellen Prioritäten auf.</p>
<p>Die Funktionen sind in folgende Gruppen unterteilt:</p>
<ul>
@@ -22,19 +22,19 @@
<li><a href="#NSF">NetSurf Features</a>
</ul>
-<p class="updated">aktualisiert am 15. April 2005</p>
+<p class="updated">aktualisiert am 10. November 2006</p>
<h2 id="Web">Web Standards</h2>
<table class="progress">
<tr><th>Titel</th><th>Status</th><th>Bemerkung / Notes</th></tr>
-<tr class="inprogress"><td>Cookies</td><td>in Entwicklung</td><td>Don't get expired.</td></tr>
+<tr class="nearlydone"><td>Cookies</td><td>fast fertig</td><td>User interface not available.<br>Unvalidated transactions not done.</td></tr>
<tr class="nearlydone"><td>CSS 1</td><td>fast fertig</td><td>siehe <a href="http://source.netsurf-browser.org/*checkout*/trunk/netsurf/Docs/TODO-CSS">TODO list</a>.</td></tr>
<tr class="inprogress"><td>CSS 2</td><td>in Entwicklung</td><td>siehe <a href="http://source.netsurf-browser.org/*checkout*/trunk/netsurf/Docs/TODO-CSS">TODO list</a>.</td></tr>
<tr class="nearlydone"><td>HTML 4</td><td>fast fertig</td><td>siehe <a href="http://source.netsurf-browser.org/*checkout*/trunk/netsurf/Docs/TODO-HTML">TODO list</a>.</td></tr>
<tr class="complete"><td>HTTP 1.1</td><td>komplett</td><td></td></tr>
-<tr class="inprogress"><td>HTTP Authentifikation</td><td>in Entwicklung</td><td></td></tr>
-<tr class="nearlydone"><td>HTTPS</td><td>fast fertig</td><td>Doesn't handle invalid certificates well.</td></tr>
+<tr class="complete"><td>HTTP Authentifikation</td><td>komplett</td><td></td></tr>
+<tr class="complete"><td>HTTPS</td><td>komplett</td><td></td></tr>
<tr class="notplanned"><td>JavaScript</td><td>nicht geplant</td><td>Details auf der Seite <a href="info#JavaScript">Allgemeine Informationen</a>.</td></tr>
</table>
@@ -44,12 +44,12 @@
<tr><th>Titel</th><th>Status</th><th>Bemerkung / Notes</th></tr>
<tr class="nearlydone"><td>Hintergrundbilder</td><td>fast fertig</td><td>Background-attachment needs more work.</td></tr>
<tr class="nearlydone"><td>Borders / Margins / Padding</td><td>fast fertig</td><td></td></tr>
-<tr class="nearlydone"><td>Forms</td><td>fast fertig</td><td>Doesn't work fully with Scale View.</td></tr>
-<tr class="juststarted"><td>Frames</td><td>gerade begonnen</td><td>Experimental frames implementation is far from complete.</td></tr>
+<tr class="nearlydone"><td>Forms</td><td>fast fertig</td><td>Funktioniert noch nicht richtig beim Skalieren der Anzeige..</td></tr>
+<tr class="nearlydone"><td>Frames</td><td>fast fertig</td><td>Margin attributes are unimplemented.<br>Frames affect back / forward navigation and history thumbnails.</td></tr>
<tr class="complete"><td>Image Maps</td><td>komplett</td><td></td></tr>
-<tr class="juststarted"><td>Lists</td><td>gerade begonnen</td><td>Lists aren't handled properly.</td></tr>
-<tr class="notstarted"><td>Position (CSS2 attribute)</td><td>noch nicht begonnen</td><td></td></tr>
-<tr class="nearlydone"><td>Tables</td><td>fast fertig</td><td>Cellpadding, cellspacing and table borders not implemented.<br>Extra space is divided equally among columns instead of in proportion with content width.</td></tr>
+<tr class="nearlydone"><td>Lists</td><td>fast fertig</td><td></td></tr>
+<tr class="nearlydone"><td>Position (CSS2 attribute)</td><td>fast fertig</td><td>Relative und absolute Positionierung sind vorhanden.<br>Fixe Positionierung gibt es noch nicht.<br>'Stacking order' ist nicht in Ordnung.</td></tr>
+<tr class="nearlydone"><td>Tables</td><td>fast fertig</td><td>Die Elemente col, colgroup, rowgroup und caption sind nicht implementiert.<br>Freier Platz wird gleichmäßig auf alle Spalten verteilt, nicht im Verhältnis zur Inhaltsmenge der jeweiligen Spalte.</td></tr>
<tr class="inprogress"><td>Vertical Alignment</td><td>in Entwicklung</td><td>Bisher nur für Tabellen implementiert.</td></tr>
</table>
@@ -57,12 +57,15 @@
<table class="progress">
<tr><th>Titel</th><th>Status</th><th>Bemerkung / Notes</th></tr>
+<tr class="complete"><td>Artworks</td><td>komplett</td><td>Benötigt wird das Zusatzmodul <a href="http://www.mw-software.com/software/awmodules/awrender.html">AWRender</a>.</td></tr>
+<tr class="complete"><td>BMP</td><td>komplett</td><td></td></tr>
<tr class="complete"><td>Drawfile</td><td>komplett</td><td></td></tr>
<tr class="complete"><td>GIF</td><td>komplett</td><td></td></tr>
+<tr class="complete"><td>ICO</td><td>komplett</td><td></td></tr>
<tr class="complete"><td>JNG</td><td>komplett</td><td></td></tr>
<tr class="complete"><td>JPEG</td><td>komplett</td><td></td></tr>
-<tr class="nearlydone"><td>MNG</td><td>fast fertig</td><td>Interactive features aren't supported.</td></tr>
-<tr class="nearlydone"><td>PNG</td><td>fast fertig</td><td>Gamma correction is not correct for PNGs with alpha channels.</td></tr>
+<tr class="nearlydone"><td>MNG</td><td>fast fertig</td><td>Interaktive Funktionen des Formates werden nicht unterstützt.</td></tr>
+<tr class="nearlydone"><td>PNG</td><td>fast fertig</td><td>Die Gammakorrektur funktioniert nicht bei PNG Bildern mit Alpha-Channels.</td></tr>
<tr class="complete"><td>Sprite</td><td>komplett</td><td></td></tr>
</table>
@@ -72,7 +75,7 @@
<tr><th>Titel</th><th>Status</th><th>Bemerkung / Notes</th></tr>
<tr class="complete"><td>Acorn URI Protokoll</td><td>komplett</td><td></td></tr>
<tr class="complete"><td>Ant URL Protokoll</td><td>komplett</td><td></td></tr>
-<tr class="inprogress"><td>Plugin Protokoll</td><td>in Entwicklung</td><td>Incomplete implementation with various problems.</td></tr>
+<tr class="nearlydone"><td>Plugin Protokoll</td><td>fast fertig</td><td>Unvollständige Implementierung.</td></tr>
</table>
<h2 id="NSF">NetSurf Features</h2>
@@ -81,27 +84,27 @@
<tr><th>Titel</th><th>Status</th><th>Bemerkung / Notes</th></tr>
<tr class="complete"><td>Werbebanner blockieren</td><td>komplett</td><td></td></tr>
<tr class="complete"><td>Renderoptionen</td><td>komplett</td><td>Verbessert entscheidend die Darstellung.<br>Nähere Informationen im <a href="guide#BrowserWindowMenuDisplayRender">Handbuch</a>.</td></tr>
-<tr class="inprogress"><td>Konfiguration</td><td>in Entwicklung</td><td></td></tr>
+<tr class="complete"><td>Konfiguration</td><td>komplett</td><td></td></tr>
<tr class="notstarted"><td>Disc Cache</td><td>noch nicht begonnen</td><td></td></tr>
<tr class="complete"><td>Dithern</td><td>komplett</td><td>Verbessert die Darstellung in Bildschirmmodi mit wenigen Farben.<br>Sowohl einfaches Dithern als auch Error-Diffusion sind nutzbar.</td></tr>
-<tr class="inprogress"><td>Dokumentation</td><td>in Entwicklung</td><td></td></tr>
-<tr class="nearlydone"><td>Text suchen</td><td>fast fertig</td><td>Doesn't find phrases if they are split across lines.</td></tr>
-<tr class="nearlydone"><td>History (global)</td><td>fast fertig</td><td></td></tr>
-<tr class="complete"><td>History (lokal)</td><td>komplett</td><td>Local window history is not yet cloned when adjust clicking a link.</td></tr>
-<tr class="nearlydone"><td>Hotlist</td><td>fast fertig</td><td></td></tr>
-<tr class="inprogress"><td>interaktive Hilfe</td><td>in Entwicklung</td><td></td></tr>
+<tr class="nearlydone"><td>Dokumentation</td><td>fast fertig</td><td>Beachte das <a href="docs">Inhaltsverzeichnis</a>.</td></tr>
+<tr class="nearlydone"><td>Text suchen</td><td>fast fertig</td><td>Suchtexte über Zeilenumbrüche werden nicht gefunden.</td></tr>
+<tr class="nearlydone"><td>Alles speichern</td><td>fast fertig</td><td>Speichert Seiten mit CSS Files und Bildern.<br>Doesn't rewrite URLs for CSS background images.</td></tr>
+<tr class="nearlydone"><td>History (global)</td><td>fast fertig</td><td>Details im <a href="guide#History">Handbuch</a>.</td></tr>
+<tr class="complete"><td>History (lokal)</td><td>komplett</td><td>Details im <a href="guide#History">Handbuch</a>.</td></tr>
+<tr class="nearlydone"><td>Hotlist</td><td>fast fertig</td><td>Details im <a href="guide#Hotlist">Handbuch</a>.</td></tr>
+<tr class="nearlydone"><td>interaktive Hilfe</td><td>fast fertig</td><td></td></tr>
<tr class="complete"><td>RAM Cache</td><td>komplett</td><td></td></tr>
-<tr class="inprogress"><td>Drucken</td><td>in Entwicklung</td><td></td></tr>
-<tr class="inprogress"><td>Proxy Unterstützung</td><td>in Entwicklung</td><td>Protocols other than HTTP are incorrectly proxied.</td></tr>
-<tr class="nearlydone"><td>Alles speichern</td><td>fast fertig</td><td>Speichert Seiten mit CSS Files und Bildern.<br>Doesn't rewrite URLs for CSS background images.</td></tr>
-<tr class="nearlydone"><td>Drawfile Export</td><td>fast fertig</td><td>Embedded drawfiles aren't exported when saving page as Draw.</td></tr>
+<tr class="inprogress"><td>Drucken</td><td>in Entwicklung</td><td>Drucken unter RISC OS 5 funktioniert nicht; wegen mangelnder Unterstützung im Font Manager und den Druckertreibern.</td></tr>
+<tr class="inprogress"><td>Proxy Unterstützung</td><td>in Entwicklung</td><td>Andere Protokolle als HTTP werden nicht korrekt behandelt.</td></tr>
+<tr class="nearlydone"><td>Drawfile Export</td><td>fast fertig</td><td>Eingebettete Drawfiles werden nicht mit exportiert, wenn eine Seite als Drawdatei gespeichert wird.</td></tr>
<tr class="complete"><td>Adresse speichern</td><td>komplett</td><td>Speichert die Adresse von Seite oder Objekt im Acorn URI Format, Ant URL Format oder als Text.</td></tr>
<tr class="inprogress"><td>als Text speichern</td><td>in Entwicklung</td><td>Some issues with spacing out of text.</td></tr>
<tr class="complete"><td>Vergrößerung</td><td>komplett</td><td>Web-Seiten und Bilder können vergrößert und verkleinert werden.</td></tr>
-<tr class="inprogress"><td>Text markieren</td><td>in Entwicklung</td><td></td></tr>
+<tr class="inprogress"><td>Text markieren</td><td>in Entwicklung</td><td>Text selection in text areas is incomplete.</td></tr>
<tr class="complete"><td>Themen</td><td>komplett</td><td>Themen sind von der <a href="http://netsurf-browser.org/themes/">Themenseite</a> herunterladbar.</td></tr>
-<tr class="complete"><td>Symbolleisten anpassen</td><td>komplett</td><td>Symbolleisten können so angepaßt werden, daß nur die gewünschten Symbole in beliebiger Reihenfolge dargestellt werden.</td></tr>
-<tr class="inprogress"><td>Unicode Unterstützung</td><td>in Entwicklung</td><td></td></tr>
+<tr class="complete"><td>Symbolleisten anpassen</td><td>komplett</td><td>Symbolleisten können so angepaßt werden, daß nur die gewünschten Symbole in beliebiger Reihenfolge dargestellt werden.<br>Details dazu sind im <a href="guide#ConfigurationToolbar">Handbuch</a> zu finden.</td></tr>
+<tr class="inprogress"><td>Unicode Unterstützung</td><td>in Entwicklung</td><td>Details gibt es <a href="info#Unicode">hier</a>.</td></tr>
<tr class="complete"><td>URL vervollständigen</td><td>komplett</td><td>Beim Eintippen einer Adresse zeigt NetSurf Vorschläge für deren Vervollständigung an.</td></tr>
<tr class="complete"><td>Quellcode zeigen</td><td>komplett</td><td>Drücke F8 oder wähle <i>Seite > Quellcode...</i> im Hauptmenü.</td></tr>
</table>
15 years, 10 months
r3439 rjek - /trunk/netsurf/gtk/gtk_bitmap.c
by netsurf@semichrome.net
Author: rjek
Date: Thu Jul 19 01:12:35 2007
New Revision: 3439
URL: http://source.netsurf-browser.org?rev=3439&view=rev
Log:
Clear new bitmaps to transparent black on creation of gtk bitmaps.
Modified:
trunk/netsurf/gtk/gtk_bitmap.c
Modified: trunk/netsurf/gtk/gtk_bitmap.c
URL: http://source.netsurf-browser.org/trunk/netsurf/gtk/gtk_bitmap.c?rev=3439...
==============================================================================
--- trunk/netsurf/gtk/gtk_bitmap.c (original)
+++ trunk/netsurf/gtk/gtk_bitmap.c Thu Jul 19 01:12:35 2007
@@ -49,6 +49,11 @@
bmp->primary = gdk_pixbuf_new(GDK_COLORSPACE_RGB, true, 8,
width, height);
+
+ /* fill the pixbuf in with 100% transparent black, as the memory
+ * won't have been cleared.
+ */
+ gdk_pixbuf_fill(bmp->primary, 0);
bmp->pretile_x = bmp->pretile_y = bmp->pretile_xy = NULL;
return bmp;
}
15 years, 10 months
r3438 rjek - /trunk/netsurf/image/rsvg.c
by netsurf@semichrome.net
Author: rjek
Date: Thu Jul 19 00:57:39 2007
New Revision: 3438
URL: http://source.netsurf-browser.org?rev=3438&view=rev
Log:
Fixes to rsvg renderer. Now mostly works for direct (non-embedded in a document) viewing.
Modified:
trunk/netsurf/image/rsvg.c
Modified: trunk/netsurf/image/rsvg.c
URL: http://source.netsurf-browser.org/trunk/netsurf/image/rsvg.c?rev=3438&r1=...
==============================================================================
--- trunk/netsurf/image/rsvg.c (original)
+++ trunk/netsurf/image/rsvg.c Thu Jul 19 00:57:39 2007
@@ -20,6 +20,7 @@
#ifdef WITH_RSVG
#include <stdbool.h>
+#include <assert.h>
#include <sys/types.h>
#include <librsvg/rsvg.h>
@@ -35,34 +36,17 @@
#include "utils/talloc.h"
static inline void rsvg_argb_to_abgr(u_int32_t pixels[], int width, int height,
- int rowstride);
-static void rsvg_size_func(gint *width, gint *height, gpointer user_data);
-
-/** Callback called by librsvg when it has determined the graphic's natural
- * size.
- *
- * \param width Pointer to graphic's natual width. Change this to
- * change what size we'd like librsvg to render it
- * \param height Pointer to the graphic's natual height. Change this to
- * change what size we'd like librsvg to redner it
- * \param user_data User-specific context, in this case it contains the
- * pointer to the content object
- */
-static void rsvg_size_func(gint *width, gint *height, gpointer user_data)
-{
- struct content *c = (struct content *)user_data;
- LOG(("svg image's natural size is %d x %d", *width, *height));
-
- c->width = *width;
- c->height = *height;
-}
+ size_t rowstride);
bool rsvg_create(struct content *c, const char *params[])
{
struct content_rsvg_data *d = &c->data.rsvg;
union content_msg_data msg_data;
- LOG(("!!!!!!!!!!!!!!!!!!!!!!!!!!!!"));
+ d->rsvgh = NULL;
+ d->cs = NULL;
+ d->ct = NULL;
+ d->bitmap = NULL;
if ((d->rsvgh = rsvg_handle_new()) == NULL) {
LOG(("rsvg_handle_new() returned NULL."));
@@ -71,13 +55,11 @@
return false;
}
- rsvg_handle_set_size_callback(d->rsvgh, rsvg_size_func, c, NULL);
-
return true;
}
/** Convert Cairo's ARGB output to NetSurf's favoured ABGR format. It converts
- * the data in-place.
+ * the data in-place. Operation is endian-swap and rotate right 8 bits.
*
* \param pixels Array of 32-bit values, in the form of ARGB. This will
* be overwritten with new data in the form of ABGR.
@@ -87,7 +69,7 @@
* implementation requires this to be a multiple of 4.)
*/
static inline void rsvg_argb_to_abgr(u_int32_t pixels[], int width, int height,
- int rowstride)
+ size_t rowstride)
{
u_int32_t *p = &pixels[0];
@@ -100,7 +82,7 @@
((e & 0xff000000) >> 24));
p[x] = (s >> 8) | (s << 24);
}
- p += rowstride;
+ p += (rowstride >> 2);
}
}
@@ -108,30 +90,39 @@
{
struct content_rsvg_data *d = &c->data.rsvg;
union content_msg_data msg_data;
+ RsvgDimensionData rsvgsize;
GError *err = NULL;
if (rsvg_handle_write(d->rsvgh, (guchar *)c->source_data,
- (gsize)c->source_size, &err)
- == FALSE) {
+ (gsize)c->source_size, &err) == FALSE) {
LOG(("rsvg_handle_write returned an error: %s", err->message));
- rsvg_handle_free(d->rsvgh);
msg_data.error = err->message;
content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
return false;
}
+ assert(err == NULL);
+
if (rsvg_handle_close(d->rsvgh, &err) == FALSE) {
LOG(("rsvg_handle_close returned an error: %s", err->message));
- rsvg_handle_free(d->rsvgh);
msg_data.error = err->message;
content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
return false;
}
+ assert(err == NULL);
+
+ /* we should now be able to query librsvg for the natural size of the
+ * graphic, so we can create our bitmap.
+ */
+
+ rsvg_handle_get_dimensions(d->rsvgh, &rsvgsize);
+ c->width = rsvgsize.width;
+ c->height = rsvgsize.height;
+
if ((d->bitmap = bitmap_create(c->width, c->height,
BITMAP_NEW)) == NULL) {
LOG(("Failed to create bitmap for rsvg render."));
- rsvg_handle_free(d->rsvgh);
msg_data.error = messages_get("NoMemory");
content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
return false;
@@ -143,28 +134,22 @@
c->width, c->height,
bitmap_get_rowstride(d->bitmap))) == NULL) {
LOG(("Failed to create Cairo image surface for rsvg render."));
- bitmap_destroy(d->bitmap);
- rsvg_handle_free(d->rsvgh);
msg_data.error = messages_get("NoMemory");
content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
return false;
- }
+ }
if ((d->ct = cairo_create(d->cs)) == NULL) {
LOG(("Failed to create Cairo drawing context for rsvg render."));
- bitmap_destroy(d->bitmap);
- rsvg_handle_free(d->rsvgh);
- cairo_surface_destroy(d->cs);
msg_data.error = messages_get("NoMemory");
content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
return false;
}
-
+
rsvg_handle_render_cairo(d->rsvgh, d->ct);
- /* TODO: This currently segfaults */
-// rsvg_argb_to_abgr((u_int32_t *)bitmap_get_buffer(d->bitmap),
-// c->width, c->height,
-// bitmap_get_rowstride(d->bitmap));
+ rsvg_argb_to_abgr((u_int32_t *)bitmap_get_buffer(d->bitmap),
+ c->width, c->height,
+ bitmap_get_rowstride(d->bitmap));
c->bitmap = d->bitmap;
c->status = CONTENT_STATUS_DONE;
@@ -192,10 +177,10 @@
{
struct content_rsvg_data *d = &c->data.rsvg;
- bitmap_destroy(d->bitmap);
- rsvg_handle_free(d->rsvgh);
- cairo_destroy(d->ct);
- cairo_surface_destroy(d->cs);
+ if (d->bitmap != NULL) bitmap_destroy(d->bitmap);
+ if (d->rsvgh != NULL) rsvg_handle_free(d->rsvgh);
+ if (d->ct != NULL) cairo_destroy(d->ct);
+ if (d->cs != NULL) cairo_surface_destroy(d->cs);
return;
}
15 years, 10 months
r3437 rjek - /trunk/netsurf/gtk/gtk_bitmap.c
by netsurf@semichrome.net
Author: rjek
Date: Thu Jul 19 00:26:00 2007
New Revision: 3437
URL: http://source.netsurf-browser.org?rev=3437&view=rev
Log:
Add bitmap_save() handler for nsgtk bitmaps. Saves in PNG format.
Modified:
trunk/netsurf/gtk/gtk_bitmap.c
Modified: trunk/netsurf/gtk/gtk_bitmap.c
URL: http://source.netsurf-browser.org/trunk/netsurf/gtk/gtk_bitmap.c?rev=3437...
==============================================================================
--- trunk/netsurf/gtk/gtk_bitmap.c (original)
+++ trunk/netsurf/gtk/gtk_bitmap.c Thu Jul 19 00:26:00 2007
@@ -46,6 +46,7 @@
struct bitmap *bitmap_create(int width, int height, unsigned int state)
{
struct bitmap *bmp = malloc(sizeof(struct bitmap));
+
bmp->primary = gdk_pixbuf_new(GDK_COLORSPACE_RGB, true, 8,
width, height);
bmp->pretile_x = bmp->pretile_y = bmp->pretile_xy = NULL;
@@ -159,6 +160,14 @@
bool bitmap_save(struct bitmap *bitmap, const char *path)
{
+ GError *err = NULL;
+
+ gdk_pixbuf_save(bitmap->primary, path, "png", &err, NULL);
+
+ if (err == NULL)
+ /* TODO: report an error here */
+ return false;
+
return true;
}
15 years, 10 months
r3436 rjek - /trunk/netsurf/Docs/BUILDING-GTK
by netsurf@semichrome.net
Author: rjek
Date: Wed Jul 18 23:36:28 2007
New Revision: 3436
URL: http://source.netsurf-browser.org?rev=3436&view=rev
Log:
Add mention of librsvg2-dev in nsgtk building guide
Modified:
trunk/netsurf/Docs/BUILDING-GTK
Modified: trunk/netsurf/Docs/BUILDING-GTK
URL: http://source.netsurf-browser.org/trunk/netsurf/Docs/BUILDING-GTK?rev=343...
==============================================================================
--- trunk/netsurf/Docs/BUILDING-GTK (original)
+++ trunk/netsurf/Docs/BUILDING-GTK Wed Jul 18 23:36:28 2007
@@ -4,7 +4,7 @@
OS, this should suffice:
apt-get install libglade2-dev libcurl3-dev libxml2-dev libmng-dev
- apt-get install lemon re2c
+ apt-get install librsvg2-dev lemon re2c
This will pull in loads of things, like all the GTK dev libraries, the PNG and
JPEG libraries, colour management libraries, zlib, OpenSSL etc that NetSurf
15 years, 10 months
r3435 rjek - /trunk/netsurf/makefile
by netsurf@semichrome.net
Author: rjek
Date: Wed Jul 18 21:15:08 2007
New Revision: 3435
URL: http://source.netsurf-browser.org?rev=3435&view=rev
Log:
Makefile changes for rsvg work
Modified:
trunk/netsurf/makefile
Modified: trunk/netsurf/makefile
URL: http://source.netsurf-browser.org/trunk/netsurf/makefile?rev=3435&r1=3434...
==============================================================================
--- trunk/netsurf/makefile (original)
+++ trunk/netsurf/makefile Wed Jul 18 21:15:08 2007
@@ -30,7 +30,7 @@
OBJECTS_COMMON += knockout.o options.o tree.o version.o # desktop/
OBJECTS_IMAGE = bmp.o bmpread.o gif.o gifread.o ico.o jpeg.o \
- mng.o svg.o # image/
+ mng.o svg.o rsvg.o # image/
OBJECTS_RISCOS = $(OBJECTS_COMMON) $(OBJECTS_IMAGE)
OBJECTS_RISCOS += browser.o frames.o history_core.o netsurf.o \
@@ -134,7 +134,8 @@
-D_XOPEN_SOURCE=600 \
-D_POSIX_C_SOURCE=200112L \
$(WARNFLAGS) -I. -g -O \
- `pkg-config --cflags libglade-2.0 gtk+-2.0` `xml2-config --cflags`
+ `pkg-config --cflags libglade-2.0 gtk+-2.0 librsvg-2.0` \
+ `xml2-config --cflags`
# Stop GCC under Cygwin throwing a fit
# If you pass -std=<whatever> it appears to define __STRICT_ANSI__
@@ -172,7 +173,7 @@
gtk: nsgtk
nsgtk: $(OBJS_GTK)
- $(SYSTEM_CC) -o nsgtk $^ `pkg-config --cflags --libs libglade-2.0 gtk+-2.0 gthread-2.0 gmodule-2.0` \
+ $(SYSTEM_CC) -o nsgtk $^ `pkg-config --cflags --libs libglade-2.0 gtk+-2.0 gthread-2.0 gmodule-2.0 librsvg-2.0` \
$(LDFLAGS_DEBUG)
netsurf.zip: $(RUNIMAGE)
15 years, 10 months
r3434 jshaw - /trunk/dom/test/test-to-c.xsl
by netsurf@semichrome.net
Author: jshaw
Date: Wed Jul 18 20:07:32 2007
New Revision: 3434
URL: http://source.netsurf-browser.org?rev=3434&view=rev
Log:
Fix casting for attribute accessor generation. Add cast for string
literal in <assertEquals>. documentgetdoctype.c now compiles and runs.
Modified:
trunk/dom/test/test-to-c.xsl
Modified: trunk/dom/test/test-to-c.xsl
URL: http://source.netsurf-browser.org/trunk/dom/test/test-to-c.xsl?rev=3434&r...
==============================================================================
--- trunk/dom/test/test-to-c.xsl (original)
+++ trunk/dom/test/test-to-c.xsl Wed Jul 18 20:07:32 2007
@@ -72,7 +72,6 @@
<xsl:text>#include <string.h>
#include <dom/dom.h>
-#include <utils.h>
#include "testutils.h"
</xsl:text>
@@ -236,6 +235,10 @@
<xsl:param name="attribute"/>
<xsl:variable name="obj" select="@obj"/>
<xsl:variable name="value" select="@value"/>
+ <xsl:variable name="obj_type" select="//*[local-name() = 'var' and @name = $obj]/@type"/>
+ <xsl:variable name="interface_type" select="$domspec/library/interface[attribute = $attribute]/@name"/>
+ <xsl:message>obj_type<xsl:value-of select="$obj_type"/></xsl:message>
+ <xsl:message>iface_type<xsl:value-of select="$interface_type"/></xsl:message>
<!-- check if attribute name starts with is -->
<xsl:if test="@value">
<!-- TODO: set attribute to a value -->
@@ -247,14 +250,25 @@
<xsl:if test="@var">
<xsl:text>
err = </xsl:text>
- <xsl:call-template name="convert_var_type">
- <xsl:with-param name="var_type"><xsl:value-of select="$domspec/library/interface[attribute = $attribute]/@name"/></xsl:with-param>
- </xsl:call-template>
- <xsl:text>_get_</xsl:text>
- <xsl:call-template name="convert_attribute_name">
- <xsl:with-param name="attribute_name"><xsl:value-of select="$attribute/@name"/></xsl:with-param>
- </xsl:call-template>
- <xsl:text>(</xsl:text><!-- TODO: cast to the type expected by the interface if necessary --><xsl:value-of select="@obj"/><xsl:text>, &</xsl:text><xsl:value-of select="@var"/><xsl:text>);
+ <xsl:call-template name="convert_var_type">
+ <xsl:with-param name="var_type"><xsl:value-of select="$interface_type"/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>_get_</xsl:text>
+ <xsl:call-template name="convert_attribute_name">
+ <xsl:with-param name="attribute_name"><xsl:value-of select="$attribute/@name"/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>(</xsl:text>
+ <!-- cast to target interface if this is different from the type of the variable @obj -->
+ <xsl:if test="$obj_type != $interface_type">
+ <xsl:text>(struct </xsl:text>
+ <xsl:call-template name="convert_var_type">
+ <xsl:with-param name="var_type"><xsl:value-of select="$interface_type"/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text> *) </xsl:text>
+ </xsl:if>
+ <!-- TODO: cast to the type expected by the interface if necessary -->
+ <xsl:value-of select="@obj"/><xsl:text>, &</xsl:text><xsl:value-of select="@var"/>
+ <xsl:text>);
assert(err == DOM_NO_ERR);
</xsl:text>
@@ -295,7 +309,7 @@
<xsl:text>
struct dom_string *match;
- err = dom_string_create_from_const_ptr(doc, </xsl:text><xsl:value-of select="@expected"/><xsl:text>,
+ err = dom_string_create_from_const_ptr(doc, (uint8_t *) </xsl:text><xsl:value-of select="@expected"/><xsl:text>,
SLEN(</xsl:text><xsl:value-of select="@expected"/><xsl:text>), &match);
assert(err == DOM_NO_ERR); <!-- TODO: pull this line out, since it's reused everywhere -->
15 years, 10 months
r3433 rjek - in /trunk/netsurf: content/content.c content/content.h content/content_type.h image/rsvg.c image/rsvg.h utils/config.h
by netsurf@semichrome.net
Author: rjek
Date: Wed Jul 18 18:58:35 2007
New Revision: 3433
URL: http://source.netsurf-browser.org?rev=3433&view=rev
Log:
Initial work on RSVG image handler. Still a lot to do.
Added:
trunk/netsurf/image/rsvg.c
trunk/netsurf/image/rsvg.h
Modified:
trunk/netsurf/content/content.c
trunk/netsurf/content/content.h
trunk/netsurf/content/content_type.h
trunk/netsurf/utils/config.h
Modified: trunk/netsurf/content/content.c
URL: http://source.netsurf-browser.org/trunk/netsurf/content/content.c?rev=343...
==============================================================================
--- trunk/netsurf/content/content.c (original)
+++ trunk/netsurf/content/content.c Wed Jul 18 18:58:35 2007
@@ -46,6 +46,9 @@
#ifdef WITH_NS_SVG
#include "image/svg.h"
#endif
+#ifdef WITH_RSVG
+#include "image/rsvg.h"
+#endif
#ifdef WITH_SPRITE
#include "riscos/sprite.h"
#endif
@@ -136,7 +139,7 @@
#ifdef WITH_MNG
{"image/png", CONTENT_PNG},
#endif
-#ifdef WITH_NS_SVG
+#if defined(WITH_NS_SVG) || defined (WITH_RSVG)
{"image/svg", CONTENT_SVG},
{"image/svg+xml", CONTENT_SVG},
#endif
@@ -309,6 +312,10 @@
#ifdef WITH_NS_SVG
{svg_create, 0, svg_convert,
0, svg_destroy, 0, svg_redraw, 0, 0, 0, false},
+#endif
+#ifdef WITH_RSVG
+ {rsvg_create, 0, rsvg_convert,
+ 0, rsvg_destroy, 0, rsvg_redraw, 0, 0, 0, false},
#endif
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false}
};
Modified: trunk/netsurf/content/content.h
URL: http://source.netsurf-browser.org/trunk/netsurf/content/content.h?rev=343...
==============================================================================
--- trunk/netsurf/content/content.h (original)
+++ trunk/netsurf/content/content.h Wed Jul 18 18:58:35 2007
@@ -48,6 +48,9 @@
#endif
#ifdef WITH_NS_SVG
#include "image/svg.h"
+#endif
+#ifdef WITH_RSVG
+#include "image/rsvg.h"
#endif
@@ -170,6 +173,9 @@
#endif
#ifdef WITH_NS_SVG
struct content_svg_data svg;
+#endif
+#ifdef WITH_RSVG
+ struct content_rsvg_data rsvg;
#endif
} data;
Modified: trunk/netsurf/content/content_type.h
URL: http://source.netsurf-browser.org/trunk/netsurf/content/content_type.h?re...
==============================================================================
--- trunk/netsurf/content/content_type.h (original)
+++ trunk/netsurf/content/content_type.h Wed Jul 18 18:58:35 2007
@@ -53,7 +53,7 @@
#ifdef WITH_ARTWORKS
CONTENT_ARTWORKS,
#endif
-#ifdef WITH_NS_SVG
+#if defined(WITH_NS_SVG) || defined(WITH_RSVG)
CONTENT_SVG,
#endif
/* these must be the last two */
Added: trunk/netsurf/image/rsvg.c
URL: http://source.netsurf-browser.org/trunk/netsurf/image/rsvg.c?rev=3433&vie...
==============================================================================
--- trunk/netsurf/image/rsvg.c (added)
+++ trunk/netsurf/image/rsvg.c Wed Jul 18 18:58:35 2007
@@ -1,0 +1,203 @@
+/*
+ * This file is part of NetSurf, http://netsurf-browser.org/
+ * Licensed under the GNU General Public License,
+ * http://www.opensource.org/licenses/gpl-license
+ * Copyright 2007 Rob Kendrick <rjek(a)netsurf-browser.org>
+ */
+
+/** \file
+ * Content handler for image/svg using librsvg (implementation).
+ *
+ * SVG files are rendered to a NetSurf bitmap by creating a Cairo rendering
+ * surface (content_rsvg_data.cs) over the bitmap's data, creating a Cairo
+ * drawing context using that surface, and then passing that drawing context
+ * to librsvg which then uses Cairo calls to plot the graphic to the bitmap.
+ * We store this in content->bitmap, and then use the usual bitmap plotter
+ * function to render it for redraw requests.
+ */
+
+#include "utils/config.h"
+#ifdef WITH_RSVG
+
+#include <stdbool.h>
+#include <sys/types.h>
+
+#include <librsvg/rsvg.h>
+#include <librsvg/rsvg-cairo.h>
+
+#include "image/rsvg.h"
+#include "content/content.h"
+#include "desktop/plotters.h"
+#include "image/bitmap.h"
+#include "utils/log.h"
+#include "utils/utils.h"
+#include "utils/messages.h"
+#include "utils/talloc.h"
+
+static inline void rsvg_argb_to_abgr(u_int32_t pixels[], int width, int height,
+ int rowstride);
+static void rsvg_size_func(gint *width, gint *height, gpointer user_data);
+
+/** Callback called by librsvg when it has determined the graphic's natural
+ * size.
+ *
+ * \param width Pointer to graphic's natual width. Change this to
+ * change what size we'd like librsvg to render it
+ * \param height Pointer to the graphic's natual height. Change this to
+ * change what size we'd like librsvg to redner it
+ * \param user_data User-specific context, in this case it contains the
+ * pointer to the content object
+ */
+static void rsvg_size_func(gint *width, gint *height, gpointer user_data)
+{
+ struct content *c = (struct content *)user_data;
+ LOG(("svg image's natural size is %d x %d", *width, *height));
+
+ c->width = *width;
+ c->height = *height;
+}
+
+bool rsvg_create(struct content *c, const char *params[])
+{
+ struct content_rsvg_data *d = &c->data.rsvg;
+ union content_msg_data msg_data;
+
+ LOG(("!!!!!!!!!!!!!!!!!!!!!!!!!!!!"));
+
+ if ((d->rsvgh = rsvg_handle_new()) == NULL) {
+ LOG(("rsvg_handle_new() returned NULL."));
+ msg_data.error = messages_get("NoMemory");
+ content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+
+ rsvg_handle_set_size_callback(d->rsvgh, rsvg_size_func, c, NULL);
+
+ return true;
+}
+
+/** Convert Cairo's ARGB output to NetSurf's favoured ABGR format. It converts
+ * the data in-place.
+ *
+ * \param pixels Array of 32-bit values, in the form of ARGB. This will
+ * be overwritten with new data in the form of ABGR.
+ * \param width Width of the bitmap
+ * \param height Height of the bitmap
+ * \param rowstride Number of bytes to skip after each row (this
+ * implementation requires this to be a multiple of 4.)
+ */
+static inline void rsvg_argb_to_abgr(u_int32_t pixels[], int width, int height,
+ int rowstride)
+{
+ u_int32_t *p = &pixels[0];
+
+ for (int y = 0; y < height; y++) {
+ for (int x = 0; x < width; x++) {
+ u_int32_t e = p[x];
+ u_int32_t s = (((e & 0xff) << 24) |
+ ((e & 0xff00) << 8) |
+ ((e & 0xff0000) >> 8) |
+ ((e & 0xff000000) >> 24));
+ p[x] = (s >> 8) | (s << 24);
+ }
+ p += rowstride;
+ }
+}
+
+bool rsvg_convert(struct content *c, int iwidth, int iheight)
+{
+ struct content_rsvg_data *d = &c->data.rsvg;
+ union content_msg_data msg_data;
+ GError *err = NULL;
+
+ if (rsvg_handle_write(d->rsvgh, (guchar *)c->source_data,
+ (gsize)c->source_size, &err)
+ == FALSE) {
+ LOG(("rsvg_handle_write returned an error: %s", err->message));
+ rsvg_handle_free(d->rsvgh);
+ msg_data.error = err->message;
+ content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+
+ if (rsvg_handle_close(d->rsvgh, &err) == FALSE) {
+ LOG(("rsvg_handle_close returned an error: %s", err->message));
+ rsvg_handle_free(d->rsvgh);
+ msg_data.error = err->message;
+ content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+
+ if ((d->bitmap = bitmap_create(c->width, c->height,
+ BITMAP_NEW)) == NULL) {
+ LOG(("Failed to create bitmap for rsvg render."));
+ rsvg_handle_free(d->rsvgh);
+ msg_data.error = messages_get("NoMemory");
+ content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+
+ if ((d->cs = cairo_image_surface_create_for_data(
+ (unsigned char *)bitmap_get_buffer(d->bitmap),
+ CAIRO_FORMAT_ARGB32,
+ c->width, c->height,
+ bitmap_get_rowstride(d->bitmap))) == NULL) {
+ LOG(("Failed to create Cairo image surface for rsvg render."));
+ bitmap_destroy(d->bitmap);
+ rsvg_handle_free(d->rsvgh);
+ msg_data.error = messages_get("NoMemory");
+ content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+
+ if ((d->ct = cairo_create(d->cs)) == NULL) {
+ LOG(("Failed to create Cairo drawing context for rsvg render."));
+ bitmap_destroy(d->bitmap);
+ rsvg_handle_free(d->rsvgh);
+ cairo_surface_destroy(d->cs);
+ msg_data.error = messages_get("NoMemory");
+ content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
+ return false;
+ }
+
+ rsvg_handle_render_cairo(d->rsvgh, d->ct);
+ /* TODO: This currently segfaults */
+// rsvg_argb_to_abgr((u_int32_t *)bitmap_get_buffer(d->bitmap),
+// c->width, c->height,
+// bitmap_get_rowstride(d->bitmap));
+
+ c->bitmap = d->bitmap;
+ c->status = CONTENT_STATUS_DONE;
+
+ return true;
+}
+
+bool rsvg_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)
+{
+ plot.bitmap(x, y, width, height, c->bitmap, background_colour);
+ return true;
+}
+
+bool rsvg_redraw_tiled(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 repeat_x, bool repeat_y)
+{
+ return true;
+}
+
+void rsvg_destroy(struct content *c)
+{
+ struct content_rsvg_data *d = &c->data.rsvg;
+
+ bitmap_destroy(d->bitmap);
+ rsvg_handle_free(d->rsvgh);
+ cairo_destroy(d->ct);
+ cairo_surface_destroy(d->cs);
+
+ return;
+}
+
+#endif /* WITH_RSVG */
Added: trunk/netsurf/image/rsvg.h
URL: http://source.netsurf-browser.org/trunk/netsurf/image/rsvg.h?rev=3433&vie...
==============================================================================
--- trunk/netsurf/image/rsvg.h (added)
+++ trunk/netsurf/image/rsvg.h Wed Jul 18 18:58:35 2007
@@ -1,0 +1,42 @@
+/*
+ * This file is part of NetSurf, http://netsurf-browser.org/
+ * Licensed under the GNU General Public License,
+ * http://www.opensource.org/licenses/gpl-license
+ * Copyright 2007 Rob Kendrick <rjek(a)netsurf-browser.org>
+ */
+
+/** \file
+ * Content handler for image/svg using librsvg (interface).
+ */
+
+#ifndef _NETSURF_IMAGE_RSVG_H_
+#define _NETSURF_IMAGE_RSVG_H_
+
+#include <stdbool.h>
+#include <librsvg/rsvg.h>
+#include <cairo.h>
+
+#include "image/bitmap.h"
+
+struct content;
+
+struct content_rsvg_data {
+ RsvgHandle *rsvgh; /**< Context handle for RSVG renderer */
+ cairo_surface_t *cs; /**< The surface built inside a nsbitmap */
+ cairo_t *ct; /**< Cairo drawing context */
+ struct bitmap *bitmap; /**< Created NetSurf bitmap */
+};
+
+bool rsvg_create(struct content *c, const char *params[]);
+bool rsvg_convert(struct content *c, int width, int height);
+void rsvg_destroy(struct content *c);
+bool rsvg_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 rsvg_redraw_tiled(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 repeat_x, bool repeat_y);
+#endif
Modified: trunk/netsurf/utils/config.h
URL: http://source.netsurf-browser.org/trunk/netsurf/utils/config.h?rev=3433&r...
==============================================================================
--- trunk/netsurf/utils/config.h (original)
+++ trunk/netsurf/utils/config.h Wed Jul 18 18:58:35 2007
@@ -39,8 +39,8 @@
#define WITH_JPEG
#define WITH_MNG
#define WITH_GIF
-#define WITH_NS_SVG /* internal SVG renderer */
#if defined(riscos) || defined(ncos)
+ #define WITH_NS_SVG /* internal SVG renderer */
#define WITH_DRAW
#define WITH_SPRITE
#define WITH_ARTWORKS
@@ -63,6 +63,12 @@
#else
/* We're likely to have a working mmap() */
#define WITH_MMAP
+ /* Use librsvg and Cairo for rendering SVG */
+ #define WITH_RSVG
+#endif
+
+#if defined(WITH_NS_SVG) && defined(WITH_RSVG)
+ #error Cannot build WITH_NS_SVG and WITH_RSVG both enabled
#endif
#if defined(riscos) || defined(ncos) || defined(DEBUG_BUILD)
15 years, 10 months
r3432 rjek - in /trunk/netsurf: content/content.c content/content.h content/content_type.h image/svg.c utils/config.h
by netsurf@semichrome.net
Author: rjek
Date: Wed Jul 18 15:49:26 2007
New Revision: 3432
URL: http://source.netsurf-browser.org?rev=3432&view=rev
Log:
Wrap internal SVG renderer with appropriate #ifdef WITH_NS_SVG
Modified:
trunk/netsurf/content/content.c
trunk/netsurf/content/content.h
trunk/netsurf/content/content_type.h
trunk/netsurf/image/svg.c
trunk/netsurf/utils/config.h
Modified: trunk/netsurf/content/content.c
URL: http://source.netsurf-browser.org/trunk/netsurf/content/content.c?rev=343...
==============================================================================
--- trunk/netsurf/content/content.c (original)
+++ trunk/netsurf/content/content.c Wed Jul 18 15:49:26 2007
@@ -43,7 +43,9 @@
#include "image/bmp.h"
#include "image/ico.h"
#endif
+#ifdef WITH_NS_SVG
#include "image/svg.h"
+#endif
#ifdef WITH_SPRITE
#include "riscos/sprite.h"
#endif
@@ -134,8 +136,10 @@
#ifdef WITH_MNG
{"image/png", CONTENT_PNG},
#endif
+#ifdef WITH_NS_SVG
{"image/svg", CONTENT_SVG},
{"image/svg+xml", CONTENT_SVG},
+#endif
#ifdef WITH_BMP
{"image/x-bitmap", CONTENT_BMP},
{"image/x-bmp", CONTENT_BMP},
@@ -302,8 +306,10 @@
{0, 0, artworks_convert,
0, artworks_destroy, 0, artworks_redraw, 0, 0, 0, false},
#endif
+#ifdef WITH_NS_SVG
{svg_create, 0, svg_convert,
0, svg_destroy, 0, svg_redraw, 0, 0, 0, false},
+#endif
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false}
};
#define HANDLER_MAP_COUNT (sizeof(handler_map) / sizeof(handler_map[0]))
Modified: trunk/netsurf/content/content.h
URL: http://source.netsurf-browser.org/trunk/netsurf/content/content.h?rev=343...
==============================================================================
--- trunk/netsurf/content/content.h (original)
+++ trunk/netsurf/content/content.h Wed Jul 18 15:49:26 2007
@@ -46,7 +46,9 @@
#ifdef WITH_ARTWORKS
#include "riscos/artworks.h"
#endif
+#ifdef WITH_NS_SVG
#include "image/svg.h"
+#endif
struct bitmap;
@@ -166,7 +168,9 @@
#ifdef WITH_ARTWORKS
struct content_artworks_data artworks;
#endif
+#ifdef WITH_NS_SVG
struct content_svg_data svg;
+#endif
} data;
/**< URL for refresh request, in standard form as from url_join. */
Modified: trunk/netsurf/content/content_type.h
URL: http://source.netsurf-browser.org/trunk/netsurf/content/content_type.h?re...
==============================================================================
--- trunk/netsurf/content/content_type.h (original)
+++ trunk/netsurf/content/content_type.h Wed Jul 18 15:49:26 2007
@@ -53,7 +53,9 @@
#ifdef WITH_ARTWORKS
CONTENT_ARTWORKS,
#endif
+#ifdef WITH_NS_SVG
CONTENT_SVG,
+#endif
/* these must be the last two */
CONTENT_OTHER,
CONTENT_UNKNOWN /**< content-type not received yet */
Modified: trunk/netsurf/image/svg.c
URL: http://source.netsurf-browser.org/trunk/netsurf/image/svg.c?rev=3432&r1=3...
==============================================================================
--- trunk/netsurf/image/svg.c (original)
+++ trunk/netsurf/image/svg.c Wed Jul 18 15:49:26 2007
@@ -14,9 +14,10 @@
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
+#include "utils/config.h"
+#ifdef WITH_NS_SVG
#include <libxml/parser.h>
#include <libxml/debugXML.h>
-#include "utils/config.h"
#include "content/content.h"
#include "css/css.h"
#include "desktop/plotters.h"
@@ -676,3 +677,5 @@
if (c->data.svg.doc)
xmlFreeDoc(c->data.svg.doc);
}
+
+#endif /* WITH_NS_SVG */
Modified: trunk/netsurf/utils/config.h
URL: http://source.netsurf-browser.org/trunk/netsurf/utils/config.h?rev=3432&r...
==============================================================================
--- trunk/netsurf/utils/config.h (original)
+++ trunk/netsurf/utils/config.h Wed Jul 18 15:49:26 2007
@@ -39,6 +39,7 @@
#define WITH_JPEG
#define WITH_MNG
#define WITH_GIF
+#define WITH_NS_SVG /* internal SVG renderer */
#if defined(riscos) || defined(ncos)
#define WITH_DRAW
#define WITH_SPRITE
15 years, 10 months
r3431 rjek - /trunk/netsurf/image/jpeg.c
by netsurf@semichrome.net
Author: rjek
Date: Wed Jul 18 15:47:41 2007
New Revision: 3431
URL: http://source.netsurf-browser.org?rev=3431&view=rev
Log:
Wrap jpeg.c with #ifdef WITH_JPEG
Modified:
trunk/netsurf/image/jpeg.c
Modified: trunk/netsurf/image/jpeg.c
URL: http://source.netsurf-browser.org/trunk/netsurf/image/jpeg.c?rev=3431&r1=...
==============================================================================
--- trunk/netsurf/image/jpeg.c (original)
+++ trunk/netsurf/image/jpeg.c Wed Jul 18 15:47:41 2007
@@ -17,9 +17,10 @@
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
+#include "utils/config.h"
+#ifdef WITH_JPEG
#define JPEG_INTERNAL_OPTIONS
#include "jpeglib.h"
-#include "utils/config.h"
#include "content/content.h"
#include "desktop/plotters.h"
#include "image/bitmap.h"
@@ -250,3 +251,5 @@
bitmap_destroy(c->bitmap);
free(c->title);
}
+
+#endif /* WITH_JPEG */
15 years, 10 months