Guile-SDL NEWS Copyright (C) 2003,2004,2005,2006,2007,2008 Thien-Thi Nguyen See the end for copying conditions. Please send Guile-SDL bug reports to . - 0.3.9 | 2008-04-02 - bugfix for "make uninstall" Previously, this left some files in $(GUILE_LIBSITE)/sdl. Now, those files (and that directory) are properly deleted. - new (sdl gfx) procs These 26 are the image-filter functions that have a C implementation: imfi-mmx?, imfi-add, imfi-mean, imfi-sub, imfi-abs-diff, imfi-mult, imfi-mulnor, imfi-muldiv2, imfi-muldiv4, imfi-logand, imfi-logior, imfi-div, imfi-not, imfi-add-c, imfi-add-c-to-half, imfi-sub-c, imfi-ashr, imfi-lshr, imfi-mul-c, imfi-ashr-mul-c, imfi-bshl, imfi-lshl, imfi-ashl, imfi-binarize, imfi-clip, imfi-normalize-linear. On ttn's computer, (imfi-mmx?) => #f, so the MMX side of things has not been tested. - new (sdl mixer) procs: set-panning, set-distance, set-position Move the sound 'round and 'round; all that's missing is up and down. - public repo: http://www.gnuvola.org/wip/ (guile-sdl) - maintenance now uses libtool 1.5.26 and automake 1.10.1 - 0.3.8 | 2007-10-11 - new (sdl misc-utils) proc: fader/3p - new (sdl misc-utils) proc: toroidal-panner/3p These are three-phase exposing variants of `fade-loop!' and `toroidal-panner', respectively. (In fact, the old procs have been rewritten to use the new.) Three-phase procs return three values, one for each phase of "init", "next" and "done". This lets caller maintain control for fine(r)-grained scheduling. See manual for an example of the stylized call sequence. NOTE: Both `fade-loop!' and `toroidal-panner' are scheduled for removal by 2008-01-01. DO NOT RELY ON THEM. - new (sdl gfx) proc: blit-rgba - new (sdl gfx) proc: set-pixel-alpha! The latter wraps `SDL_gfxSetAlpha' in the underlying (SDL_gfx) library, but the natural schemified name would clash w/ SDL's, so this was chosen for uniqueness as well as to emphasize its per-pixel nature. - docs have more info The manual now lists valid values for flagstash:* and *-enums, mined using `flagstash-flags' and `enumstash-enums', respectively. - 0.3.7 | 2007-09-16 - license now GPLv3+ (see COPYING) - installation changes - no longer created: libFOO.so symlink to FOO.so - deleted: .la file, libFOO.so and other symlinks - embedded library upgraded: libSDL_gfx 2.0.16 - new proc: draw-textured-polygon - new proc: roto-zoom-surface-xy - new proc: shrink-surface - changes to (sdl simple) procs - new simple-canvas command: #:resize! NEW-WIDTH NEW-HEIGHT - simple-stylus #:render can take optional args: COLOR, BG - simple-stylus #:write! has new INCOMPATIBLE interface; see manual - maintenance now uses libtool 1.5.24 and autoconf 2.61 - 0.3.6 | 2007-02-06 - bugfixes - load-image now returns #f (instead of crashing) if there are problems - get-video-info rv now has "wm-available" and bool "blit-fill" - map-rgb and map-rgba now return unsigned integer - make-surface now - uses pixel format from current video surface, if available - handles case: no current video surface and no flags specified - return value specified: both quit and quit-subsystem now return #t - more slackful: update-rects now accepts an empty list for second arg - more slackful: set-clip-rect! now accepts #f for second arg - more slackful: cd-get-{num-tracks,cur-track,cur-frame} call cd-status - changes with compatability note (see each proc's documentation) - grab-input now takes and returns symbols, one of: query, off, on - new (sdl sdl) proc: rect? - new (sdl sdl) proc: color? - new (sdl misc-utils) proc: rectangle-closure - new (sdl misc-utils) proc: rectangle<-geometry-string - new (sdl misc-utils) proc: rect<-surface - new (sdl misc-utils) proc: copy-rectangle - new (sdl misc-utils) proc: toroidal-panner - 0.3.5 | 2006-01-29 - change to (sdl misc-utils) proc: copy-surface This now takes an optional second arg CLIP, a rectangle which specifies the portion of the surface to copy. By default (if unspecified or #f), the entire surface is copied. - implementation for (sdl sdl) proc: get-key-state - new (sdl misc-utils) proc: fade-loop! - maintenance uses GNU Automake 1.9.6 - 0.3.4 | 2005-05-17 - bugfix: smob memory accounting The rectangle, event, color, and cursor smobs used to either fail to free their internal resources, or report an incorrect number as the return value of their "free" function. This would cause Guile to become confused and, in the worst case, also leak memory (and eventually segfault). These errors have now been fixed. The test for them is in file test/leak.scm, which enabled only for "make check DEBUG=1". - new (sdl sdl) proc: get-wm-info - FSF street address updated in copyright notices - 0.3.3 | 2005-04-03 - bugfix: get-clip-rect no longer causes error The implementation no longer tries arrange for SDL to write through a NULL pointer; this used to result in the SDL parachute being deployed if present, or a segfault otherwise. - bug exposure change: procs more strict on unsigned types The following procs now take care to do unsigned integer conversion directly, instead of signed conversion followed by cast to unsigned. create-rgb-surface map-rgba map-rgb get-rgb warp-mouse This is part of an ongoing effort to remove/reduce "manual" casting (which may mask bugs) in the codebase. - new (sdl sdl) proc: get-app-state - change to (sdl misc-utils) proc: copy-surface This now uses `convert-surface' to do one-step copy/conversion, instead of the two-step process used previously. The SRCALPHA (per-surface flag) handling added in Guile-SDL 0.3.2 has been removed. - procs which take lists of symbols now handle #f and empty list Using these args is now equivalent to specifying 0 (zero) to the underlying SDL function. - `set-alpha!' third arg now optional If omitted it is taken as #f. - new chapter in manual: "Excuses (Undone Wrapping)" - 0.3.2 | 2005-01-23 - bugfix: (sdl sdl) proc `fill-rect' handles alpha/red values > 127 The color used to be extracted as signed instead of unsigned. This caused incorrect out-of-range errors for color values whose high bit (alpha for ABGR, red for RGBA) was set. - bugfix: (sdl misc-utils) proc `copy-surface' handles SDL_SRCALPHA The proc now takes care to clear this flag (and restore it afterwards) in the source surface around the blit, so that RGB values are copied correctly. Unfortunately, the actual alpha value is lost due to being unconditionally restored as 255. - procs moved to (sdl gfx): zoom-surface and roto-zoom-surface Side effect of the upgrade described in the next entry. - embedded library upgraded: libSDL_gfx 2.0.13 This library (by Andreas Schiffler) is the successor to libSDL_gfxPrimitives and libSDL_rotozoom, incorporating their functionality and interfaces, and providing other goodies as well. The result for Guile-SDL users is that module (sdl gfx) has been augmented w/ the following new procs: zoom-surface ;; moved from (sdl sdl) roto-zoom-surface ;; likewise draw-hline ;; rest are completely new draw-vline draw-aa-circle draw-aa-ellipse draw-pie-slice draw-trigon draw-aa-trigon draw-aa-polygon draw-bezier make-fps-manager fps-manager-set! fps-manager-get fps-manager-delay! For more info, see new chapter "libSDL_gfx" sections: Graphics Primitives, Rotation / Zooming, and Managing Frame Rate. - 0.3.1 | 2005-01-08 - bugfix: `make-surface' and `create-rgb-surface' no longer ignore `flags' These procs used to internally hardcode SDL_HWSURFACE instead of using the `flags' argument. - dropped (sdl sdl) proc: scale-surface This was never implemented. Its advertized functionality was also redundant w/ `zoom-surface', which furthermore has the benefit of a more flexible interface. - print representation for flagstash objects now begins with "#" This is to follow the Scheme convention for printing objects that cannot be `read' back in. - implementation for (sdl sdl) proc: event-state - implementation for (sdl sdl) proc: peep-events Previously the interface was available but calling these procs resulted in a "not yet implemented" error. - new (sdl misc-utils) proc: copy-surface - new (sdl misc-utils) proc: ignore-all-event-types-except - new module: (sdl simple) - 0.3.0 | 2004-11-25 - "guile-tools make-module-catalog" no longer invoked unconditionally If your Guile installation does not provide this program, that's ok; Guile-SDL will still build. However, in that case the wrapper script `wily-guile' may have difficulty finding the pre-installed compiled modules, which will affect "make check", primarily. For more info, see file GUILE-FIXES in the distribution directory. - "make install" more graceful for !HAVE_MIXER and !HAVE_TTF The "make install" for these subsystems, when disabled (either due to lack of underyling support, or through command-line options to ./configure), used to try to symlink files that were not present (see NEWS for Guile-SDL 0.2.5). - 0.2.6 | 2004-09-01 - docs cleanup The documentation methodology extracts signatures from functions in C source code and thus the variable name of the arguments are the ones displayed (unless overridden). Previously, the vars were named w/ an "s_" prefix to indicate "scheme value", a mild form of Hungarian notation. A particularly striking example: - Scheme Procedure: create-rgb-surface s_flags s_width s_height s_depth s_rmask s_gmask s_bmask s_amask This has now been changed to read: - Scheme Procedure: create-rgb-surface flags width height depth rmask gmask bmask amask The signature still occupies two lines -- unavoidable w/ so many arguments -- but the whole is less jarring to read (we hope). - info entry now under category "Guile modules" It used to be under "Guile". - "basics" series finished This release concludes the "basics" series which prioritized general methodology refinement over features. Next series, to be numbered 0.3.x, is for "coverage" (see TODO). - 0.2.5 | 2004-07-23 - backward-compatability installation bugfix: libFOO.la symlinks To support the venerable "scm_init_FOO_BAR_module" method for loading binary modules in versions of Guile that look for a FOO/libBAR.la, and not simply FOO/BAR.la, appropriately named symlinks are now created for each installed .la file. - bugfix: symbolic return value for `fading-music' and `fading-channel' These procs used to return an integer. Now they return a symbol, one of: MIX_NO_FADING, MIX_FADING_OUT, MIX_FADING_IN. - new (sdl misc-utils) proc: poll-with-push-on-timeout-proc - new (sdl sdl) proc: enumstash-enums - 0.2.4 | 2004-06-28 - installation change: scheme wrappers eliminated The module (sdl sdl) used to be a scheme wrapper for binary module (sdl sdl-sup). Now it is the binary module itself. See README. Also, (sdl sdl) no longer provides the procs `call-with-clip-rect' and `rotate-square'. On "make install" if file $(GUILE_SITE)/sdl/sdl.scm exists, it is deleted. If the dir $(GUILE_SITE)/sdl is empty as a result, it is also deleted. - new module: (sdl misc-utils) Currently this contains the procs `call-with-clip-rect' and `rotate-square', both of which used to be available in module (sdl sdl). The procs are documented in the info pages in a new chapter: "Miscellaneous Utilities". - 0.2.3 | 2004-03-06 - return value changes - cd-status: symbolic (was integer) - cd-get-nth-track: #f on error (was empty list) - joystick-get-ball: #f on error (was empty list) - new (sdl sdl) proc: string->image - 0.2.2 | 2004-02-08 - bug fix: module (sdl sdl) no longer loads (ice-9 syncase) - bug fix: roto-zoom-surface arg zoom no longer ignored - bug fix: all-but-last optional args now handle #f as "unspecified" If a procedure takes optional only one optional arg, that procedure has not changed. If a procedure takes more than one optional arg, all but the last of such args now handle #f the same as being "unspecified". To have the last optional arg be interpreted as "unspecified", simply omit it! This change was motivated to allow specification of the last optional arg while "not really specifying" the others. Here is a list of procedures (and the optional args involved) that were changed, grouped by module: - (sdl mixer) open-audio -- freq format chunksize play-channel -- channel loops ticks play-music -- loops volume -- volume expire-channel -- channel fade-out-channel -- which fade-out-group -- tag - (sdl sdl) cd-play-tracks -- start-track start-frame n-tracks n-frames cd-msf->frames -- s f make-keysym -- sym roto-zoom-surface -- zoom zoom-surface -- zoomy blit-surface -- srcrect dst dstrect list-modes -- pixel-format flags - arity relaxation The last arg for some procedures has been made optional. Code specifying these args still works (backwards-compatible change). Here is a list of procs -- all in module (sdl sdl) -- and their affected args: set-clip-rect -- rect set-caption -- icon video-mode-ok -- flags - 0.2.1 | 2004-01-19 This is a maintenance release (no user-visible changes). Basically, some sub-optimal C macrology was reworked. - 0.2.0 | 2003-11-21 - installation change: scheme wrappers for most modules eliminated Previously, the modules (sdl mixer), (sdl ttf) and (sdl gfx) were implemented as a combination of a small piece of Scheme code that dlopened a libtool-created shared object library in ${libdir}. Since Guile can recognize certain shared object libraries as modules and load them directly, these Scheme code wrappers are not required and thus are now no longer distributed. Instead, "make install" places the shared object libraries for these modules and their support files in directory: ${GUILE_LIBSITE}/sdl/ The value of ${GUILE_LIBSITE} is determined by the `configure' script. Also installed in this directory is the compiled module (sdl sdl-sup), an internal module used by all the user-facing modules. Related to these changes, if the program "guile-tools make-module-catalog" is available, installation invokes it for the ${GUILE_LIBSITE} directory for the compiled modules, and ${GUILE_SITE} for module (sdl sdl). See README for more info. - upgrade facility: make {check,clean}-000-libdir See README section "Upgrading Tips" for info on how to handle old ${libdir}/libguileSDL* files (from Guile-SDL 0.1.x). - "sdl-" prefix dropped Procedure names no longer begin with "sdl-". You can use the #:renamer clause (in `use-modules' and `define-module' forms) to add this back, or possibly choose another prefix. In this distribution, the tests, examples and documentation use "SDL:". - "make check" now respects INTERACTIVE env var Normally "make check" skips tests that require human interaction. You can do "make check INTERACTIVE=1" to enable running those tests as well. - maintainership transfer: ttn A big thanks goes to Alex Shinn, Vikram Subramanian, and Joel Smith, the original authors of the disparate packages that all came together as Guile-SDL in mid-to-late 2001, for (1) writing the code; (2) pooling their efforts; and (3) passing it on. - 0.1.7 Most of the merge complete. Looking to make some minor clean-up and bugfixes before a 0.2.0 release. - 0.1.0 This is the very first version of Guile-SDL. Copyright information: Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the copyright notice and this permission notice are preserved, thus giving the recipient permission to redistribute in turn. Permission is granted to distribute modified versions of this document, or of portions of it, under the above conditions, provided also that they carry prominent notices stating who last changed them. ______________________________________________ Local Variables: mode: outline outline-regexp: "\\([ ][ ]\\)*- " fill-column: 72 fill-prefix: "\t" End: