netsurf: branch master updated. release/3.5-203-gddcc914

NetSurf Browser Project (Commit Mailer) no-reply at netsurf-browser.org
Fri Jul 8 19:58:07 BST 2016


Gitweb links:

...log http://git.netsurf-browser.org/netsurf.git/shortlog/ddcc914a3ffe02edaeafa93eecf54a77daf8a4cd
...commit http://git.netsurf-browser.org/netsurf.git/commit/ddcc914a3ffe02edaeafa93eecf54a77daf8a4cd
...tree http://git.netsurf-browser.org/netsurf.git/tree/ddcc914a3ffe02edaeafa93eecf54a77daf8a4cd

The branch, master has been updated
       via  ddcc914a3ffe02edaeafa93eecf54a77daf8a4cd (commit)
       via  dc633bc154b913f8f5b6ce33ee34eb1dcfee75d4 (commit)
       via  796974521786d65f1117cf22c23bb1592a27b6f0 (commit)
       via  59b29930d7c89c53f85d4536bb3657b1c0bd2736 (commit)
      from  eb9571ede701defafd2b9685138826a719124b5b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=ddcc914a3ffe02edaeafa93eecf54a77daf8a4cd
commit ddcc914a3ffe02edaeafa93eecf54a77daf8a4cd
Author: Chris Young <chris at unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris at unsatisfactorysoftware.co.uk>

    Use GuiGFX to scale 8-bit images rather than doing two separate operations

diff --git a/frontends/amiga/bitmap.c b/frontends/amiga/bitmap.c
index 5b8117a..53e33d6 100644
--- a/frontends/amiga/bitmap.c
+++ b/frontends/amiga/bitmap.c
@@ -309,7 +309,7 @@ static void ami_bitmap_rgba_to_argb(struct bitmap *bm)
 	
 	ULONG *data = (ULONG *)amiga_bitmap_get_buffer(bm);
 	for(int i = 0; i < (bm->width * bm->height); i++) {
-		data[i] = (data[i] >> 8) | (data[i] << 24);
+		data[i] = (data[ i] >> 8) | (data[i] << 24);
 	}
 }
 
@@ -426,7 +426,7 @@ static inline struct BitMap *ami_bitmap_get_generic(struct bitmap *bitmap,
 										tbm, bitmap->width, bitmap->height,
 										bitmap->width * 4, AMI_BITMAP_FORMAT);
 		} else {
-			tbm = ami_rtg_allocbitmap(bitmap->width, bitmap->height,
+			tbm = ami_rtg_allocbitmap(width, height,
 										8, 0, friendbm, AMI_BITMAP_FORMAT);
 			if(tbm == NULL) return NULL;
 
@@ -450,7 +450,7 @@ static inline struct BitMap *ami_bitmap_get_generic(struct bitmap *bitmap,
 
 				APTR ddh = CreateDirectDrawHandle(bitmap->drawhandle,
 										bitmap->width, bitmap->height,
-										bitmap->width, bitmap->height, NULL);
+										width, height, NULL);
 
 				DirectDrawTrueColor(ddh, (ULONG *)amiga_bitmap_get_buffer(bitmap), 0, 0, TAG_DONE);
 				DeleteDirectDrawHandle(ddh);
@@ -466,14 +466,19 @@ static inline struct BitMap *ami_bitmap_get_generic(struct bitmap *bitmap,
 		if(nsoption_int(cache_bitmaps) == 2)
 		{
 			bitmap->nativebm = tbm;
-			bitmap->nativebmwidth = bitmap->width;
-			bitmap->nativebmheight = bitmap->height;
+			if(type == AMI_NSBM_TRUECOLOUR) {
+				bitmap->nativebmwidth = bitmap->width;
+				bitmap->nativebmheight = bitmap->height;
+			} else {
+				bitmap->nativebmwidth = width;
+				bitmap->nativebmheight = height;
+			}
 			bitmap->native = type;
 		}
 	}
 
-	if((bitmap->width != width) || (bitmap->height != height))
-	{
+	if(((bitmap->width != width) || (bitmap->height != height)) &&
+		(type == AMI_NSBM_TRUECOLOUR)) {
 		struct BitMap *restrict scaledbm;
 		struct BitScaleArgs bsa;
 		int depth = 32;


commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=dc633bc154b913f8f5b6ce33ee34eb1dcfee75d4
commit dc633bc154b913f8f5b6ce33ee34eb1dcfee75d4
Author: Chris Young <chris at unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris at unsatisfactorysoftware.co.uk>

    Force friend BitMap usage at depths>8bpp
    Fix logic so this forced usage actually applies

diff --git a/frontends/amiga/plotters.c b/frontends/amiga/plotters.c
index 2ad7f2b..9076eea 100644
--- a/frontends/amiga/plotters.c
+++ b/frontends/amiga/plotters.c
@@ -106,18 +106,31 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height, bool for
 	if(force32bit == false) depth = GetBitMapAttr(scrn->RastPort.BitMap, BMA_DEPTH);
 	LOG("Screen depth = %d", depth);
 
+#ifdef __amigaos4__
 	if(depth < 16) {
 		gg->palette_mapped = true;
 	} else {
 		gg->palette_mapped = false;
 	}
-
-#ifndef __amigaos4__
+#else
+	/* Friend BitMaps are weird.
+	 * For OS4, we shouldn't use a friend BitMap here (see below).
+	 * For OS3 AGA, we get no display blitted if we use a friend BitMap,
+	 * however on RTG it seems to be a benefit.
+	 */
+	if(nsoption_bool(friend_bitmap) == true) {
+		friend = scrn->RastPort.BitMap;
+	} else {
+		/* Force friend BitMaps on for obvious RTG screens under OS3.
+		 * If we get a bit smarter about this we can lose the user option. */
+		if((depth > 8) && (force32bit == false)) friend = scrn->RastPort.BitMap;
+	}
 #warning OS3 locked to palette-mapped modes
 	gg->palette_mapped = true;
 	if(depth > 8) depth = 8;
 #endif
 
+
 	/* Probably need to fix this next line */
 	if(gg->palette_mapped == true) nsoption_set_bool(font_antialiasing, false);
 
@@ -136,21 +149,6 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height, bool for
 	gg->tmprasbuf = AllocVec(width * height, MEMF_CHIP);
 #endif
 
-	/* Friend BitMaps are weird.
-	 * For OS4, we shouldn't use a friend BitMap here (see below).
-	 * For OS3 AGA, we get no display blitted if we use a friend BitMap,
-	 * however on RTG it seems to be a benefit.
-	 */
-#ifndef __amigaos4__
-	if(nsoption_bool(friend_bitmap) == true) {
-		friend = scrn->RastPort.BitMap;
-	} else {
-		/* Force friend BitMaps on for obvious RTG screens under OS3.
-		 * If we get a bit smarter about this we can lose the user option. */
-		if((depth >= 16) && (force32bit == false)) friend = scrn->RastPort.BitMap;
-	}
-#endif
-
 	if(gg->palette_mapped == true) {
 		gg->bm = AllocBitMap(width, height, depth, 0, friend);
 	} else {


commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=796974521786d65f1117cf22c23bb1592a27b6f0
commit 796974521786d65f1117cf22c23bb1592a27b6f0
Author: Chris Young <chris at unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris at unsatisfactorysoftware.co.uk>

    restrict some more vars

diff --git a/frontends/amiga/font_bullet.c b/frontends/amiga/font_bullet.c
index 7220cb0..5542ed9 100644
--- a/frontends/amiga/font_bullet.c
+++ b/frontends/amiga/font_bullet.c
@@ -727,11 +727,11 @@ static const uint16 *ami_font_translate_smallcaps(uint16 *utf16char)
 static ULONG amiga_nsfont_text(struct RastPort *rp, const char *string, ULONG length,
 			const plot_font_style_t *fstyle, ULONG dx, ULONG dy, bool aa)
 {
-	uint16 *utf16 = NULL, *outf16 = NULL;
-	uint16 *utf16charsc = 0, *utf16nextsc = 0;
-	uint16 *utf16next = 0;
+	uint16 *restrict utf16 = NULL, *restrict outf16 = NULL;
+	uint16 *restrict utf16charsc = 0, *restrict utf16nextsc = 0;
+	uint16 *restrict utf16next = 0;
 	int utf16charlen;
-	struct OutlineFont *ofont, *ufont = NULL;
+	struct OutlineFont *restrict ofont, *restrict ufont = NULL;
 	uint32 x=0;
 	int32 tempx = 0;
 	ULONG emwidth = (ULONG)NSA_FONT_EMWIDTH(fstyle->size);
@@ -792,11 +792,11 @@ static ULONG amiga_nsfont_text(struct RastPort *rp, const char *string, ULONG le
 static inline ULONG ami_font_unicode_width(const char *string, ULONG length,
 			const plot_font_style_t *fstyle, ULONG dx, ULONG dy, bool aa)
 {
-	uint16 *utf16 = NULL, *outf16 = NULL;
-	uint16 *utf16charsc = 0, *utf16nextsc = 0;
-	uint16 *utf16next = 0;
+	uint16 *restrict utf16 = NULL, *restrict outf16 = NULL;
+	uint16 *restrict utf16charsc = 0, *restrict utf16nextsc = 0;
+	uint16 *restrict utf16next = 0;
 	int utf16charlen;
-	struct OutlineFont *ofont, *ufont = NULL;
+	struct OutlineFont *restrict ofont, *restrict ufont = NULL;
 	uint32 x=0;
 	int32 tempx = 0;
 	ULONG emwidth = (ULONG)NSA_FONT_EMWIDTH(fstyle->size);


commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=59b29930d7c89c53f85d4536bb3657b1c0bd2736
commit 59b29930d7c89c53f85d4536bb3657b1c0bd2736
Author: Chris Young <chris at unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris at unsatisfactorysoftware.co.uk>

    Fix the signalling to the old session of NetSurf from the newly-launched one.
    No idea how this ever worked previously, as it was sending commands to the ARexx server instead of NetSurf.

diff --git a/frontends/amiga/arexx.c b/frontends/amiga/arexx.c
index 14c0ad7..1f2d95b 100644
--- a/frontends/amiga/arexx.c
+++ b/frontends/amiga/arexx.c
@@ -133,6 +133,7 @@ bool ami_arexx_init(ULONG *rxsig)
 			AREXX_ReplyHook,NULL,
 			AREXX_DefExtension,"nsrx",
 			End;
+
 		return false;
 	}
 }
@@ -142,10 +143,15 @@ void ami_arexx_handle(void)
 	RA_HandleRexx(arexx_obj);
 }
 
-void ami_arexx_command(const char *cmd)
+static void ami_arexx_command(const char *cmd, const char *port)
 {
 	if(arexx_obj == NULL) return;
-	IDoMethod(arexx_obj, AM_EXECUTE, cmd, NULL, NULL, NULL, NULL, NULL);
+	IDoMethod(arexx_obj, AM_EXECUTE, cmd, port, NULL, NULL, NULL, NULL);
+}
+
+void ami_arexx_self(const char *cmd)
+{
+	ami_arexx_command(cmd, "NETSURF");
 }
 
 void ami_arexx_execute(char *script)
@@ -156,7 +162,7 @@ void ami_arexx_execute(char *script)
 	if((lock = Lock(script, ACCESS_READ))) {
 		DevNameFromLock(lock, full_script_path, 1024, DN_FULLPATH);
 		LOG("Executing script: %s", full_script_path);
-		ami_arexx_command(full_script_path);
+		ami_arexx_command(full_script_path, NULL);
 		UnLock(lock);
 	}
 }
diff --git a/frontends/amiga/arexx.h b/frontends/amiga/arexx.h
index e6c9c7e..b97967a 100755
--- a/frontends/amiga/arexx.h
+++ b/frontends/amiga/arexx.h
@@ -25,6 +25,6 @@
 bool ami_arexx_init(ULONG *rxsig);
 void ami_arexx_handle(void);
 void ami_arexx_execute(char *);
-void ami_arexx_command(const char *cmd);
+void ami_arexx_self(const char *cmd);
 void ami_arexx_cleanup(void);
 #endif
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index 9bf1689..a05761a 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -1076,7 +1076,8 @@ static void gui_init2(int argc, char** argv)
 		} else {
 			sendcmd = ASPrintf("OPEN \"%s\" NEW",nsoption_charp(homepage_url));
 		}
-		ami_arexx_command(sendcmd);
+		ami_arexx_self(sendcmd);
+
 		FreeVec(sendcmd);
 
 		ami_quit=true;


-----------------------------------------------------------------------

Summary of changes:
 frontends/amiga/arexx.c       |   12 +++++++++---
 frontends/amiga/arexx.h       |    2 +-
 frontends/amiga/bitmap.c      |   19 ++++++++++++-------
 frontends/amiga/font_bullet.c |   16 ++++++++--------
 frontends/amiga/gui.c         |    3 ++-
 frontends/amiga/plotters.c    |   32 +++++++++++++++-----------------
 6 files changed, 47 insertions(+), 37 deletions(-)

diff --git a/frontends/amiga/arexx.c b/frontends/amiga/arexx.c
index 14c0ad7..1f2d95b 100644
--- a/frontends/amiga/arexx.c
+++ b/frontends/amiga/arexx.c
@@ -133,6 +133,7 @@ bool ami_arexx_init(ULONG *rxsig)
 			AREXX_ReplyHook,NULL,
 			AREXX_DefExtension,"nsrx",
 			End;
+
 		return false;
 	}
 }
@@ -142,10 +143,15 @@ void ami_arexx_handle(void)
 	RA_HandleRexx(arexx_obj);
 }
 
-void ami_arexx_command(const char *cmd)
+static void ami_arexx_command(const char *cmd, const char *port)
 {
 	if(arexx_obj == NULL) return;
-	IDoMethod(arexx_obj, AM_EXECUTE, cmd, NULL, NULL, NULL, NULL, NULL);
+	IDoMethod(arexx_obj, AM_EXECUTE, cmd, port, NULL, NULL, NULL, NULL);
+}
+
+void ami_arexx_self(const char *cmd)
+{
+	ami_arexx_command(cmd, "NETSURF");
 }
 
 void ami_arexx_execute(char *script)
@@ -156,7 +162,7 @@ void ami_arexx_execute(char *script)
 	if((lock = Lock(script, ACCESS_READ))) {
 		DevNameFromLock(lock, full_script_path, 1024, DN_FULLPATH);
 		LOG("Executing script: %s", full_script_path);
-		ami_arexx_command(full_script_path);
+		ami_arexx_command(full_script_path, NULL);
 		UnLock(lock);
 	}
 }
diff --git a/frontends/amiga/arexx.h b/frontends/amiga/arexx.h
index e6c9c7e..b97967a 100755
--- a/frontends/amiga/arexx.h
+++ b/frontends/amiga/arexx.h
@@ -25,6 +25,6 @@
 bool ami_arexx_init(ULONG *rxsig);
 void ami_arexx_handle(void);
 void ami_arexx_execute(char *);
-void ami_arexx_command(const char *cmd);
+void ami_arexx_self(const char *cmd);
 void ami_arexx_cleanup(void);
 #endif
diff --git a/frontends/amiga/bitmap.c b/frontends/amiga/bitmap.c
index 5b8117a..53e33d6 100644
--- a/frontends/amiga/bitmap.c
+++ b/frontends/amiga/bitmap.c
@@ -309,7 +309,7 @@ static void ami_bitmap_rgba_to_argb(struct bitmap *bm)
 	
 	ULONG *data = (ULONG *)amiga_bitmap_get_buffer(bm);
 	for(int i = 0; i < (bm->width * bm->height); i++) {
-		data[i] = (data[i] >> 8) | (data[i] << 24);
+		data[i] = (data[ i] >> 8) | (data[i] << 24);
 	}
 }
 
@@ -426,7 +426,7 @@ static inline struct BitMap *ami_bitmap_get_generic(struct bitmap *bitmap,
 										tbm, bitmap->width, bitmap->height,
 										bitmap->width * 4, AMI_BITMAP_FORMAT);
 		} else {
-			tbm = ami_rtg_allocbitmap(bitmap->width, bitmap->height,
+			tbm = ami_rtg_allocbitmap(width, height,
 										8, 0, friendbm, AMI_BITMAP_FORMAT);
 			if(tbm == NULL) return NULL;
 
@@ -450,7 +450,7 @@ static inline struct BitMap *ami_bitmap_get_generic(struct bitmap *bitmap,
 
 				APTR ddh = CreateDirectDrawHandle(bitmap->drawhandle,
 										bitmap->width, bitmap->height,
-										bitmap->width, bitmap->height, NULL);
+										width, height, NULL);
 
 				DirectDrawTrueColor(ddh, (ULONG *)amiga_bitmap_get_buffer(bitmap), 0, 0, TAG_DONE);
 				DeleteDirectDrawHandle(ddh);
@@ -466,14 +466,19 @@ static inline struct BitMap *ami_bitmap_get_generic(struct bitmap *bitmap,
 		if(nsoption_int(cache_bitmaps) == 2)
 		{
 			bitmap->nativebm = tbm;
-			bitmap->nativebmwidth = bitmap->width;
-			bitmap->nativebmheight = bitmap->height;
+			if(type == AMI_NSBM_TRUECOLOUR) {
+				bitmap->nativebmwidth = bitmap->width;
+				bitmap->nativebmheight = bitmap->height;
+			} else {
+				bitmap->nativebmwidth = width;
+				bitmap->nativebmheight = height;
+			}
 			bitmap->native = type;
 		}
 	}
 
-	if((bitmap->width != width) || (bitmap->height != height))
-	{
+	if(((bitmap->width != width) || (bitmap->height != height)) &&
+		(type == AMI_NSBM_TRUECOLOUR)) {
 		struct BitMap *restrict scaledbm;
 		struct BitScaleArgs bsa;
 		int depth = 32;
diff --git a/frontends/amiga/font_bullet.c b/frontends/amiga/font_bullet.c
index 7220cb0..5542ed9 100644
--- a/frontends/amiga/font_bullet.c
+++ b/frontends/amiga/font_bullet.c
@@ -727,11 +727,11 @@ static const uint16 *ami_font_translate_smallcaps(uint16 *utf16char)
 static ULONG amiga_nsfont_text(struct RastPort *rp, const char *string, ULONG length,
 			const plot_font_style_t *fstyle, ULONG dx, ULONG dy, bool aa)
 {
-	uint16 *utf16 = NULL, *outf16 = NULL;
-	uint16 *utf16charsc = 0, *utf16nextsc = 0;
-	uint16 *utf16next = 0;
+	uint16 *restrict utf16 = NULL, *restrict outf16 = NULL;
+	uint16 *restrict utf16charsc = 0, *restrict utf16nextsc = 0;
+	uint16 *restrict utf16next = 0;
 	int utf16charlen;
-	struct OutlineFont *ofont, *ufont = NULL;
+	struct OutlineFont *restrict ofont, *restrict ufont = NULL;
 	uint32 x=0;
 	int32 tempx = 0;
 	ULONG emwidth = (ULONG)NSA_FONT_EMWIDTH(fstyle->size);
@@ -792,11 +792,11 @@ static ULONG amiga_nsfont_text(struct RastPort *rp, const char *string, ULONG le
 static inline ULONG ami_font_unicode_width(const char *string, ULONG length,
 			const plot_font_style_t *fstyle, ULONG dx, ULONG dy, bool aa)
 {
-	uint16 *utf16 = NULL, *outf16 = NULL;
-	uint16 *utf16charsc = 0, *utf16nextsc = 0;
-	uint16 *utf16next = 0;
+	uint16 *restrict utf16 = NULL, *restrict outf16 = NULL;
+	uint16 *restrict utf16charsc = 0, *restrict utf16nextsc = 0;
+	uint16 *restrict utf16next = 0;
 	int utf16charlen;
-	struct OutlineFont *ofont, *ufont = NULL;
+	struct OutlineFont *restrict ofont, *restrict ufont = NULL;
 	uint32 x=0;
 	int32 tempx = 0;
 	ULONG emwidth = (ULONG)NSA_FONT_EMWIDTH(fstyle->size);
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index 9bf1689..a05761a 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -1076,7 +1076,8 @@ static void gui_init2(int argc, char** argv)
 		} else {
 			sendcmd = ASPrintf("OPEN \"%s\" NEW",nsoption_charp(homepage_url));
 		}
-		ami_arexx_command(sendcmd);
+		ami_arexx_self(sendcmd);
+
 		FreeVec(sendcmd);
 
 		ami_quit=true;
diff --git a/frontends/amiga/plotters.c b/frontends/amiga/plotters.c
index 2ad7f2b..9076eea 100644
--- a/frontends/amiga/plotters.c
+++ b/frontends/amiga/plotters.c
@@ -106,18 +106,31 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height, bool for
 	if(force32bit == false) depth = GetBitMapAttr(scrn->RastPort.BitMap, BMA_DEPTH);
 	LOG("Screen depth = %d", depth);
 
+#ifdef __amigaos4__
 	if(depth < 16) {
 		gg->palette_mapped = true;
 	} else {
 		gg->palette_mapped = false;
 	}
-
-#ifndef __amigaos4__
+#else
+	/* Friend BitMaps are weird.
+	 * For OS4, we shouldn't use a friend BitMap here (see below).
+	 * For OS3 AGA, we get no display blitted if we use a friend BitMap,
+	 * however on RTG it seems to be a benefit.
+	 */
+	if(nsoption_bool(friend_bitmap) == true) {
+		friend = scrn->RastPort.BitMap;
+	} else {
+		/* Force friend BitMaps on for obvious RTG screens under OS3.
+		 * If we get a bit smarter about this we can lose the user option. */
+		if((depth > 8) && (force32bit == false)) friend = scrn->RastPort.BitMap;
+	}
 #warning OS3 locked to palette-mapped modes
 	gg->palette_mapped = true;
 	if(depth > 8) depth = 8;
 #endif
 
+
 	/* Probably need to fix this next line */
 	if(gg->palette_mapped == true) nsoption_set_bool(font_antialiasing, false);
 
@@ -136,21 +149,6 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height, bool for
 	gg->tmprasbuf = AllocVec(width * height, MEMF_CHIP);
 #endif
 
-	/* Friend BitMaps are weird.
-	 * For OS4, we shouldn't use a friend BitMap here (see below).
-	 * For OS3 AGA, we get no display blitted if we use a friend BitMap,
-	 * however on RTG it seems to be a benefit.
-	 */
-#ifndef __amigaos4__
-	if(nsoption_bool(friend_bitmap) == true) {
-		friend = scrn->RastPort.BitMap;
-	} else {
-		/* Force friend BitMaps on for obvious RTG screens under OS3.
-		 * If we get a bit smarter about this we can lose the user option. */
-		if((depth >= 16) && (force32bit == false)) friend = scrn->RastPort.BitMap;
-	}
-#endif
-
 	if(gg->palette_mapped == true) {
 		gg->bm = AllocBitMap(width, height, depth, 0, friend);
 	} else {


-- 
NetSurf Browser



More information about the netsurf-commits mailing list