# Changelog

All notable changes to SDL.pm will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [v0.0.5] - 2026-08-07

I'm going to bundle all the demos I had hidden away on github to the main SDL3 dist. Maybe someone will actually use this if finding working examples was easier...

### Added

- `eg/audio/polysynth.pl` - a simple polyphonic synthesizer
- `eg/basics/boids.pl` - an [artificial life algotithm](https://en.wikipedia.org/wiki/Boids)
- `eg/basics/bunny_bench.pl` - benchmark of Affix's hot path disguised as an SDL demo
- `eg/basics/matrix.pl` - the Matrix "digital rain" rendered with a procedurally generated glyph atlas
- `eg/basics/message_box.pl` - native message boxes via `SDL_ShowMessageBox` and `SDL_ShowSimpleMessageBox`
- `eg/basics/triangle.pl` - a spinning triangle via `SDL_RenderGeometry`
- `eg/basics/particle_waterfall.pl` - particles that flow between overlapping windows via their OS z-order
- `eg/games/2.5d_map.pl` - an isometric map toy (a "Perl Tycoon" work in progress)
- `eg/games/meteors.pl` - a simple meteor-dodging game
- `eg/games/raycaster_maze.pl` - a "Duke Nukem style" raycaster maze
- `eg/games/safe_cracker.pl` - crack a combination safe with gamepad haptics
- `eg/games/scalar_sprint.pl` - a platformer demonstrating gamepad support
- `eg/games/space_invaders.pl` - space invaders with procedurally generated sprite assets
- `eg/games/tetris.pl` - classic tetromino stacking with score, next-piece preview and landing shadow
- `eg/gpu/hello_world.pl` - a raw GPU swapchain clear-to-color demo proving the render pipeline works
- `eg/renderer/starfield.pl` - an animated starfield drawn via `SDL_RenderPoints`
- Here's a few screenshots:
 - ![https://raw.githubusercontent.com/Perl-SDL3/.github/refs/heads/main/screenshots/tetris.gif]
 - ![https://raw.githubusercontent.com/Perl-SDL3/.github/refs/heads/main/screenshots/particle_waterfall.gif]

### Fixed

- `SDL_AppEvent` callback prototype to expect a pointer to an `SDL_Event`.

### Removed

- `SDL_GDKRunApp` and `SDL_UIKitRunApp` have been deprecated upstream (use `SDL_RunApp` instead).

## [v0.0.4] - 2026-07-25

### Fixed

  - Several functions in `:main` only exist on Windows but were being bound (and failing) on all systems.
  - `:log` functions now support `sprintf` style args that Affix supports varargs. `SDL_Log( 'Current player: %s, Location: x:%d y:%d', 'John', 200, 345 );`

### Changed

- Require Affix v1.1.0

## [v0.0.3] - 2025-12-14

### Changed

  - Require Affix v1.0.2 (critical fix for POSIX: https://github.com/sanko/infix/pull/35)

### Added

  - Copy of the synopsis is now in `eg/synopsis.pl`

## [v0.0.2] - 2025-12-14

### Changed

  - First functioning release :)

## [v0.0.1] 2025-10-06

## News

  - It exists!

[Unreleased]: https://github.com/Perl-SDL3/SDL3.pm/compare/v0.0.5...HEAD
[v0.0.5]: https://github.com/Perl-SDL3/SDL3.pm/compare/v0.0.4...v0.0.5
[v0.0.4]: https://github.com/Perl-SDL3/SDL3.pm/compare/v0.0.3...v0.0.4
[v0.0.3]: https://github.com/Perl-SDL3/SDL3.pm/compare/v0.0.2...v0.0.3
[v0.0.2]: https://github.com/Perl-SDL3/SDL3.pm/compare/v0.0.1...v0.0.2
[v0.0.1]: https://github.com/Perl-SDL3/SDL3.pm/releases/tag/v0.0.1