Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/5a6bb392184decd72779e...
...commit
http://git.netsurf-browser.org/netsurf.git/commit/5a6bb392184decd72779ea9...
...tree
http://git.netsurf-browser.org/netsurf.git/tree/5a6bb392184decd72779ea93c...
The branch, master has been updated
via 5a6bb392184decd72779ea93c4e0ecc492b3d77f (commit)
from 793f514220c15c6bb1b0db31bf0b6d0cfea0fc7b (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=5a6bb392184decd7277...
commit 5a6bb392184decd72779ea93c4e0ecc492b3d77f
Author: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Commit: Chris Young <chris(a)unsatisfactorysoftware.co.uk>
Revert "Amiga: do not force 32-bit bitmaps"
This reverts commit 793f514220c15c6bb1b0db31bf0b6d0cfea0fc7b.
diff --git a/frontends/amiga/bitmap.c b/frontends/amiga/bitmap.c
index 97e537c..e160f93 100644
--- a/frontends/amiga/bitmap.c
+++ b/frontends/amiga/bitmap.c
@@ -750,7 +750,7 @@ static nserror bitmap_render(struct bitmap *bitmap, struct
hlcache_handle *conte
plot_height = ((plot_width * bitmap->height) + (bitmap->width / 2)) /
bitmap->width;
- bm_globals = ami_plot_ra_alloc(bitmap->width, bitmap->height, false);
+ bm_globals = ami_plot_ra_alloc(bitmap->width, bitmap->height, true, false);
ami_clearclipreg(bm_globals);
struct redraw_context ctx = {
diff --git a/frontends/amiga/corewindow.c b/frontends/amiga/corewindow.c
index 8898829..bfb0eb2 100644
--- a/frontends/amiga/corewindow.c
+++ b/frontends/amiga/corewindow.c
@@ -939,7 +939,7 @@ nserror ami_corewindow_init(struct ami_corewindow *ami_cw)
ami_cw->dragging = false;
/* allocate drawing area etc */
- ami_cw->gg = ami_plot_ra_alloc(100, 100, true); // force tiles to save memory
+ ami_cw->gg = ami_plot_ra_alloc(100, 100, false, true); // force tiles to save memory
ami_cw->deferred_rects = NewObjList();
ami_cw->deferred_rects_pool = ami_memory_itempool_create(sizeof(struct rect));
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index be5bca4..8eb34fb 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -1321,7 +1321,7 @@ static void ami_openscreen(void)
static void ami_openscreenfirst(void)
{
ami_openscreen();
- if(browserglob == NULL) browserglob = ami_plot_ra_alloc(0, 0, false);
+ if(browserglob == NULL) browserglob = ami_plot_ra_alloc(0, 0, false, false);
ami_theme_throbber_setup();
}
diff --git a/frontends/amiga/plotters.c b/frontends/amiga/plotters.c
index 68e682b..fe1e58f 100644
--- a/frontends/amiga/plotters.c
+++ b/frontends/amiga/plotters.c
@@ -110,7 +110,7 @@ static bool palette_mapped = true; /* palette-mapped state for the
screen */
*/
#define AREA_SIZE 25000
-struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height, bool alloc_pen_list)
+struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height, bool force32bit, bool
alloc_pen_list)
{
/* init shared bitmaps */
int depth = 32;
@@ -119,16 +119,16 @@ struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height,
bool alloc_pen_
struct gui_globals *gg = malloc(sizeof(struct gui_globals));
- depth = GetBitMapAttr(scrn->RastPort.BitMap, BMA_DEPTH);
+ if(force32bit == false) depth = GetBitMapAttr(scrn->RastPort.BitMap, BMA_DEPTH);
NSLOG(netsurf, INFO, "Screen depth = %d", depth);
#ifdef __amigaos4__
if(depth < 16) {
gg->palette_mapped = true;
- palette_mapped = true;
+ if(force32bit == false) palette_mapped = true;
} else {
gg->palette_mapped = false;
- palette_mapped = false;
+ if(force32bit == false) palette_mapped = false;
}
#else
/* Friend BitMaps are weird.
@@ -141,15 +141,15 @@ struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height,
bool alloc_pen_
} 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) friend = scrn->RastPort.BitMap;
+ if((depth > 8) && (force32bit == false)) friend = scrn->RastPort.BitMap;
}
if(depth < 16) {
gg->palette_mapped = true;
- palette_mapped = true;
+ if(force32bit == false) palette_mapped = true;
} else {
gg->palette_mapped = false;
- palette_mapped = false;
+ if(force32bit == false) palette_mapped = false;
}
#endif
@@ -177,7 +177,7 @@ struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height, bool
alloc_pen_
* \todo use friend BitMaps but avoid CompositeTags() at non-32-bit
* as that seems to be the cause of the problems.
*/
- if(depth >= 24) friend = scrn->RastPort.BitMap;
+ if((depth >= 24) && (force32bit == false)) friend =
scrn->RastPort.BitMap;
#endif
gg->bm = ami_rtg_allocbitmap(width, height, 32, 0, friend, RGBFB_A8R8G8B8);
}
diff --git a/frontends/amiga/plotters.h b/frontends/amiga/plotters.h
index 8fadbe2..9425923 100644
--- a/frontends/amiga/plotters.h
+++ b/frontends/amiga/plotters.h
@@ -37,10 +37,11 @@ bool ami_plot_screen_is_palettemapped(void);
* Alloc a plotter render area
* \param width of render bitmap
* \param height of render bitmap
+ * \param force32bit allocate a 32-bit bitmap even if this does not match the screen
* \param alloc_pen_list set to false to use own pen list (eg. if multiple pen lists will
be required)
* \returns pointer to render area
*/
-struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height, bool alloc_pen_list);
+struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height, bool force32bit, bool
alloc_pen_list);
/**
* Free a plotter render area
diff --git a/frontends/amiga/print.c b/frontends/amiga/print.c
index 4624bd6..97c70b9 100644
--- a/frontends/amiga/print.c
+++ b/frontends/amiga/print.c
@@ -500,7 +500,7 @@ bool ami_print_begin(struct print_settings *ps)
{
ami_print_info.gg = ami_plot_ra_alloc(ami_print_info.PED->ped_MaxXDots,
ami_print_info.PED->ped_MaxYDots,
- false);
+ true, false);
if(!ami_print_info.gg) return false;
ami_print_info.page = 0;
-----------------------------------------------------------------------
Summary of changes:
frontends/amiga/bitmap.c | 2 +-
frontends/amiga/corewindow.c | 2 +-
frontends/amiga/gui.c | 2 +-
frontends/amiga/plotters.c | 16 ++++++++--------
frontends/amiga/plotters.h | 3 ++-
frontends/amiga/print.c | 2 +-
6 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/frontends/amiga/bitmap.c b/frontends/amiga/bitmap.c
index 97e537c..e160f93 100644
--- a/frontends/amiga/bitmap.c
+++ b/frontends/amiga/bitmap.c
@@ -750,7 +750,7 @@ static nserror bitmap_render(struct bitmap *bitmap, struct
hlcache_handle *conte
plot_height = ((plot_width * bitmap->height) + (bitmap->width / 2)) /
bitmap->width;
- bm_globals = ami_plot_ra_alloc(bitmap->width, bitmap->height, false);
+ bm_globals = ami_plot_ra_alloc(bitmap->width, bitmap->height, true, false);
ami_clearclipreg(bm_globals);
struct redraw_context ctx = {
diff --git a/frontends/amiga/corewindow.c b/frontends/amiga/corewindow.c
index 8898829..bfb0eb2 100644
--- a/frontends/amiga/corewindow.c
+++ b/frontends/amiga/corewindow.c
@@ -939,7 +939,7 @@ nserror ami_corewindow_init(struct ami_corewindow *ami_cw)
ami_cw->dragging = false;
/* allocate drawing area etc */
- ami_cw->gg = ami_plot_ra_alloc(100, 100, true); // force tiles to save memory
+ ami_cw->gg = ami_plot_ra_alloc(100, 100, false, true); // force tiles to save memory
ami_cw->deferred_rects = NewObjList();
ami_cw->deferred_rects_pool = ami_memory_itempool_create(sizeof(struct rect));
diff --git a/frontends/amiga/gui.c b/frontends/amiga/gui.c
index be5bca4..8eb34fb 100644
--- a/frontends/amiga/gui.c
+++ b/frontends/amiga/gui.c
@@ -1321,7 +1321,7 @@ static void ami_openscreen(void)
static void ami_openscreenfirst(void)
{
ami_openscreen();
- if(browserglob == NULL) browserglob = ami_plot_ra_alloc(0, 0, false);
+ if(browserglob == NULL) browserglob = ami_plot_ra_alloc(0, 0, false, false);
ami_theme_throbber_setup();
}
diff --git a/frontends/amiga/plotters.c b/frontends/amiga/plotters.c
index 68e682b..fe1e58f 100644
--- a/frontends/amiga/plotters.c
+++ b/frontends/amiga/plotters.c
@@ -110,7 +110,7 @@ static bool palette_mapped = true; /* palette-mapped state for the
screen */
*/
#define AREA_SIZE 25000
-struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height, bool alloc_pen_list)
+struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height, bool force32bit, bool
alloc_pen_list)
{
/* init shared bitmaps */
int depth = 32;
@@ -119,16 +119,16 @@ struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height,
bool alloc_pen_
struct gui_globals *gg = malloc(sizeof(struct gui_globals));
- depth = GetBitMapAttr(scrn->RastPort.BitMap, BMA_DEPTH);
+ if(force32bit == false) depth = GetBitMapAttr(scrn->RastPort.BitMap, BMA_DEPTH);
NSLOG(netsurf, INFO, "Screen depth = %d", depth);
#ifdef __amigaos4__
if(depth < 16) {
gg->palette_mapped = true;
- palette_mapped = true;
+ if(force32bit == false) palette_mapped = true;
} else {
gg->palette_mapped = false;
- palette_mapped = false;
+ if(force32bit == false) palette_mapped = false;
}
#else
/* Friend BitMaps are weird.
@@ -141,15 +141,15 @@ struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height,
bool alloc_pen_
} 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) friend = scrn->RastPort.BitMap;
+ if((depth > 8) && (force32bit == false)) friend = scrn->RastPort.BitMap;
}
if(depth < 16) {
gg->palette_mapped = true;
- palette_mapped = true;
+ if(force32bit == false) palette_mapped = true;
} else {
gg->palette_mapped = false;
- palette_mapped = false;
+ if(force32bit == false) palette_mapped = false;
}
#endif
@@ -177,7 +177,7 @@ struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height, bool
alloc_pen_
* \todo use friend BitMaps but avoid CompositeTags() at non-32-bit
* as that seems to be the cause of the problems.
*/
- if(depth >= 24) friend = scrn->RastPort.BitMap;
+ if((depth >= 24) && (force32bit == false)) friend =
scrn->RastPort.BitMap;
#endif
gg->bm = ami_rtg_allocbitmap(width, height, 32, 0, friend, RGBFB_A8R8G8B8);
}
diff --git a/frontends/amiga/plotters.h b/frontends/amiga/plotters.h
index 8fadbe2..9425923 100644
--- a/frontends/amiga/plotters.h
+++ b/frontends/amiga/plotters.h
@@ -37,10 +37,11 @@ bool ami_plot_screen_is_palettemapped(void);
* Alloc a plotter render area
* \param width of render bitmap
* \param height of render bitmap
+ * \param force32bit allocate a 32-bit bitmap even if this does not match the screen
* \param alloc_pen_list set to false to use own pen list (eg. if multiple pen lists will
be required)
* \returns pointer to render area
*/
-struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height, bool alloc_pen_list);
+struct gui_globals *ami_plot_ra_alloc(ULONG width, ULONG height, bool force32bit, bool
alloc_pen_list);
/**
* Free a plotter render area
diff --git a/frontends/amiga/print.c b/frontends/amiga/print.c
index 4624bd6..97c70b9 100644
--- a/frontends/amiga/print.c
+++ b/frontends/amiga/print.c
@@ -500,7 +500,7 @@ bool ami_print_begin(struct print_settings *ps)
{
ami_print_info.gg = ami_plot_ra_alloc(ami_print_info.PED->ped_MaxXDots,
ami_print_info.PED->ped_MaxYDots,
- false);
+ true, false);
if(!ami_print_info.gg) return false;
ami_print_info.page = 0;
--
NetSurf Browser