Skip to content

1.0.0 – First full release

Latest
Compare
Choose a tag to compare
@liquidev liquidev released this 21 Jul 11:09
· 3 commits to master since this release

This is the first full release of pan. I decided to skip 0.2.0 and instead go with a full 1.0 release, as the API isn't going to have any breaking changes in the future, and I'm pretty happy with how the command-line interface and new preview window have turned out.

  • Completely new command line interface! Instead of dumping all the available information at you, pan's help is now split to the pan command, which shows information on using the pan command itself, along with the pan r command, which shows information on using the Lua API.
    • Additionally, functions and types can be searched for using pan r <name>.
  • Completely new preview user interface. This UI makes use of the current version of the rapid game engine (rapid 2020), whose code is much cleaner and more maintainable than the old version (rapid 2019).
    • The timeline is now less rich and featureful than the one that was planned for 0.2.0: there is no scrolling and zooming functionality yet. I myself don't really work on very long animations for this to be a problem; if the preview window is maximized on a 1080p screen, the timeline is pretty long anyways.
    • Keyboard navigation has been improved, see the pan help text for more info.
  • New features in the API:
    • Image support! It is now possible to load images from files, and also render to images (a'la framebuffers). Common image formats such as .png, .bmp, .jpg are supported - image loading uses stb_image, the full list is available in its header file. See pan.image.
    • Images can be rendered using pattern paints. See pan.pattern.
      • As a shortcut, images can be drawn straight to the current rendering destination using pan.blit.
    • Images can be used as rendering destinations. See pan.switch.
    • Paints have gained settings for antialiasing and blend modes. See Paint:antialiasing and Paint:blendMode.
    • Pattern paints have settings for extension modes, nearest/linear filtering, and cutout rectangles. See Paint:extend, Paint:filter, and Paint:cutout.
  • API changes:
    • Color.r, .g, .b, and .a are now in the 0..255 range instead of 0.0..1.0.
  • Exporting to PNG is now multithreaded.
  • It is now possible to immediately export an animation to a .gif, .webp, or .webm (VP9) file using the -x CLI parameter, using FFmpeg.
  • It is now possible to instruct pan to clean the output directory instead of just exiting, using the -c CLI parameter.

And probably some other changes that I missed.

Warning: Please note that pan fails to compile on more recent versions of Nim 1.4 (≥ 1.4.6), due to a compiler bug. I don't really have the time to track the bug down, but using an older version (≤ 1.4.4) or the devel branch doesn't have this problem. See #14.