From db9144230426e9dfa0203ddd4f98568f48160fd6 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sun, 1 Mar 2015 11:48:21 +0000 Subject: Remove branches that can't be taken under OS3 Micro-optimise these for OS4.1 Remove dummy compositing defines from os3support.h --- amiga/bitmap.c | 14 ++++++-------- amiga/gui.c | 2 +- amiga/os3support.h | 19 ------------------- amiga/plotters.c | 14 ++++++-------- amiga/thumbnail.c | 9 +++++---- 5 files changed, 18 insertions(+), 40 deletions(-) diff --git a/amiga/bitmap.c b/amiga/bitmap.c index 809bce8b2..633d8d0c1 100644 --- a/amiga/bitmap.c +++ b/amiga/bitmap.c @@ -367,7 +367,7 @@ struct bitmap *ami_bitmap_from_datatype(char *filename) return bm; } -static struct BitMap *ami_bitmap_get_truecolour(struct bitmap *bitmap,int width,int height,struct BitMap *friendbm) +static inline struct BitMap *ami_bitmap_get_truecolour(struct bitmap *bitmap,int width,int height,struct BitMap *friendbm) { struct BitMap *tbm = NULL; @@ -414,10 +414,9 @@ static struct BitMap *ami_bitmap_get_truecolour(struct bitmap *bitmap,int width, scaledbm = ami_rtg_allocbitmap(width, height, 32, 0, friendbm, AMI_BITMAP_FORMAT); - - if(GfxBase->LibNode.lib_Version >= 53) // AutoDoc says v52, but this function isn't in OS4.0, so checking for v53 (OS4.1) - { #ifdef __amigaos4__ + if(__builtin_expect(GfxBase->LibNode.lib_Version >= 53, 1)) { + /* AutoDoc says v52, but this function isn't in OS4.0, so checking for v53 (OS4.1) */ uint32 flags = 0; if(nsoption_bool(scale_quality)) flags |= COMPFLAG_SrcFilter; @@ -433,9 +432,8 @@ static struct BitMap *ami_bitmap_get_truecolour(struct bitmap *bitmap,int width, COMPTAG_OffsetY,0, COMPTAG_FriendBitMap, scrn->RastPort.BitMap, TAG_DONE); + } else /* Do it the old-fashioned way. This is pretty slow, even on OS4.1 */ #endif - } - else /* Do it the old-fashioned way. This is pretty slow, even on OS4.1 */ { bsa.bsa_SrcX = 0; bsa.bsa_SrcY = 0; @@ -500,7 +498,7 @@ PLANEPTR ami_bitmap_get_mask(struct bitmap *bitmap, int width, return bitmap->native_mask; } -static struct BitMap *ami_bitmap_get_palettemapped(struct bitmap *bitmap, +static inline struct BitMap *ami_bitmap_get_palettemapped(struct bitmap *bitmap, int width, int height) { struct BitMap *dtbm; @@ -547,7 +545,7 @@ static struct BitMap *ami_bitmap_get_palettemapped(struct bitmap *bitmap, struct BitMap *ami_bitmap_get_native(struct bitmap *bitmap, int width, int height, struct BitMap *friendbm) { - if(ami_plot_screen_is_palettemapped() == true) { + if(__builtin_expect(ami_plot_screen_is_palettemapped() == true, 0)) { return ami_bitmap_get_palettemapped(bitmap, width, height); } else { return ami_bitmap_get_truecolour(bitmap, width, height, friendbm); diff --git a/amiga/gui.c b/amiga/gui.c index 184c5b01a..238a4ad69 100644 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -5034,7 +5034,7 @@ static nserror gui_search_web_provider_update(const char *provider_name, ULONG bm_masking_tag = TAG_IGNORE; if(GfxBase->LibNode.lib_Version >= 54) { /* chooser 53.21, but check gfx.lib - * is FE as it's easier */ + * is FE as it's easier */ bm_masking_tag = BITMAP_Masking; } diff --git a/amiga/os3support.h b/amiga/os3support.h index d5b895fb5..128e6bfdf 100644 --- a/amiga/os3support.h +++ b/amiga/os3support.h @@ -189,25 +189,6 @@ struct OutlineFont { struct TagItem *olf_OTagList; }; -/* Compositing */ -#define COMPFLAG_IgnoreDestAlpha 0 -#define COMPFLAG_SrcAlphaOverride 0 -#define COMPFLAG_SrcFilter 0 - -#define COMPOSITE_Src 0 - -#define COMPTAG_ScaleX 0 -#define COMPTAG_ScaleY 0 -#define COMPTAG_DestX 0 -#define COMPTAG_DestY 0 -#define COMPTAG_DestWidth 0 -#define COMPTAG_DestHeight 0 -#define COMPTAG_OffsetX 0 -#define COMPTAG_OffsetY 0 - -#define CompositeTags(a, ...) ((void) (a)) -#define COMP_FLOAT_TO_FIX(f) (f) - /* icon.library v51 (ie. AfA_OS version) */ #define ICONCTRLA_SetImageDataFormat (ICONA_Dummy + 0x67) /*103*/ #define ICONCTRLA_GetImageDataFormat (ICONA_Dummy + 0x68) /*104*/ diff --git a/amiga/plotters.c b/amiga/plotters.c index 660dea74d..256f47747 100644 --- a/amiga/plotters.c +++ b/amiga/plotters.c @@ -501,10 +501,9 @@ static bool ami_bitmap(int x, int y, int width, int height, struct bitmap *bitma LOG(("[ami_plotter] ami_bitmap() got native bitmap")); #endif - if((GfxBase->LibNode.lib_Version >= 53) && (palette_mapped == false) && - (nsoption_bool(direct_render) == false)) - { #ifdef __amigaos4__ + if(__builtin_expect((GfxBase->LibNode.lib_Version >= 53) && (palette_mapped == false) && + (nsoption_bool(direct_render) == false), 1)) { uint32 comptype = COMPOSITE_Src_Over_Dest; uint32 compflags = COMPFLAG_IgnoreDestAlpha; if(bitmap_get_opaque(bitmap)) { @@ -524,9 +523,9 @@ static bool ami_bitmap(int x, int y, int width, int height, struct bitmap *bitma COMPTAG_OffsetY,y, COMPTAG_FriendBitMap, scrn->RastPort.BitMap, TAG_DONE); -#endif } else +#endif { ULONG tag, tag_data, minterm = 0xc0; @@ -710,10 +709,9 @@ static void ami_bitmap_tile_hook(struct Hook *hook,struct RastPort *rp,struct Ba /* tile down and across to extents (bfmsg->Bounds.MinX)*/ for (xf = -bfbm->offsetx; xf < bfmsg->Bounds.MaxX; xf += bfbm->width) { for (yf = -bfbm->offsety; yf < bfmsg->Bounds.MaxY; yf += bfbm->height) { - - if((GfxBase->LibNode.lib_Version >= 53) && (palette_mapped == false)) - { #ifdef __amigaos4__ + if(__builtin_expect((GfxBase->LibNode.lib_Version >= 53) && + (palette_mapped == false), 1)) { CompositeTags(COMPOSITE_Src_Over_Dest, bfbm->bm, rp->BitMap, COMPTAG_Flags, COMPFLAG_IgnoreDestAlpha, COMPTAG_DestX,bfmsg->Bounds.MinX, @@ -726,9 +724,9 @@ static void ami_bitmap_tile_hook(struct Hook *hook,struct RastPort *rp,struct Ba COMPTAG_OffsetY,yf, COMPTAG_FriendBitMap, scrn->RastPort.BitMap, TAG_DONE); -#endif } else +#endif { ULONG tag, tag_data, minterm = 0xc0; diff --git a/amiga/thumbnail.c b/amiga/thumbnail.c index 538f22bad..cb4cf6143 100755 --- a/amiga/thumbnail.c +++ b/amiga/thumbnail.c @@ -70,8 +70,9 @@ bool thumbnail_create(hlcache_handle *content, struct bitmap *bitmap, thumbnail_redraw(content, plot_width, plot_height, &ctx); - if(GfxBase->LibNode.lib_Version >= 53) // AutoDoc says v52, but this function isn't in OS4.0, so checking for v53 (OS4.1) - { +#ifdef __amigaos4__ + if(__builtin_expect(GfxBase->LibNode.lib_Version >= 53, 1)) { + /* AutoDoc says v52, but this function isn't in OS4.0, so checking for v53 (OS4.1) */ float resample_scale = bitmap->width / (float)plot_width; uint32 flags = COMPFLAG_IgnoreDestAlpha; if(nsoption_bool(scale_quality)) flags |= COMPFLAG_SrcFilter; @@ -90,8 +91,8 @@ bool thumbnail_create(hlcache_handle *content, struct bitmap *bitmap, COMPTAG_OffsetY,0, COMPTAG_FriendBitMap, scrn->RastPort.BitMap, TAG_DONE); - } - else + } else +#endif { bsa.bsa_SrcX = 0; bsa.bsa_SrcY = 0; -- cgit v1.2.3