Add support for translucent drop shadows
Detail: Drop shadows were disabled in DragASprite 0.17 when using translucency due to them looking a bit ugly. This change brings them back, but implemented in a different manner to produce a better result. Instead of using a standard sprite and rendering it with translucency, we create a sprite with an alpha channel and use the alpha to control the relative intensity of the dragged sprite and its shadow. The alpha channel also allows us to feather/blur the shadow, getting rid of the hard edges that were mostly resposible for the previous version looking so poor. s/Drag - Adjust TranslucentPlot to support plotting of the ABGR sprite s/StartUp - Adjust drag startup logic so that >2bpp uses an ABGR sprite, 2bpp uses a translucent plot (+ hard shadow), and 1bpp continues to use dithering/hatching. Add new GenerateTranslucentDropShadow routine that's responsible for creating the ABGR sprite. Adjust GetByteSizeOfSprite to return separate values for the size of the foreground (masked/ABGR) and background sprites. s/Support - Add new check for whether the kernel supports ABGR sprites Admin: Tested on BB-xM Fixes issue #390: https://www.riscosopen.org/tracker/tickets/390 Version 0.18. Tagged as 'DragASprit-0_18'
Showing with 564 additions and 122 deletions