summaryrefslogtreecommitdiff
path: root/amiga
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2015-08-16 23:03:54 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2015-08-16 23:03:54 +0100
commita2edd98c19db5eb880d51bcc55c2fc32f0cc2035 (patch)
tree0c03b9d89d74a173b7b46af75dcf5d58bbdae46c /amiga
parent87ebe668804b2e480c691b16e699ebc242ff3f3a (diff)
downloadnetsurf-a2edd98c19db5eb880d51bcc55c2fc32f0cc2035.tar.gz
netsurf-a2edd98c19db5eb880d51bcc55c2fc32f0cc2035.tar.bz2
Force usage of friend BitMaps on OS3 when on high/truecolour screens.
AreaInfo buffer doesn't need to be in chip mem.
Diffstat (limited to 'amiga')
-rw-r--r--amiga/plotters.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/amiga/plotters.c b/amiga/plotters.c
index bc4babe63..e255b9e01 100644
--- a/amiga/plotters.c
+++ b/amiga/plotters.c
@@ -119,24 +119,27 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height)
gg->height = height;
gg->layerinfo = NewLayerInfo();
+ gg->areabuf = AllocVecTagList(AREA_SIZE, NULL);
#ifdef __amigaos4__
- gg->areabuf = AllocVecTagList(AREA_SIZE, NULL);
gg->tmprasbuf = AllocVecTagList(width * height, NULL);
#else
- /* OS3/AGA requries these to be in chip mem */
- gg->areabuf = AllocVec(AREA_SIZE, MEMF_CHIP);
+ /* OS3/AGA requires this to be in chip mem. RTG would probably rather it wasn't. */
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. Hence this user-adjustable option.
+ * 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) friend = scrn->RastPort.BitMap;
}
#endif
@@ -147,7 +150,6 @@ void ami_init_layers(struct gui_globals *gg, ULONG width, ULONG height)
/* Screen depth is reported as 24 even when it's actually 32-bit.
* We get freezes and other problems on OS4 if we befriend at any
* other depths, hence this check.
- * Note that this is forced on, the option is only used under OS3.
*/
if(depth >= 24) friend = scrn->RastPort.BitMap;
#endif