info-gnu
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNU Guile-SDL 0.6.0 available


From: Thien-Thi Nguyen
Subject: GNU Guile-SDL 0.6.0 available
Date: Sat, 05 Feb 2022 04:05:59 -0500

release notes:

  Lots of love this time.  Shout out to all technical writers!

  Please see also the (currently wip, it may have finished by the time
  you read this) "Hooray!" series: <https://www.gnuvola.org/uc/hooray/>.

README excerpt:

  Guile-SDL is a set of modules that provide bindings for various
  Simple DirectMedia Layer (http://www.libsdl.org) libraries.

  Most of the SDL functions are wrapped, with the exception of a
  few functions that are too C-centric.  The SDL threads, audio
  and network functions are not included.  However, there are
  (optionally configured) bindings for SDL_mixer and SDL_ttf.

  Also included is SDL_gfx 2.0.26 (by Andreas Schiffler) source
  code (ZLIB license) and bindings for it.

  This is alpha code (pre 1.0 release), tested with various,
  but not all, versions of Guile and SDL.  It may have bugs,
  and the interfaces may change from version to version.

NEWS for 0.6.0 (2022-02-05):

  - bugfix: avoid range error in image filter procedures

    Procedures ‘imfi-add-c’ and ‘imfi-sub-c’ used to convert 3rd arg
    ‘c’ (constant) from Scheme to C using a signed integer function
    that would signal range error for large values.  This is now
    fixed to use an unsigned integer function to do the job.

  - intermittent crash fix reverted

    The fix in Guile-SDL 0.5.3 (2021-12-11) was not The Right Thing.
    It has been reverted and a better solution put in place.  We now
    initialize the ‘event-thread’ subsystem in test/cursor.scm.  AHA
    moment: <https://www.gnuvola.org/u/2022/01/08h13.html>.

  - embedded SDL_gfx upgraded to version 2.0.26

    This brings bugfixes and MMX support for x86_64 (amd64),
    primarily.  Now, "cd test && make check TESTS=gfx.scm" really
    flies!

    NB: The license for SDL_gfx is now the zlib license.  See
    src/SDL_gfx/LICENSE in the distribution for the new text.

  - ‘(sdl gfx) fps-manager-delay!’ can have meaningful rv

    The embedded SDL_gfx is currently at version 2.0.26, but the
    previous version was 2.0.22, and its function that underlies
    ‘fps-manager-delay!’ did not have a meaningful return value.
    Previously, if you configured w/ ‘--disable-embedded-gfx’ and
    built w/ SDL_gfx 2.0.24 or later (that DOES have a meaningful
    rv), such ignorance was foisted upon you.  Now, you are free to
    fully enjoy that sweet rv.  :-D

  - changes to to ‘(sdl gfx) blit-rgba’

    - accepts ‘#f’ for 2nd, 4th arg

      The 2nd and 4th args to ‘blit-rgba’ indicate the source and
      destination rectangles, respectively.  Previously, they were
      required to be fully specified.  Now, you can use ‘#f’ there to
      indicate the entire (source/destination) surface.

    - return value more informative

      Previously, ‘blit-rgba’ returned ‘#f’ if there were problems and
      ‘#t’ if not.  However, "no problem" was narrowly interpreted and
      missed a certain common case -- upshot is that it incorrectly
      returned ‘#f’ even in that case.

      Now, if there were no problems, it returns an integer: 1 if a
      blit was performed, 0 otherwise.  (If there were problems, it
      returns ‘#f’ as before -- use ‘get-error’ to get more info.)

  - new proc: ‘(sdl misc-utils) exact-floor’

    Actually, this is an old proc that was misguidedly deleted in
    2011 to make room for ‘exact-truncate’.  Both are useful in
    their own right, it is now evident.  Live and learn.

  - new proc: ‘(sdl sdl) must-lock?’

    This wraps the convenience C macro ‘SDL_MUSTLOCK’.  Useful (in
    conjunction w/ ‘lock-surface’ and ‘unlock-surface’) for avoiding
    segfaults when examining pixel data from RLE-enabled surfaces.

  - new proc: ‘(sdl gfx) multiply-pixel-alpha!’

    This multiples the alpha channel in a 32-bit surface by FACTOR
    (actually, FACTOR/256).  The underlying function has been
    available in SDL_gfx since version 2.0.21, so this is a bit of
    a late bloomer.  Still, more alpha blending for everyone!

  - new proc: ‘(sdl gfx) fps-manager-count’

    This returns the frame count (i.e., how many times
    ‘fps-manager-delay!’ was called) for an FPS manager.
    Another late bloomer (again, since SDL_gfx 2.0.21).

  - documentation improvements

    - external representations described

      The manual now includes a description of the external
      representation of these object types:

       Pixel Format
       Rectangle
       Color
       Surface
       Joystick
       CDROM Drive
       FPS Manager

      Types with a standard (non-custom, Guile-generated) external
      representation are not documented.

      By the way, the Surface external representation now also
      includes "L" to indicate that the surface is locked.

    - image filtering procedures general behavior documented

      The manual now sports three paragraphs describing commonalities
      of the ‘imfi-*’ procedures, as well as the special processing
      done by ‘imfi-add-c’, ‘imfi-sub-c’, ‘imfi-lshr’, ‘imfi-lshl’.

    - say "byte", not "nybble"

      The documentation for ‘surface-pixels’ was simply wrong (but it
      sounded groovy for a while to Some Fool, probably).

  - bootstrap/maintenance tools

    upgraded:

     Guile-BAUX 20211208.0839.a5245e7
     GNU gnulib 2022-01-27 07:00:41

    as before:

     GNU Libtool 2.4.6
     GNU Autoconf 2.71
     GNU Automake 1.16.5
     GNU Texinfo 6.8

tarballs and detached signatures:

  https://ftpmirror.gnu.org/guile-sdl/guile-sdl-0.6.0.tar.lz
  https://ftpmirror.gnu.org/guile-sdl/guile-sdl-0.6.0.tar.lz.sig

source code:

  https://git.savannah.gnu.org/cgit/guile-sdl.git/?h=p

homepage:

  https://www.gnu.org/software/guile-sdl/

-- 
Thien-Thi Nguyen -----------------------------------------------
 (defun responsep (query)               ; (2022) Software Libero
   (pcase (context query)               ;       = Dissenso Etico
     (`(technical ,ml) (correctp ml))
     ...))                              748E A0E8 1CB8 A748 9BFA
--------------------------------------- 6CE4 6703 2224 4C80 7502

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]