summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2016-01-25 18:41:50 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2016-01-25 18:41:50 +0000
commit5c8dccd5f6353524173542762154473f4006383f (patch)
tree270101ea04de7e8832dfb22a88038b133d333c76
parentbeb6cebf1e25cd95f7b2e5acbcb35defcf1496b5 (diff)
downloadnetsurf-5c8dccd5f6353524173542762154473f4006383f.tar.gz
netsurf-5c8dccd5f6353524173542762154473f4006383f.tar.bz2
When forcing 32-bit render mode, don't create the BitMaps as friends of the screen BitMap.
This fixes a system freeze on OS4
-rwxr-xr-xamiga/bitmap.h1
-rw-r--r--amiga/plotters.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/amiga/bitmap.h b/amiga/bitmap.h
index 20e631585..aba359783 100755
--- a/amiga/bitmap.h
+++ b/amiga/bitmap.h
@@ -35,6 +35,7 @@ struct bitmap {
int height;
UBYTE *pixdata;
bool opaque;
+ int native;
struct BitMap *nativebm;
int nativebmwidth;
int nativebmheight;
diff --git a/amiga/plotters.c b/amiga/plotters.c
index bb69dce24..c6c546b03 100644
--- a/amiga/plotters.c
+++ b/amiga/plotters.c
@@ -142,7 +142,7 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height, bool for
} 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) friend = scrn->RastPort.BitMap;
+ if((depth >= 16) && (force32bit == false)) friend = scrn->RastPort.BitMap;
}
#endif
@@ -154,7 +154,7 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height, bool for
* We get freezes and other problems on OS4 if we befriend at any
* other depths, hence this check.
*/
- 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);
}