summaryrefslogtreecommitdiff
path: root/amiga/bitmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'amiga/bitmap.c')
-rw-r--r--amiga/bitmap.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/amiga/bitmap.c b/amiga/bitmap.c
index 31b9f11e3..5e9c16e03 100644
--- a/amiga/bitmap.c
+++ b/amiga/bitmap.c
@@ -359,12 +359,15 @@ struct BitMap *ami_getcachenativebm(struct bitmap *bitmap,int width,int height,s
if(GfxBase->lib_Version >= 53) // AutoDoc says v52, but this function isn't in OS4.0, so checking for v53 (OS4.1)
{
uint32 comptype = COMPOSITE_Src;
+ uint32 flags = COMPFLAG_IgnoreDestAlpha;
+
if(!bitmap->opaque) comptype = COMPOSITE_Src_Over_Dest;
+ if(option_scale_quality) flags |= COMPFLAG_SrcFilter;
CompositeTags(comptype,tbm,scaledbm,
COMPTAG_ScaleX,COMP_FLOAT_TO_FIX(width/bitmap->width),
COMPTAG_ScaleY,COMP_FLOAT_TO_FIX(height/bitmap->height),
- COMPTAG_Flags,COMPFLAG_IgnoreDestAlpha,
+ COMPTAG_Flags, flags,
COMPTAG_DestX,0,
COMPTAG_DestY,0,
COMPTAG_DestWidth,width,
@@ -392,6 +395,7 @@ struct BitMap *ami_getcachenativebm(struct bitmap *bitmap,int width,int height,s
bsa.bsa_SrcBitMap = tbm;
bsa.bsa_DestBitMap = scaledbm;
bsa.bsa_Flags = 0;
+ if(option_scale_quality) bsa.bsa_Flags = BSAF_BILINEAR;
BitMapScale(&bsa);
}