View Single Post
Old 26 June 2020, 15:08   #18
Thomas Richter
Registered User
 
Join Date: Jan 2019
Location: Germany
Posts: 3,233
Quote:
Originally Posted by aros-sg View Post
That's unproven. Maybe no one has tried/thought hard enough. Maybe it's possible if you split up impossible (because of blitter's limited features) blits into two blits.
Well, it is already split up into two blits....

Quote:
Originally Posted by aros-sg View Post
Simliar to BltBitMap() and it's tempA which is there because sometimes AFWM and ALWM are not enough and the routine needs a real A mask to mask out additional stuff -> in theory it may be possible for BltBitMap() to avoid that (not that it is necessarily the better/faster way) if instead it split up the blit into two?
In the BltBitmap() case, why is that any better? There is only a source and a destination, so one blit is sufficient even though it needs an extended mask.

BltMaskBitMapRastPort() is not a low-level function, but designed to operate on the existing "primitives", namely BltBitmap(). This is from a design point of view a good approach, though means that the higher level function is slower.

With your approach, another low-level blitter function would be needed, and would need to be debugged.

Quote:
Originally Posted by aros-sg View Post
A mask may be faster, who knows) maybe something like that would also work with BltMaskBitMapRastPort() where - if that ends up being so - maybe would usually be faster than the current double XOR blit. Who knows.
It might potentially be faster, yes, but it means that there is more to debug.

The faster alternative (speed wise) is the GEL system if you can get away with the limitation of source "bitplane" widths that are multiples of 16 pixels wide.
Thomas Richter is offline  
 
Page generated in 0.04461 seconds with 11 queries