I see in MOS powersdl, there is a call to do alpha blit on AOS.the source is in AROS too, its only software in this bltbitmapalpha func, but when call the minimig Blitter which can do alpha blitting this can do in hardware extreme fast.
static int CGX_HWAccelBlit(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect)
{
//D(bug("[SDL] CGX_HWAccelBlit()\n"));
if (src->hwdata)
{
if (src->flags & (SDL_SRCALPHA|SDL_SRCCOLORKEY)) // && (src->hwdata->pixfmt == PIXFMT_ARGB32 || src->hwdata->pixfmt == PIXFMT_BGRA32))
{
STATIC CONST struct TagItem Tags1[] = { { BLTBMA_USESOURCEALPHA, TRUE }, { TAG_DONE, 0 } };
//STATIC CONST struct TagItem Tags2[] = { { BLTBMA_MIXLEVEL, 0xffffffff }, { TAG_DONE, 0 } };
BltBitMapAlpha(src->hwdata->bmap,
srcrect->x,
srcrect->y,
dst->hwdata->bmap,
dstrect->x,
dstrect->y,
srcrect->w,
srcrect->h,
(struct TagItem *)&Tags1);
//src->flags & (SDL_SRCCOLORKEY|SDL_SRCALPHA) ? (struct TagItem *)&Tags1 : (struct TagItem *)&Tags2);
}
else
{
BltBitMap(src->hwdata->bmap,
srcrect->x,
srcrect->y,
dst->hwdata->bmap,
dstrect->x,
dstrect->y,
srcrect->w,
srcrect->h,
0xc0,0xff,
NULL);
}
}
else
{
struct RastPort *rp;