• Jeffrey Lee's avatar
    Add support for translucent drop shadows · 745647d1
    Jeffrey Lee authored
    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'
    745647d1
Drag 16.4 KB